summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMehdi Amini <mehdi.amini@apple.com>2016-08-23 16:53:34 +0000
committerMehdi Amini <mehdi.amini@apple.com>2016-08-23 16:53:34 +0000
commit9ec5a61358fa7e5f4af389562a62400dd7201504 (patch)
tree97276d0c36ad4c65a3056a8bc8c9ebfa3d471052 /llvm/lib
parent97f446c04217045e181d6a88e1ad3a5ca55601a5 (diff)
downloadbcm5719-llvm-9ec5a61358fa7e5f4af389562a62400dd7201504.tar.gz
bcm5719-llvm-9ec5a61358fa7e5f4af389562a62400dd7201504.zip
[ThinLTO] Make sure the Context used for the ThinLTO backend has all the appropriate options
An important performance setting on the LLVMContext for LTO is enableDebugTypeODRUniquing(), this adds an automatic merging of debug information in the context based on type ids. Also, the lto::Config includes a diagnostic handler that needs to be set on the Context, as well as the setDiscardValueNames() setting. llvm-svn: 279532
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/LTO/LTO.cpp2
-rw-r--r--llvm/lib/LTO/LTOBackend.cpp2
2 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/LTO/LTO.cpp b/llvm/lib/LTO/LTO.cpp
index 39ec4e26c4f..8d4f1a48d93 100644
--- a/llvm/lib/LTO/LTO.cpp
+++ b/llvm/lib/LTO/LTO.cpp
@@ -468,7 +468,7 @@ public:
const FunctionImporter::ImportMapTy &ImportList,
const GVSummaryMapTy &DefinedGlobals,
MapVector<StringRef, MemoryBufferRef> &ModuleMap) {
- LLVMContext BackendContext;
+ LTOLLVMContext BackendContext(Conf);
ErrorOr<std::unique_ptr<Module>> MOrErr =
parseBitcodeFile(MBRef, BackendContext);
diff --git a/llvm/lib/LTO/LTOBackend.cpp b/llvm/lib/LTO/LTOBackend.cpp
index 732f35a56b2..20e2b9edf97 100644
--- a/llvm/lib/LTO/LTOBackend.cpp
+++ b/llvm/lib/LTO/LTOBackend.cpp
@@ -271,6 +271,8 @@ Error lto::thinBackend(Config &Conf, unsigned Task, AddOutputFn AddOutput,
return Error();
auto ModuleLoader = [&](StringRef Identifier) {
+ assert(Mod.getContext().isODRUniquingDebugTypes() &&
+ "ODR Type uniquing shoudl be enabled on the context");
return std::move(getLazyBitcodeModule(MemoryBuffer::getMemBuffer(
ModuleMap[Identifier], false),
Mod.getContext(),
OpenPOWER on IntegriCloud