diff options
author | dim <dim@FreeBSD.org> | 2011-05-02 19:34:44 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2011-05-02 19:34:44 +0000 |
commit | 2b066988909948dc3d53d01760bc2d71d32f3feb (patch) | |
tree | fc5f365fb9035b2d0c622bbf06c9bbe8627d7279 /docs/tutorial/LangImpl7.html | |
parent | c80ac9d286b8fcc6d1ee5d76048134cf80aa9edc (diff) | |
download | FreeBSD-src-2b066988909948dc3d53d01760bc2d71d32f3feb.zip FreeBSD-src-2b066988909948dc3d53d01760bc2d71d32f3feb.tar.gz |
Vendor import of llvm trunk r130700:
http://llvm.org/svn/llvm-project/llvm/trunk@130700
Diffstat (limited to 'docs/tutorial/LangImpl7.html')
-rw-r--r-- | docs/tutorial/LangImpl7.html | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/docs/tutorial/LangImpl7.html b/docs/tutorial/LangImpl7.html index 3b36129..a4a21f1 100644 --- a/docs/tutorial/LangImpl7.html +++ b/docs/tutorial/LangImpl7.html @@ -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,10 +38,10 @@ </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"> +<div> <p>Welcome to Chapter 7 of the "<a href="index.html">Implementing a language with LLVM</a>" tutorial. In chapters 1 through 6, we've built a very @@ -66,10 +66,10 @@ 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"> +<div> <p> To understand why mutable variables cause complexities in SSA construction, @@ -140,10 +140,10 @@ 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"> +<div> <p>The 'trick' here is that while LLVM does require all register values to be in SSA form, it does not require (or permit) memory objects to be in SSA form. @@ -321,11 +321,10 @@ 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"> +<div> <p>Now that we know the sort of problem we want to tackle, lets see what this looks like in the context of our little Kaleidoscope language. We're going to @@ -378,11 +377,10 @@ 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"> +<div> <p> The symbol table in Kaleidoscope is managed at code generation time by the @@ -648,10 +646,10 @@ 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"> +<div> <p>With our current framework, adding a new assignment operator is really simple. We will parse it just like any other binary operator, but handle it @@ -745,11 +743,10 @@ 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"> +<div> <p>Adding var/in is just like any other other extensions we made to Kaleidoscope: we extend the lexer, the parser, the AST and the code generator. @@ -979,10 +976,10 @@ 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"> +<div> <p> Here is the complete code listing for our running example, enhanced with mutable @@ -1755,7 +1752,7 @@ Value *IfExprAST::Codegen() { // Emit merge block. TheFunction->getBasicBlockList().push_back(MergeBB); Builder.SetInsertPoint(MergeBB); - PHINode *PN = Builder.CreatePHI(Type::getDoubleTy(getGlobalContext()), + PHINode *PN = Builder.CreatePHI(Type::getDoubleTy(getGlobalContext()), 2, "iftmp"); PN->addIncoming(ThenV, ThenBB); @@ -2160,8 +2157,8 @@ int main() { src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a> <a href="mailto:sabre@nondot.org">Chris Lattner</a><br> - <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br> - Last modified: $Date: 2010-11-16 18:28:22 +0100 (Tue, 16 Nov 2010) $ + <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br> + Last modified: $Date: 2011-04-23 02:30:22 +0200 (Sat, 23 Apr 2011) $ </address> </body> </html> |