diff options
-rw-r--r-- | docs/tutorial/LangImpl4.html | 78 | ||||
-rw-r--r-- | docs/tutorial/index.html | 7 |
2 files changed, 82 insertions, 3 deletions
diff --git a/docs/tutorial/LangImpl4.html b/docs/tutorial/LangImpl4.html new file mode 100644 index 0000000..358ec69 --- /dev/null +++ b/docs/tutorial/LangImpl4.html @@ -0,0 +1,78 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> + +<html> +<head> + <title>Kaleidoscope: Adding JIT and Optimizer Support</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <meta name="author" content="Chris Lattner"> + <link rel="stylesheet" href="../llvm.css" type="text/css"> +</head> + +<body> + +<div class="doc_title">Kaleidoscope: Adding JIT and Optimizer Support</div> + +<div class="doc_author"> + <p>Written by <a href="mailto:sabre@nondot.org">Chris Lattner</a></p> +</div> + +<!-- *********************************************************************** --> +<div class="doc_section"><a name="intro">Part 4 Introduction</a></div> +<!-- *********************************************************************** --> + +<div class="doc_text"> + +<p>Welcome to part 4 of the "<a href="index.html">Implementing a language with +LLVM</a>" tutorial.</p> + +</div> + +<!-- *********************************************************************** --> +<div class="doc_section"><a name="basics">Code Generation setup</a></div> +<!-- *********************************************************************** --> + +<div class="doc_text"> + +<p> +In order to generate LLVM IR, we want some simple setup to get started. First, +we define virtual codegen methods in each AST class:</p> + +<div class="doc_code"> +<pre> +/// ExprAST - Base class for all expression nodes. +class ExprAST { +public: + virtual ~ExprAST() {} + virtual Value *Codegen() = 0; +}; + +/// NumberExprAST - Expression class for numeric literals like "1.0". +class NumberExprAST : public ExprAST { + double Val; +public: + explicit NumberExprAST(double val) : Val(val) {} + virtual Value *Codegen(); +}; +... +</pre> +</div> + + + +</div> + +<!-- *********************************************************************** --> +<hr> +<address> + <a href="http://jigsaw.w3.org/css-validator/check/referer"><img + src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a> + <a href="http://validator.w3.org/check/referer"><img + 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: 2007-10-17 11:05:13 -0700 (Wed, 17 Oct 2007) $ +</address> +</body> +</html> diff --git a/docs/tutorial/index.html b/docs/tutorial/index.html index 56d9dd2..99278fa 100644 --- a/docs/tutorial/index.html +++ b/docs/tutorial/index.html @@ -29,8 +29,8 @@ <ol> <li><a href="LangImpl1.html">The basic language, with its lexer</a></li> <li><a href="LangImpl2.html">Implementing a Parser and AST</a></li> - <li><a href="LangImpl3.html">Implementing code generation to LLVM IR</a></li> - <li>Adding JIT codegen support</li> + <li><a href="LangImpl3.html">Implementing Code Generation to LLVM IR</a></li> + <li><a href="LangImpl4.html">Adding JIT and Optimizer Support</a></li> <li>Extending the language: if/then/else</li> <li>Extending the language: operator overloading</li> <li>Extending the language: mutable variables</li> @@ -38,7 +38,8 @@ </ol></li> <li>Advanced Topics <ol> - <li><a href="http://llvm.org/pubs/2004-09-22-LCPCLLVMTutorial.html">Writing an Optimization for LLVM</a></li> + <li><a href="http://llvm.org/pubs/2004-09-22-LCPCLLVMTutorial.html">Writing + an Optimization for LLVM</a></li> </ol></li> </ol> |