\documentclass{article} \usepackage{mltex} \usepackage{wrapfig} \usepackage{float} \usepackage{alltt} %\usepackage{floatfig} \usepackage{fancyheadings} %\usepackage{draftcopy} %\usepackage{bookman} \usepackage{utopia} %\usepackage{times} %\usepackage{ncntrsbk} %\usepackage{palatino} \setlength{\textwidth}{6.5in} \setlength{\evensidemargin}{0in} \setlength{\oddsidemargin}{0in} \setlength{\textheight}{8in} \setlength{\topmargin}{-0.5in} \pagestyle{fancyplain} %\addtolength{\headwidth}{\marginparsep} %\addtolength{\headwidth}{\marginparwidth} \newcommand{\edge}[1]{\rightarrow_{#1}} \newcommand{\union}{\cup} \newcommand{\Union}{\bigcup} \newcommand{\overrides}{overrides} \newcommand{\defas}{\stackrel{\rm as}{=}} \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} \renewcommand{\subsectionmark}[1]{\markright{\thesubsection\ #1}} \newcommand{\Term}[1]{\mbox{\it #1}} \lhead[\fancyplain{}{\bfseries\thepage}]% {\fancyplain{}{\bfseries\rightmark}} \rhead[\fancyplain{}{\bfseries\leftmark}]% {\fancyplain{}{\bfseries\thepage}} \cfoot{} \newenvironment{Figure}{\begin{figure}[htbp]}{\end{figure}} \begin{document} \title{\bf \LARGE MLRISC \\ \large A framework for retargetable and optimizing compiler back ends} \author{\begin{tabular}{c} Lal George \\ \\ Bell Laboratories \\ 600--700 Mountain Ave. \\ Murray Hill, NJ 07974--0636. \\ {\tt george@research.bell-labs.com} \end{tabular} \and \begin{tabular}{c} Allen Leung \\ \\ New York University \\ 719 Broadway, Rm. 708 \\ New York, NY 10003. \\ {\tt leunga@cs.nyu.edu} \end{tabular} } \date{\today} \bibliographystyle{alpha} \maketitle \begin{abstract} Writing native code generators for modern processors is a significant investment. Unfortunately it is difficult to reuse this investment for other architectures, and even more difficult to reuse for other source language compilers. MLRISC is a customizable optimizing back-end written in \externhref{http://cm.bell-labs.com/cm/cs/what/smlnj/sml.html}{Standard ML} and has been successfully retargeted to multiple architectures. MLRISC deals elegantly with the special requirements imposed by the execution model of different high-level, typed languages, by allowing many components of the system to be customized to fit the source language semantics and runtime system requirements. \end{abstract} \tableofcontents \newpage \majorsection{MLRISC} \include{INTRO} \include{contributors} \include{requirements} \include{availability} \majorsection{Overview} \include{problem} \include{contributions} \include{mlrisc-compiler} \include{mlrisc-ir-rep} \include{mlrisc-gen} \include{backend-opt} \include{mlrisc-ra} \include{mlrisc-md} \include{gc} \include{sys-integration} \include{optimizations} \include{mlrisc-graphics} \include{line-counts} \include{systems} \include{future-work} \majorsection{System} \include{mlrisc-arch} \include{mltree} \include{mltree-ext} \include{mltree-util} \include{instrsel} \include{asm} \include{mc} \include{delayslots} \include{span-dep} %\include{md} \include{graphs} \include{graphics} \include{compiler-graphs} \include{mlrisc-ir} \include{SSA} \include{ILP} \include{VLIW} \include{ra} \majorsection{Back Ends} \include{alpha} \include{hppa} \include{sparc} \include{x86} \include{ppc} \include{mips} \include{C6} \majorsection{Basic Types} \include{annotations} \include{cells} \include{cluster} \include{constants} \include{pseudo-ops} \include{instructions} \include{streams} \include{labelexp} \include{labels} \include{regions} \include{regmap} \bibliography{mlrisc} \end{document}