summaryrefslogtreecommitdiffstats
path: root/llvm/tools
diff options
context:
space:
mode:
authorMehdi Amini <mehdi.amini@apple.com>2015-07-24 03:36:55 +0000
committerMehdi Amini <mehdi.amini@apple.com>2015-07-24 03:36:55 +0000
commit5d8e569926773bea0e55d00a644c17ca202c29cc (patch)
treef5420b8d7b9e448aaebc025923f2c13608ef6bae /llvm/tools
parent5311a0b3636a75a2210547d0bc2f8e6366143b9c (diff)
downloadbcm5719-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.cpp3
-rw-r--r--llvm/tools/lli/OrcLazyJIT.cpp3
-rw-r--r--llvm/tools/lli/OrcLazyJIT.h26
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;
}
OpenPOWER on IntegriCloud