clarify why prototype::codegen returns a function.
authorChris Lattner <sabre@nondot.org>
Mon, 5 Nov 2007 19:22:50 +0000 (19:22 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 5 Nov 2007 19:22:50 +0000 (19:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43725 91177308-0d34-0410-b5e6-96231b3b80d8

docs/tutorial/LangImpl3.html

index 2e961d2f610a2de050e84375ec1d2b2e204a9e7b..3733a66bfcff7f3b3d3a190e0c54141879b0ee1d 100644 (file)
@@ -293,7 +293,13 @@ Function *PrototypeAST::Codegen() {
 </pre>
 </div>
 
-<p>This code packs a lot of power into a few lines.  The first step is to create
+<p>This code packs a lot of power into a few lines.  Note first that this 
+function returns a Function* instead of a Value*.  Because a "prototype" really
+talks about the external interface for a function (not the value computed by
+an expression), it makes sense for it to return the LLVM Function it corresponds
+to when codegen'd.</p>
+
+<p>The next step is to create
 the <tt>FunctionType</tt> that should be used for a given Prototype.  Since all
 function arguments in Kaleidoscope are of type double, the first line creates
 a vector of "N" LLVM Double types.  It then uses the <tt>FunctionType::get</tt>