diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2011-12-07 23:58:57 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2011-12-07 23:58:57 +0000 |
commit | dff247868a3f292c1fc0daeb3f22cdcfb4c156d5 (patch) | |
tree | 4d8b8f2b886d9253d8dbb5b2823ad7aea16d405b /llvm/lib/ExecutionEngine | |
parent | 42ee1522b6fa9b138dfccbf2a0e50a49a50ccf60 (diff) | |
download | bcm5719-llvm-dff247868a3f292c1fc0daeb3f22cdcfb4c156d5.tar.gz bcm5719-llvm-dff247868a3f292c1fc0daeb3f22cdcfb4c156d5.zip |
EngineBuilder: support for custom TargetOptions. Fixes the
ExceptionDemo example.
llvm-svn: 146108
Diffstat (limited to 'llvm/lib/ExecutionEngine')
-rw-r--r-- | llvm/lib/ExecutionEngine/ExecutionEngine.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/TargetSelect.cpp | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp b/llvm/lib/ExecutionEngine/ExecutionEngine.cpp index d94f5465121..26b05848402 100644 --- a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/llvm/lib/ExecutionEngine/ExecutionEngine.cpp @@ -436,8 +436,10 @@ ExecutionEngine *ExecutionEngine::createJIT(Module *M, StringRef MCPU = ""; SmallVector<std::string, 1> MAttrs; + // TODO: permit custom TargetOptions here TargetMachine *TM = - EngineBuilder::selectTarget(M, MArch, MCPU, MAttrs, RM, CMM, OL, ErrorStr); + EngineBuilder::selectTarget(M, MArch, MCPU, MAttrs, TargetOptions(), RM, + CMM, OL, ErrorStr); if (!TM || (ErrorStr && ErrorStr->length() > 0)) return 0; return ExecutionEngine::JITCtor(M, ErrorStr, JMM, OL, GVsWithCode, TM); @@ -466,6 +468,7 @@ ExecutionEngine *EngineBuilder::create() { // try making a JIT. if (WhichEngine & EngineKind::JIT) { if (TargetMachine *TM = EngineBuilder::selectTarget(M, MArch, MCPU, MAttrs, + Options, RelocModel, CMModel, OptLevel, ErrorStr)) { if (UseMCJIT && ExecutionEngine::MCJITCtor) { diff --git a/llvm/lib/ExecutionEngine/TargetSelect.cpp b/llvm/lib/ExecutionEngine/TargetSelect.cpp index 9a0d41d48e5..ea93a77287c 100644 --- a/llvm/lib/ExecutionEngine/TargetSelect.cpp +++ b/llvm/lib/ExecutionEngine/TargetSelect.cpp @@ -30,6 +30,7 @@ TargetMachine *EngineBuilder::selectTarget(Module *Mod, StringRef MArch, StringRef MCPU, const SmallVectorImpl<std::string>& MAttrs, + const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL, @@ -86,7 +87,6 @@ TargetMachine *EngineBuilder::selectTarget(Module *Mod, } // Allocate a target... - TargetOptions Options; TargetMachine *Target = TheTarget->createTargetMachine(TheTriple.getTriple(), MCPU, FeaturesStr, Options, |