MLRISC
MLRISC
Contributors
Requirements
How to Obtain MLRISC
Overview
Problem Statement
Contributions
MLRISC Based Compiler
MLRISC Intermediate Representation
MLRisc Generation
Back End Optimizations
Register Allocation
Machine Description
Garbage Collection Safety
System Integration
Optimizations
Graphical Interface
Line Counts
Systems Using MLRISC
Future Work
System
Architecture of MLRISC
The MLTREE Language
MLTree Extensions
MLTree Utilities
Instruction Selection
Assemblers
Machine Code Emitters
Delay Slot Filling
Span Dependency Resolution
The Graph Library
The Graph Visualization Library
Basic Compiler Graphs
The MLRISC IR
SSA Optimizations
ILP Optimizations
Optimizations for VLIW/EPIC Architectur...
Register Allocator
Back Ends
The Alpha Back End
The PA RISC Back End
The Sparc Back End
The Intel x86 Back End
The PowerPC Back End
The MIPS Back End
The TI C6x Back End
Basic Types
Annotations
Cells
Cluster
Client Defined Constants
Client Defined Pseudo Ops
Instructions
Instruction Streams
Label Expressions
Labels
Regions
Regmap

Line Counts


SML/NJ MLRISC
Generic 3,023 6,814
Hppa 725 2,285
Alpha 614 2,316
TOTAL 4,362 11,415
The table shows the number of lines involved in a basic MLRISC code generator for SML/NJ that only does graph coloring register allocation. The SML/NJ column shows the number of lines specific to SML/N and the MLRISC column shows the number of lines specific to MLRISC. The Generic shows the number of lines that are target independent for both SML/NJ and MLRISC. The Hppa and Alpha shows the number of lines that are target dependent for both the HP Hppa and DEC Alpha targets.

The bulk of the 3,023 generic to SML/NJ is involved in the generation of MLRisc trees. Once this is done the incremental cost of adding a target is between 600 to 700 lines.

The MLRISC column shows that the bulk of MLRISC is quite generic and a client is saved from writing 11,415 lines of code.

SML/NJ MLRISC
Generic 121 + 3,023 15,686 + 6,814
Hppa 32 + 725 920 + 2,285
Alpha 614 2,316
TOTAL 153 + 4,362 16,606 + 11,415
If one were to include the preliminary numbers for global acyclic scheduling in the above table, we find that the incremental cost required by the client is quite small -- approximately 153 lines of which 121 are generic. However, the scheduling infra structure is quite large, a lot of it being quite generic.



Lal George
Allen Leung
SML/NJ Validate this page
Generated by mltex2html
Last modified: Thu Jan 9 19:38:15 EST 2003 by leunga@slinky