Import Upstream version 20180207
[hcoop/debian/mlton.git] / doc / guide / localhost / CompilerOverview
CommitLineData
7f918cf1
CE
1<!DOCTYPE html>\r
2<html lang="en">\r
3<head>\r
4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\r
5<meta name="generator" content="AsciiDoc 8.6.9">\r
6<title>CompilerOverview</title>\r
7<link rel="stylesheet" href="./asciidoc.css" type="text/css">\r
8<link rel="stylesheet" href="./pygments.css" type="text/css">\r
9\r
10\r
11<script type="text/javascript" src="./asciidoc.js"></script>\r
12<script type="text/javascript">\r
13/*<![CDATA[*/\r
14asciidoc.install();\r
15/*]]>*/\r
16</script>\r
17<link rel="stylesheet" href="./mlton.css" type="text/css">\r
18</head>\r
19<body class="article">\r
20<div id="banner">\r
21<div id="banner-home">\r
22<a href="./Home">MLton 20180207</a>\r
23</div>\r
24</div>\r
25<div id="header">\r
26<h1>CompilerOverview</h1>\r
27</div>\r
28<div id="content">\r
29<div id="preamble">\r
30<div class="sectionbody">\r
31<div class="paragraph"><p>The following table shows the overall structure of the compiler.\r
32<a href="IntermediateLanguage">IntermediateLanguage</a>s are shown in the center column. The names\r
33of compiler passes are listed in the left and right columns.</p></div>\r
34<table class="tableblock frame-all grid-all"\r
35style="\r
36margin-left:auto; margin-right:auto;\r
37width:100%;\r
38">\r
39<col style="width:33%;">\r
40<col style="width:33%;">\r
41<col style="width:33%;">\r
42<tbody>\r
43<tr>\r
44<td class="tableblock halign-center valign-top" colspan="3" ><p class="tableblock"><strong>Compiler Overview</strong></p></td>\r
45</tr>\r
46<tr>\r
47<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>Translation Passes</em></p></td>\r
48<td class="tableblock halign-center valign-top" ><p class="tableblock"><em><a href="IntermediateLanguage">IntermediateLanguage</a></em></p></td>\r
49<td class="tableblock halign-center valign-top" ><p class="tableblock"><em>Optimization Passes</em></p></td>\r
50</tr>\r
51<tr>\r
52<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
53<td class="tableblock halign-center valign-top" ><p class="tableblock">Source</p></td>\r
54<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
55</tr>\r
56<tr>\r
57<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="FrontEnd">FrontEnd</a></p></td>\r
58<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
59<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
60</tr>\r
61<tr>\r
62<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
63<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="AST">AST</a></p></td>\r
64<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
65</tr>\r
66<tr>\r
67<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="Elaborate">Elaborate</a></p></td>\r
68<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
69<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
70</tr>\r
71<tr>\r
72<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
73<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="CoreML">CoreML</a></p></td>\r
74<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="CoreMLSimplify">CoreMLSimplify</a></p></td>\r
75</tr>\r
76<tr>\r
77<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="Defunctorize">Defunctorize</a></p></td>\r
78<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
79<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
80</tr>\r
81<tr>\r
82<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
83<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="XML">XML</a></p></td>\r
84<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="XMLSimplify">XMLSimplify</a></p></td>\r
85</tr>\r
86<tr>\r
87<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="Monomorphise">Monomorphise</a></p></td>\r
88<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
89<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
90</tr>\r
91<tr>\r
92<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
93<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="SXML">SXML</a></p></td>\r
94<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="SXMLSimplify">SXMLSimplify</a></p></td>\r
95</tr>\r
96<tr>\r
97<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="ClosureConvert">ClosureConvert</a></p></td>\r
98<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
99<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
100</tr>\r
101<tr>\r
102<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
103<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="SSA">SSA</a></p></td>\r
104<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="SSASimplify">SSASimplify</a></p></td>\r
105</tr>\r
106<tr>\r
107<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="ToSSA2">ToSSA2</a></p></td>\r
108<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
109<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
110</tr>\r
111<tr>\r
112<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
113<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="SSA2">SSA2</a></p></td>\r
114<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="SSA2Simplify">SSA2Simplify</a></p></td>\r
115</tr>\r
116<tr>\r
117<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="ToRSSA">ToRSSA</a></p></td>\r
118<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
119<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
120</tr>\r
121<tr>\r
122<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
123<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="RSSA">RSSA</a></p></td>\r
124<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="RSSASimplify">RSSASimplify</a></p></td>\r
125</tr>\r
126<tr>\r
127<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="ToMachine">ToMachine</a></p></td>\r
128<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
129<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
130</tr>\r
131<tr>\r
132<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
133<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="Machine">Machine</a></p></td>\r
134<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
135</tr>\r
136<tr>\r
137<td class="tableblock halign-center valign-top" ><p class="tableblock"><a href="Codegen">Codegen</a></p></td>\r
138<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
139<td class="tableblock halign-center valign-top" ><p class="tableblock"></p></td>\r
140</tr>\r
141</tbody>\r
142</table>\r
143<div class="paragraph"><p>The <span class="monospaced">Compile</span> functor (<a href="https://github.com/MLton/mlton/blob/master/mlton/main/compile.sig"><span class="monospaced">compile.sig</span></a>,\r
144<a href="https://github.com/MLton/mlton/blob/master/mlton/main/compile.fun"><span class="monospaced">compile.fun</span></a>), controls the\r
145high-level view of the compiler passes, from <a href="FrontEnd">FrontEnd</a> to code\r
146generation.</p></div>\r
147</div>\r
148</div>\r
149</div>\r
150<div id="footnotes"><hr></div>\r
151<div id="footer">\r
152<div id="footer-text">\r
153</div>\r
154<div id="footer-badges">\r
155</div>\r
156</div>\r
157</body>\r
158</html>\r