mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 08:17:40 +00:00
docs: Use <Hn> as Heading elements instead of <DIV class="doc_foo">.
H1 ... doc_title H2 ... doc_section H3 ... doc_subsection H4 ... doc_subsubsection git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129736 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Tutorial Introduction and the Lexer</div>
|
||||
<h1>Kaleidoscope: Tutorial Introduction and the Lexer</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Tutorial Introduction</a></div>
|
||||
<h2><a name="intro">Tutorial Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -123,7 +123,7 @@ languages!</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="language">The Basic Language</a></div>
|
||||
<h2><a name="language">The Basic Language</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -181,7 +181,7 @@ a Mandelbrot Set</a> at various levels of magnification.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="lexer">The Lexer</a></div>
|
||||
<h2><a name="lexer">The Lexer</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Implementing a Parser and AST</div>
|
||||
<h1>Kaleidoscope: Implementing a Parser and AST</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -36,7 +36,7 @@
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 2 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 2 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -61,7 +61,7 @@ Tree.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="ast">The Abstract Syntax Tree (AST)</a></div>
|
||||
<h2><a name="ast">The Abstract Syntax Tree (AST)</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -178,7 +178,7 @@ bodies in Kaleidoscope.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="parserbasics">Parser Basics</a></div>
|
||||
<h2><a name="parserbasics">Parser Basics</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -239,8 +239,7 @@ piece of our grammar: numeric literals.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="parserprimexprs">Basic Expression
|
||||
Parsing</a></div>
|
||||
<h2><a name="parserprimexprs">Basic Expression Parsing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -394,8 +393,7 @@ They are a bit more complex.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="parserbinops">Binary Expression
|
||||
Parsing</a></div>
|
||||
<h2><a name="parserbinops">Binary Expression Parsing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -617,7 +615,7 @@ handle function definitions, etc.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="parsertop">Parsing the Rest</a></div>
|
||||
<h2><a name="parsertop">Parsing the Rest</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -714,7 +712,7 @@ actually <em>execute</em> this code we've built!</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="driver">The Driver</a></div>
|
||||
<h2><a name="driver">The Driver</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -753,7 +751,7 @@ type "4+5;", and the parser will know you are done.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="conclusions">Conclusions</a></div>
|
||||
<h2><a name="conclusions">Conclusions</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -790,7 +788,7 @@ Representation (IR) from the AST.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Code generation to LLVM IR</div>
|
||||
<h1>Kaleidoscope: Code generation to LLVM IR</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -34,7 +34,7 @@ Support</li>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 3 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 3 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -57,7 +57,7 @@ releases page</a>.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="basics">Code Generation Setup</a></div>
|
||||
<h2><a name="basics">Code Generation Setup</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -147,7 +147,7 @@ has already been done, and we'll just use it to emit code.
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="exprs">Expression Code Generation</a></div>
|
||||
<h2><a name="exprs">Expression Code Generation</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -293,7 +293,7 @@ basic framework.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="funcs">Function Code Generation</a></div>
|
||||
<h2><a name="funcs">Function Code Generation</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -515,8 +515,7 @@ def bar() foo(1, 2); # error, unknown function "foo"
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="driver">Driver Changes and
|
||||
Closing Thoughts</a></div>
|
||||
<h2><a name="driver">Driver Changes and Closing Thoughts</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -657,7 +656,7 @@ support</a> to this so we can actually start running code!</p>
|
||||
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Adding JIT and Optimizer Support</div>
|
||||
<h1>Kaleidoscope: Adding JIT and Optimizer Support</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -33,7 +33,7 @@ Flow</li>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 4 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 4 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -48,8 +48,7 @@ for the Kaleidoscope language.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="trivialconstfold">Trivial Constant
|
||||
Folding</a></div>
|
||||
<h2><a name="trivialconstfold">Trivial Constant Folding</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -134,8 +133,7 @@ range of optimizations that you can use, in the form of "passes".</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="optimizerpasses">LLVM Optimization
|
||||
Passes</a></div>
|
||||
<h2><a name="optimizerpasses">LLVM Optimization Passes</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -266,7 +264,7 @@ executing it!</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="jit">Adding a JIT Compiler</a></div>
|
||||
<h2><a name="jit">Adding a JIT Compiler</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -474,7 +472,7 @@ tackling some interesting LLVM IR issues along the way.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Extending the Language: Control Flow</div>
|
||||
<h1>Kaleidoscope: Extending the Language: Control Flow</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -48,7 +48,7 @@ User-defined Operators</li>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 5 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 5 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -65,7 +65,7 @@ have an if/then/else expression plus a simple 'for' loop.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="ifthen">If/Then/Else</a></div>
|
||||
<h2><a name="ifthen">If/Then/Else</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -111,8 +111,7 @@ pieces.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="iflexer">Lexer Extensions for
|
||||
If/Then/Else</a></div>
|
||||
<h4><a name="iflexer">Lexer Extensions for If/Then/Else</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
|
||||
@@ -146,8 +145,7 @@ stuff:</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="ifast">AST Extensions for
|
||||
If/Then/Else</a></div>
|
||||
<h4><a name="ifast">AST Extensions for If/Then/Else</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -172,8 +170,7 @@ public:
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="ifparser">Parser Extensions for
|
||||
If/Then/Else</a></div>
|
||||
<h4><a name="ifparser">Parser Extensions for If/Then/Else</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -231,7 +228,7 @@ static ExprAST *ParsePrimary() {
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="ifir">LLVM IR for If/Then/Else</a></div>
|
||||
<h4><a name="ifir">LLVM IR for If/Then/Else</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -347,8 +344,7 @@ directly.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="ifcodegen">Code Generation for
|
||||
If/Then/Else</a></div>
|
||||
<h4><a name="ifcodegen">Code Generation for If/Then/Else</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -501,7 +497,7 @@ another useful expression that is familiar from non-functional languages...</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="for">'for' Loop Expression</a></div>
|
||||
<h2><a name="for">'for' Loop Expression</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -536,8 +532,7 @@ support this.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="forlexer">Lexer Extensions for
|
||||
the 'for' Loop</a></div>
|
||||
<h4><a name="forlexer">Lexer Extensions for the 'for' Loop</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -566,8 +561,7 @@ the 'for' Loop</a></div>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="forast">AST Extensions for
|
||||
the 'for' Loop</a></div>
|
||||
<h4><a name="forast">AST Extensions for the 'for' Loop</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -593,8 +587,7 @@ public:
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="forparser">Parser Extensions for
|
||||
the 'for' Loop</a></div>
|
||||
<h4><a name="forparser">Parser Extensions for the 'for' Loop</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -653,8 +646,7 @@ static ExprAST *ParseForExpr() {
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="forir">LLVM IR for
|
||||
the 'for' Loop</a></div>
|
||||
<h4><a name="forir">LLVM IR for the 'for' Loop</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -699,8 +691,7 @@ expressions, and some basic blocks. Lets see how this fits together.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="forcodegen">Code Generation for
|
||||
the 'for' Loop</a></div>
|
||||
<h4><a name="forcodegen">Code Generation for the 'for' Loop</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -877,7 +868,7 @@ language.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Extending the Language: User-defined Operators</div>
|
||||
<h1>Kaleidoscope: Extending the Language: User-defined Operators</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -34,7 +34,7 @@ Variables / SSA Construction</li>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 6 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 6 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -60,7 +60,7 @@ an example of what you can build with Kaleidoscope and its feature set.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="idea">User-defined Operators: the Idea</a></div>
|
||||
<h2><a name="idea">User-defined Operators: the Idea</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -125,7 +125,7 @@ operators.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="binary">User-defined Binary Operators</a></div>
|
||||
<h2><a name="binary">User-defined Binary Operators</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -342,7 +342,7 @@ see what it takes.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="unary">User-defined Unary Operators</a></div>
|
||||
<h2><a name="unary">User-defined Unary Operators</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -491,7 +491,7 @@ is simpler primarily because it doesn't need to handle any predefined operators.
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="example">Kicking the Tires</a></div>
|
||||
<h2><a name="example">Kicking the Tires</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -796,7 +796,7 @@ add variable mutation without building SSA in your front-end.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Extending the Language: Mutable Variables</div>
|
||||
<h1>Kaleidoscope: Extending the Language: Mutable Variables</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -38,7 +38,7 @@
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 7 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 7 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -66,7 +66,7 @@ support for this, though the way it works is a bit unexpected for some.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="why">Why is this a hard problem?</a></div>
|
||||
<h2><a name="why">Why is this a hard problem?</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -140,7 +140,7 @@ logic.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="memory">Memory in LLVM</a></div>
|
||||
<h2><a name="memory">Memory in LLVM</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -321,8 +321,7 @@ variables now!
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="kalvars">Mutable Variables in
|
||||
Kaleidoscope</a></div>
|
||||
<h2><a name="kalvars">Mutable Variables in Kaleidoscope</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -378,8 +377,7 @@ Kaleidoscope to support new variable definitions.
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="adjustments">Adjusting Existing Variables for
|
||||
Mutation</a></div>
|
||||
<h2><a name="adjustments">Adjusting Existing Variables for Mutation</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -648,7 +646,7 @@ we'll add the assignment operator.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="assignment">New Assignment Operator</a></div>
|
||||
<h2><a name="assignment">New Assignment Operator</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -745,8 +743,7 @@ add this next!
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="localvars">User-defined Local
|
||||
Variables</a></div>
|
||||
<h2><a name="localvars">User-defined Local Variables</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -979,7 +976,7 @@ anywhere in sight.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -11,8 +11,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Conclusion and other useful LLVM
|
||||
tidbits</div>
|
||||
<h1>Kaleidoscope: Conclusion and other useful LLVM tidbits</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -43,7 +42,7 @@
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="conclusion">Tutorial Conclusion</a></div>
|
||||
<h2><a name="conclusion">Tutorial Conclusion</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -154,8 +153,7 @@ are very useful if you want to take advantage of LLVM's capabilities.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="llvmirproperties">Properties of the LLVM
|
||||
IR</a></div>
|
||||
<h2><a name="llvmirproperties">Properties of the LLVM IR</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -166,8 +164,7 @@ get these out of the way right now, shall we?</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="targetindep">Target
|
||||
Independence</a></div>
|
||||
<h4><a name="targetindep">Target Independence</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -221,7 +218,7 @@ in-kernel language.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="safety">Safety Guarantees</a></div>
|
||||
<h4><a name="safety">Safety Guarantees</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -243,8 +240,7 @@ list</a> if you are interested in more details.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="langspecific">Language-Specific
|
||||
Optimizations</a></div>
|
||||
<h4><a name="langspecific">Language-Specific Optimizations</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -298,7 +294,7 @@ language-specific AST.
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="tipsandtricks">Tips and Tricks</a></div>
|
||||
<h2><a name="tipsandtricks">Tips and Tricks</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -310,8 +306,7 @@ everyone rediscover them, this section talks about some of these issues.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="offsetofsizeof">Implementing portable
|
||||
offsetof/sizeof</a></div>
|
||||
<h4><a name="offsetofsizeof">Implementing portable offsetof/sizeof</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -331,8 +326,7 @@ in a portable way.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="gcstack">Garbage Collected
|
||||
Stack Frames</a></div>
|
||||
<h4><a name="gcstack">Garbage Collected Stack Frames</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Tutorial Introduction and the Lexer</div>
|
||||
<h1>Kaleidoscope: Tutorial Introduction and the Lexer</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -35,7 +35,7 @@ AST</li>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Tutorial Introduction</a></div>
|
||||
<h2><a name="intro">Tutorial Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -130,7 +130,7 @@ languages!</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="language">The Basic Language</a></div>
|
||||
<h2><a name="language">The Basic Language</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -188,7 +188,7 @@ a Mandelbrot Set</a> at various levels of magnification.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="lexer">The Lexer</a></div>
|
||||
<h2><a name="lexer">The Lexer</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Implementing a Parser and AST</div>
|
||||
<h1>Kaleidoscope: Implementing a Parser and AST</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -40,7 +40,7 @@
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 2 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 2 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -65,7 +65,7 @@ Tree.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="ast">The Abstract Syntax Tree (AST)</a></div>
|
||||
<h2><a name="ast">The Abstract Syntax Tree (AST)</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -146,7 +146,7 @@ bodies in Kaleidoscope.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="parserbasics">Parser Basics</a></div>
|
||||
<h2><a name="parserbasics">Parser Basics</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -181,8 +181,7 @@ piece of our grammar: numeric literals.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="parserprimexprs">Basic Expression
|
||||
Parsing</a></div>
|
||||
<h2><a name="parserprimexprs">Basic Expression Parsing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -303,8 +302,7 @@ They are a bit more complex.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="parserbinops">Binary Expression
|
||||
Parsing</a></div>
|
||||
<h2><a name="parserbinops">Binary Expression Parsing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -517,7 +515,7 @@ handle function definitions, etc.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="parsertop">Parsing the Rest</a></div>
|
||||
<h2><a name="parsertop">Parsing the Rest</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -596,7 +594,7 @@ actually <em>execute</em> this code we've built!</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="driver">The Driver</a></div>
|
||||
<h2><a name="driver">The Driver</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -652,7 +650,7 @@ type "4+5;", and the parser will know you are done.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="conclusions">Conclusions</a></div>
|
||||
<h2><a name="conclusions">Conclusions</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -689,7 +687,7 @@ Representation (IR) from the AST.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Code generation to LLVM IR</div>
|
||||
<h1>Kaleidoscope: Code generation to LLVM IR</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -38,7 +38,7 @@ Support</li>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 3 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 3 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -57,7 +57,7 @@ LLVM SVN to work. LLVM 2.2 and before will not work with it.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="basics">Code Generation Setup</a></div>
|
||||
<h2><a name="basics">Code Generation Setup</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -128,7 +128,7 @@ that this has already been done, and we'll just use it to emit code.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="exprs">Expression Code Generation</a></div>
|
||||
<h2><a name="exprs">Expression Code Generation</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -263,7 +263,7 @@ basic framework.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="funcs">Function Code Generation</a></div>
|
||||
<h2><a name="funcs">Function Code Generation</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -466,8 +466,7 @@ def bar() foo(1, 2); # error, unknown function "foo"
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="driver">Driver Changes and
|
||||
Closing Thoughts</a></div>
|
||||
<h2><a name="driver">Driver Changes and Closing Thoughts</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -607,7 +606,7 @@ support</a> to this so we can actually start running code!</p>
|
||||
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Adding JIT and Optimizer Support</div>
|
||||
<h1>Kaleidoscope: Adding JIT and Optimizer Support</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -37,7 +37,7 @@ Flow</li>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 4 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 4 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -52,8 +52,7 @@ for the Kaleidoscope language.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="trivialconstfold">Trivial Constant
|
||||
Folding</a></div>
|
||||
<h2><a name="trivialconstfold">Trivial Constant Folding</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -148,8 +147,7 @@ range of optimizations that you can use, in the form of "passes".</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="optimizerpasses">LLVM Optimization
|
||||
Passes</a></div>
|
||||
<h2><a name="optimizerpasses">LLVM Optimization Passes</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -283,7 +281,7 @@ executing it!</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="jit">Adding a JIT Compiler</a></div>
|
||||
<h2><a name="jit">Adding a JIT Compiler</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -486,7 +484,7 @@ constructs</a>, tackling some interesting LLVM IR issues along the way.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Extending the Language: Control Flow</div>
|
||||
<h1>Kaleidoscope: Extending the Language: Control Flow</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -52,7 +52,7 @@ User-defined Operators</li>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 5 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 5 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -69,7 +69,7 @@ have an if/then/else expression plus a simple 'for' loop.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="ifthen">If/Then/Else</a></div>
|
||||
<h2><a name="ifthen">If/Then/Else</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -115,8 +115,7 @@ pieces.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="iflexer">Lexer Extensions for
|
||||
If/Then/Else</a></div>
|
||||
<h4><a name="iflexer">Lexer Extensions for If/Then/Else</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
|
||||
@@ -153,8 +152,7 @@ stuff:</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="ifast">AST Extensions for
|
||||
If/Then/Else</a></div>
|
||||
<h4><a name="ifast">AST Extensions for If/Then/Else</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -175,8 +173,7 @@ type expr =
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="ifparser">Parser Extensions for
|
||||
If/Then/Else</a></div>
|
||||
<h4><a name="ifparser">Parser Extensions for If/Then/Else</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -214,7 +211,7 @@ let rec parse_primary = parser
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="ifir">LLVM IR for If/Then/Else</a></div>
|
||||
<h4><a name="ifir">LLVM IR for If/Then/Else</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -331,8 +328,7 @@ directly.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="ifcodegen">Code Generation for
|
||||
If/Then/Else</a></div>
|
||||
<h4><a name="ifcodegen">Code Generation for If/Then/Else</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -493,7 +489,7 @@ another useful expression that is familiar from non-functional languages...</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="for">'for' Loop Expression</a></div>
|
||||
<h2><a name="for">'for' Loop Expression</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -528,8 +524,7 @@ support this.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="forlexer">Lexer Extensions for
|
||||
the 'for' Loop</a></div>
|
||||
<h4><a name="forlexer">Lexer Extensions for the 'for' Loop</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -559,8 +554,7 @@ the 'for' Loop</a></div>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="forast">AST Extensions for
|
||||
the 'for' Loop</a></div>
|
||||
<h4><a name="forast">AST Extensions for the 'for' Loop</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -580,8 +574,7 @@ type expr =
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="forparser">Parser Extensions for
|
||||
the 'for' Loop</a></div>
|
||||
<h4><a name="forparser">Parser Extensions for the 'for' Loop</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -628,8 +621,7 @@ let rec parse_primary = parser
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="forir">LLVM IR for
|
||||
the 'for' Loop</a></div>
|
||||
<h4><a name="forir">LLVM IR for the 'for' Loop</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -674,8 +666,7 @@ expressions, and some basic blocks. Lets see how this fits together.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="forcodegen">Code Generation for
|
||||
the 'for' Loop</a></div>
|
||||
<h4><a name="forcodegen">Code Generation for the 'for' Loop</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -852,7 +843,7 @@ to our poor innocent language.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Extending the Language: User-defined Operators</div>
|
||||
<h1>Kaleidoscope: Extending the Language: User-defined Operators</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -38,7 +38,7 @@ Variables / SSA Construction</li>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 6 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 6 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -64,7 +64,7 @@ an example of what you can build with Kaleidoscope and its feature set.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="idea">User-defined Operators: the Idea</a></div>
|
||||
<h2><a name="idea">User-defined Operators: the Idea</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -129,7 +129,7 @@ operators.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="binary">User-defined Binary Operators</a></div>
|
||||
<h2><a name="binary">User-defined Binary Operators</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -320,7 +320,7 @@ see what it takes.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="unary">User-defined Unary Operators</a></div>
|
||||
<h2><a name="unary">User-defined Unary Operators</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -472,7 +472,7 @@ is simpler primarily because it doesn't need to handle any predefined operators.
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="example">Kicking the Tires</a></div>
|
||||
<h2><a name="example">Kicking the Tires</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -778,7 +778,7 @@ add variable mutation without building SSA in your front-end.</p>
|
||||
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Extending the Language: Mutable Variables</div>
|
||||
<h1>Kaleidoscope: Extending the Language: Mutable Variables</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -42,7 +42,7 @@
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="intro">Chapter 7 Introduction</a></div>
|
||||
<h2><a name="intro">Chapter 7 Introduction</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -70,7 +70,7 @@ support for this, though the way it works is a bit unexpected for some.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="why">Why is this a hard problem?</a></div>
|
||||
<h2><a name="why">Why is this a hard problem?</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -144,7 +144,7 @@ logic.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="memory">Memory in LLVM</a></div>
|
||||
<h2><a name="memory">Memory in LLVM</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -325,8 +325,7 @@ variables now!
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="kalvars">Mutable Variables in
|
||||
Kaleidoscope</a></div>
|
||||
<h2><a name="kalvars">Mutable Variables in Kaleidoscope</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -382,8 +381,7 @@ Kaleidoscope to support new variable definitions.
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="adjustments">Adjusting Existing Variables for
|
||||
Mutation</a></div>
|
||||
<h2><a name="adjustments">Adjusting Existing Variables for Mutation</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -672,7 +670,7 @@ we'll add the assignment operator.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="assignment">New Assignment Operator</a></div>
|
||||
<h2><a name="assignment">New Assignment Operator</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -773,8 +771,7 @@ add this next!
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="localvars">User-defined Local
|
||||
Variables</a></div>
|
||||
<h2><a name="localvars">User-defined Local Variables</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -956,7 +953,7 @@ anywhere in sight.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="code">Full Code Listing</a></div>
|
||||
<h2><a name="code">Full Code Listing</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -11,8 +11,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title">Kaleidoscope: Conclusion and other useful LLVM
|
||||
tidbits</div>
|
||||
<h1>Kaleidoscope: Conclusion and other useful LLVM tidbits</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="index.html">Up to Tutorial Index</a></li>
|
||||
@@ -43,7 +42,7 @@
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="conclusion">Tutorial Conclusion</a></div>
|
||||
<h2><a name="conclusion">Tutorial Conclusion</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -154,8 +153,7 @@ are very useful if you want to take advantage of LLVM's capabilities.</p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="llvmirproperties">Properties of the LLVM
|
||||
IR</a></div>
|
||||
<h2><a name="llvmirproperties">Properties of the LLVM IR</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -166,8 +164,7 @@ get these out of the way right now, shall we?</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="targetindep">Target
|
||||
Independence</a></div>
|
||||
<h4><a name="targetindep">Target Independence</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -221,7 +218,7 @@ in-kernel language.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="safety">Safety Guarantees</a></div>
|
||||
<h4><a name="safety">Safety Guarantees</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -243,8 +240,7 @@ list</a> if you are interested in more details.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="langspecific">Language-Specific
|
||||
Optimizations</a></div>
|
||||
<h4><a name="langspecific">Language-Specific Optimizations</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -298,7 +294,7 @@ language-specific AST.
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<div class="doc_section"><a name="tipsandtricks">Tips and Tricks</a></div>
|
||||
<h2><a name="tipsandtricks">Tips and Tricks</a></h2>
|
||||
<!-- *********************************************************************** -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -310,8 +306,7 @@ everyone rediscover them, this section talks about some of these issues.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="offsetofsizeof">Implementing portable
|
||||
offsetof/sizeof</a></div>
|
||||
<h4><a name="offsetofsizeof">Implementing portable offsetof/sizeof</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
@@ -331,8 +326,7 @@ in a portable way.</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsubsection"><a name="gcstack">Garbage Collected
|
||||
Stack Frames</a></div>
|
||||
<h4><a name="gcstack">Garbage Collected Stack Frames</a></h4>
|
||||
<!-- ======================================================================= -->
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<body>
|
||||
|
||||
<div class="doc_title"> LLVM Tutorial: Table of Contents </div>
|
||||
<h1>LLVM Tutorial: Table of Contents</h1>
|
||||
|
||||
<ol>
|
||||
<li>Kaleidoscope: Implementing a Language with LLVM
|
||||
|
||||
Reference in New Issue
Block a user