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

Generated by mltex2html
Last modified: Mon Oct 3 20:52:35 UTC 2022 by buildd@x86-grnet-02