From c8b9551a8fe52cefbefeac820c81996281fff4e5 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Sun, 5 May 2013 20:57:58 +0000 Subject: Port ExceptionDemo to MCJIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181168 91177308-0d34-0410-b5e6-96231b3b80d8 --- examples/ExceptionDemo/CMakeLists.txt | 2 +- examples/ExceptionDemo/ExceptionDemo.cpp | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'examples') diff --git a/examples/ExceptionDemo/CMakeLists.txt b/examples/ExceptionDemo/CMakeLists.txt index 432e683..ea818fa 100644 --- a/examples/ExceptionDemo/CMakeLists.txt +++ b/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/examples/ExceptionDemo/ExceptionDemo.cpp b/examples/ExceptionDemo/ExceptionDemo.cpp index 0bd49a3..f9498a5 100644 --- a/examples/ExceptionDemo/ExceptionDemo.cpp +++ b/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(); -- cgit v1.1