diff options
Diffstat (limited to 'llvm/docs/tutorial/LangImpl4.html')
-rw-r--r-- | llvm/docs/tutorial/LangImpl4.html | 39 |
1 files changed, 13 insertions, 26 deletions
diff --git a/llvm/docs/tutorial/LangImpl4.html b/llvm/docs/tutorial/LangImpl4.html index 728d518a473..49921534b2d 100644 --- a/llvm/docs/tutorial/LangImpl4.html +++ b/llvm/docs/tutorial/LangImpl4.html @@ -171,10 +171,7 @@ add a set of optimizations to run. The code looks like this:</p> <div class="doc_code"> <pre> - ExistingModuleProvider *OurModuleProvider = - new ExistingModuleProvider(TheModule); - - FunctionPassManager OurFPM(OurModuleProvider); + FunctionPassManager OurFPM(TheModule); // Set up the optimizer pipeline. Start with registering info about how the // target lays out data structures. @@ -198,19 +195,13 @@ add a set of optimizations to run. The code looks like this:</p> </pre> </div> -<p>This code defines two objects, an <tt>ExistingModuleProvider</tt> and a -<tt>FunctionPassManager</tt>. The former is basically a wrapper around our -<tt>Module</tt> that the PassManager requires. It provides certain flexibility -that we're not going to take advantage of here, so I won't dive into any details -about it.</p> - -<p>The meat of the matter here, is the definition of "<tt>OurFPM</tt>". It -requires a pointer to the <tt>Module</tt> (through the <tt>ModuleProvider</tt>) -to construct itself. Once it is set up, we use a series of "add" calls to add -a bunch of LLVM passes. The first pass is basically boilerplate, it adds a pass -so that later optimizations know how the data structures in the program are -laid out. The "<tt>TheExecutionEngine</tt>" variable is related to the JIT, -which we will get to in the next section.</p> +<p>This code defines a <tt>FunctionPassManager</tt>, "<tt>OurFPM</tt>". It +requires a pointer to the <tt>Module</tt> to construct itself. Once it is set +up, we use a series of "add" calls to add a bunch of LLVM passes. The first +pass is basically boilerplate, it adds a pass so that later optimizations know +how the data structures in the program are laid out. The +"<tt>TheExecutionEngine</tt>" variable is related to the JIT, which we will get +to in the next section.</p> <p>In this case, we choose to add 4 optimization passes. The passes we chose here are a pretty standard set of "cleanup" optimizations that are useful for @@ -302,8 +293,8 @@ by adding a global variable and a call in <tt>main</tt>:</p> ... int main() { .. - <b>// Create the JIT. This takes ownership of the module and module provider. - TheExecutionEngine = EngineBuilder(OurModuleProvider).create();</b> + <b>// Create the JIT. This takes ownership of the module. + TheExecutionEngine = EngineBuilder(TheModule).create();</b> .. } </pre> @@ -515,7 +506,6 @@ at runtime.</p> #include "llvm/ExecutionEngine/JIT.h" #include "llvm/LLVMContext.h" #include "llvm/Module.h" -#include "llvm/ModuleProvider.h" #include "llvm/PassManager.h" #include "llvm/Analysis/Verifier.h" #include "llvm/Target/TargetData.h" @@ -1084,13 +1074,10 @@ int main() { // Make the module, which holds all the code. TheModule = new Module("my cool jit", Context); - ExistingModuleProvider *OurModuleProvider = - new ExistingModuleProvider(TheModule); - - // Create the JIT. This takes ownership of the module and module provider. - TheExecutionEngine = EngineBuilder(OurModuleProvider).create(); + // Create the JIT. This takes ownership of the module. + TheExecutionEngine = EngineBuilder(TheModule).create(); - FunctionPassManager OurFPM(OurModuleProvider); + FunctionPassManager OurFPM(TheModule); // Set up the optimizer pipeline. Start with registering info about how the // target lays out data structures. |