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

Graphical Interface


All the major data structures and intermediate program states can be viewed graphically using daVinci and vcg The following screen dumps are intended to represent the range of possibilities. Graphical tools like these are an indispensible debugging aid. Each of the dumps below were taken when generating code for the mandelbrot on the HPPA architecture. It will be necessary to make netscape fill the size of the screen to view these easily. Even though some of these graphs look quite complex, daVinci has several navigational modes that allow walking to successors, or predecessors, or navigating through a scaled down map of the graph. The navigational view is shown as another window, and the view into the graph that is being displayed is usually outlined in blue.
Control Flowgraph after Optimization:
Each basic block is shown with its dynamic profile and code before and after a specific optimization. This view saves having to pour through pages of assembly code listings -- a tedious and frustrating activity.
SSA form:
The generated flow graph is converted to SSA form which makes many code improvement optimizations easy and efficient.
Data Dependency Graph
A graphical view of the data dependency graph and the various kinds of dependencies decorating the edges, provides a useful clue to why instructions got rearranged the way they did. The navigational view helps to control the complexity in the display.

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