diff options
| author | Mehdi Amini <mehdi.amini@apple.com> | 2015-07-24 03:36:55 +0000 |
|---|---|---|
| committer | Mehdi Amini <mehdi.amini@apple.com> | 2015-07-24 03:36:55 +0000 |
| commit | 5d8e569926773bea0e55d00a644c17ca202c29cc (patch) | |
| tree | f5420b8d7b9e448aaebc025923f2c13608ef6bae /llvm/tools | |
| parent | 5311a0b3636a75a2210547d0bc2f8e6366143b9c (diff) | |
| download | bcm5719-llvm-5d8e569926773bea0e55d00a644c17ca202c29cc.tar.gz bcm5719-llvm-5d8e569926773bea0e55d00a644c17ca202c29cc.zip | |
Revert "Remove access to the DataLayout in the TargetMachine"
This reverts commit 0f720d984f419c747709462f7476dff962c0bc41.
It breaks clang too badly, I need to prepare a proper patch for clang
first.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 243089
Diffstat (limited to 'llvm/tools')
| -rw-r--r-- | llvm/tools/llc/llc.cpp | 3 | ||||
| -rw-r--r-- | llvm/tools/lli/OrcLazyJIT.cpp | 3 | ||||
| -rw-r--r-- | llvm/tools/lli/OrcLazyJIT.h | 26 |
3 files changed, 16 insertions, 16 deletions
diff --git a/llvm/tools/llc/llc.cpp b/llvm/tools/llc/llc.cpp index c51c012391b..e33cd795d3a 100644 --- a/llvm/tools/llc/llc.cpp +++ b/llvm/tools/llc/llc.cpp @@ -312,7 +312,8 @@ static int compileModule(char **argv, LLVMContext &Context) { PM.add(new TargetLibraryInfoWrapperPass(TLII)); // Add the target data from the target machine, if it exists, or the module. - M->setDataLayout(Target->createDataLayout()); + if (const DataLayout *DL = Target->getDataLayout()) + M->setDataLayout(*DL); // Override function attributes based on CPUStr, FeaturesStr, and command line // flags. diff --git a/llvm/tools/lli/OrcLazyJIT.cpp b/llvm/tools/lli/OrcLazyJIT.cpp index 718b3903822..ae276e6cda8 100644 --- a/llvm/tools/lli/OrcLazyJIT.cpp +++ b/llvm/tools/lli/OrcLazyJIT.cpp @@ -136,8 +136,7 @@ int llvm::runOrcLazyJIT(std::unique_ptr<Module> M, int ArgC, char* ArgV[]) { } // Everything looks good. Build the JIT. - auto &DL = M->getDataLayout(); - OrcLazyJIT J(std::move(TM), DL, Context, CallbackMgrBuilder); + OrcLazyJIT J(std::move(TM), Context, CallbackMgrBuilder); // Add the module, look up main and run it. auto MainHandle = J.addModule(std::move(M)); diff --git a/llvm/tools/lli/OrcLazyJIT.h b/llvm/tools/lli/OrcLazyJIT.h index 5019523c7f0..fe86adbf951 100644 --- a/llvm/tools/lli/OrcLazyJIT.h +++ b/llvm/tools/lli/OrcLazyJIT.h @@ -46,17 +46,16 @@ public: CallbackManagerBuilder; static CallbackManagerBuilder createCallbackManagerBuilder(Triple T); - const DataLayout &DL; - - OrcLazyJIT(std::unique_ptr<TargetMachine> TM, const DataLayout &DL, - LLVMContext &Context, CallbackManagerBuilder &BuildCallbackMgr) - : DL(DL), TM(std::move(TM)), ObjectLayer(), - CompileLayer(ObjectLayer, orc::SimpleCompiler(*this->TM)), - IRDumpLayer(CompileLayer, createDebugDumper()), - CCMgr(BuildCallbackMgr(IRDumpLayer, CCMgrMemMgr, Context)), - CODLayer(IRDumpLayer, *CCMgr, false), - CXXRuntimeOverrides( - [this](const std::string &S) { return mangle(S); }) {} + + OrcLazyJIT(std::unique_ptr<TargetMachine> TM, LLVMContext &Context, + CallbackManagerBuilder &BuildCallbackMgr) + : TM(std::move(TM)), + ObjectLayer(), + CompileLayer(ObjectLayer, orc::SimpleCompiler(*this->TM)), + IRDumpLayer(CompileLayer, createDebugDumper()), + CCMgr(BuildCallbackMgr(IRDumpLayer, CCMgrMemMgr, Context)), + CODLayer(IRDumpLayer, *CCMgr, false), + CXXRuntimeOverrides([this](const std::string &S) { return mangle(S); }) {} ~OrcLazyJIT() { // Run any destructors registered with __cxa_atexit. @@ -74,7 +73,7 @@ public: ModuleHandleT addModule(std::unique_ptr<Module> M) { // Attach a data-layout if one isn't already present. if (M->getDataLayout().isDefault()) - M->setDataLayout(DL); + M->setDataLayout(*TM->getDataLayout()); // Record the static constructors and destructors. We have to do this before // we hand over ownership of the module to the JIT. @@ -132,11 +131,12 @@ public: } private: + std::string mangle(const std::string &Name) { std::string MangledName; { raw_string_ostream MangledNameStream(MangledName); - Mangler::getNameWithPrefix(MangledNameStream, Name, DL); + Mangler::getNameWithPrefix(MangledNameStream, Name, *TM->getDataLayout()); } return MangledName; } |

