diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-05-05 20:57:58 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-05-05 20:57:58 +0000 |
commit | e93dc3be1b424da5cc8479abaacc73787b86c28e (patch) | |
tree | 64d352ebb59ad18b56dc6956892f4dec0d98f355 /llvm/examples/ExceptionDemo | |
parent | fa5942bc2c870d63b02a936ab7e2ce5a5bace768 (diff) | |
download | bcm5719-llvm-e93dc3be1b424da5cc8479abaacc73787b86c28e.tar.gz bcm5719-llvm-e93dc3be1b424da5cc8479abaacc73787b86c28e.zip |
Port ExceptionDemo to MCJIT.
llvm-svn: 181168
Diffstat (limited to 'llvm/examples/ExceptionDemo')
-rw-r--r-- | llvm/examples/ExceptionDemo/CMakeLists.txt | 2 | ||||
-rw-r--r-- | llvm/examples/ExceptionDemo/ExceptionDemo.cpp | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/llvm/examples/ExceptionDemo/CMakeLists.txt b/llvm/examples/ExceptionDemo/CMakeLists.txt index 432e683a13f..ea818faf3b3 100644 --- a/llvm/examples/ExceptionDemo/CMakeLists.txt +++ b/llvm/examples/ExceptionDemo/CMakeLists.txt @@ -1,4 +1,4 @@ -set(LLVM_LINK_COMPONENTS jit nativecodegen) +set(LLVM_LINK_COMPONENTS jit mcjit nativecodegen) set(LLVM_REQUIRES_EH 1) add_llvm_example(ExceptionDemo diff --git a/llvm/examples/ExceptionDemo/ExceptionDemo.cpp b/llvm/examples/ExceptionDemo/ExceptionDemo.cpp index 0bd49a37321..f9498a5fbfb 100644 --- a/llvm/examples/ExceptionDemo/ExceptionDemo.cpp +++ b/llvm/examples/ExceptionDemo/ExceptionDemo.cpp @@ -49,8 +49,8 @@ //===----------------------------------------------------------------------===// #include "llvm/Analysis/Verifier.h" -#include "llvm/ExecutionEngine/ExecutionEngine.h" -#include "llvm/ExecutionEngine/JIT.h" +#include "llvm/ExecutionEngine/MCJIT.h" +#include "llvm/ExecutionEngine/SectionMemoryManager.h" #include "llvm/IR/DataLayout.h" #include "llvm/IR/DerivedTypes.h" #include "llvm/IR/IRBuilder.h" @@ -1953,17 +1953,22 @@ int main(int argc, char *argv[]) { Opts.JITExceptionHandling = true; llvm::InitializeNativeTarget(); + llvm::InitializeNativeTargetAsmPrinter(); llvm::LLVMContext &context = llvm::getGlobalContext(); llvm::IRBuilder<> theBuilder(context); // Make the module, which holds all the code. llvm::Module *module = new llvm::Module("my cool jit", context); + llvm::JITMemoryManager *MemMgr = new llvm::SectionMemoryManager(); + // Build engine with JIT llvm::EngineBuilder factory(module); factory.setEngineKind(llvm::EngineKind::JIT); factory.setAllocateGVsWithCode(false); factory.setTargetOptions(Opts); + factory.setJITMemoryManager(MemMgr); + factory.setUseMCJIT(true); llvm::ExecutionEngine *executionEngine = factory.create(); { @@ -2007,6 +2012,8 @@ int main(int argc, char *argv[]) { fpm, "throwCppException"); + executionEngine->finalizeObject(); + fprintf(stderr, "\nBegin module dump:\n\n"); module->dump(); |