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

# Future Work

Future Work

Short Term Long Term

## Short Term

Detailed user manual:
  A detailed user manual describing the interfaces, algorithms, and examples on how to put together code generators.
Support for GC:
  There is a strong interaction with support for GC and global code motion. MLRISC aims at providing a generic framework for code generators, and finding the right level of information to support GC and global code motion is an issue. I think we have several solutions to address this that need more evaluation.
Other architectures:
  There is the need to port to other architectures like the MIPS, and the IA-64.

## Long Term

Predicated VLIW compilation:
  Currently, the framework for predicated VLIW architectures compilation is incomplete, and contain only one back end (C6)
Other compilers:
  I would really like to see some major compiler effort bootstrapped with an MLRISC backend.
Verification
  It is extremely difficult to debug errors in modules that perform aggressive code reorganizations. Ideas from formal methods such as typed assembly language (TAL) or Proof Carrying Code (PCC) are worth investigating.

Lal George
Allen Leung

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