diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2018-11-05 14:52:08 +0100 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2018-11-05 15:04:26 +0100 |
| commit | 3cc8b17451aac4a144baa48bb48f4187a5529769 (patch) | |
| tree | 441ffae2eddb2da1aad6e69edf73037462cb678b /src/rustllvm/PassWrapper.cpp | |
| parent | 6cfc6033955dd2685dfa7baeec6f6bc3bfdfe2f1 (diff) | |
| download | rust-3cc8b17451aac4a144baa48bb48f4187a5529769.tar.gz rust-3cc8b17451aac4a144baa48bb48f4187a5529769.zip | |
Remove support for building against LLVM 4
With emscripten removed in #55626, we no longer need to support building against LLVM 4.
Diffstat (limited to 'src/rustllvm/PassWrapper.cpp')
| -rw-r--r-- | src/rustllvm/PassWrapper.cpp | 41 |
1 files changed, 1 insertions, 40 deletions
diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp index 200175da1bf..60b8464947a 100644 --- a/src/rustllvm/PassWrapper.cpp +++ b/src/rustllvm/PassWrapper.cpp @@ -36,9 +36,6 @@ #include "llvm/Transforms/IPO/FunctionImport.h" #include "llvm/Transforms/Utils/FunctionImportUtils.h" #include "llvm/LTO/LTO.h" -#if LLVM_VERSION_LE(4, 0) -#include "llvm/Object/ModuleSummaryIndexObjectFile.h" -#endif #include "llvm-c/Transforms/PassManagerBuilder.h" @@ -111,12 +108,11 @@ extern "C" void LLVMRustAddPass(LLVMPassManagerRef PMR, LLVMPassRef RustPass) { } extern "C" -bool LLVMRustPassManagerBuilderPopulateThinLTOPassManager( +void LLVMRustPassManagerBuilderPopulateThinLTOPassManager( LLVMPassManagerBuilderRef PMBR, LLVMPassManagerRef PMR ) { unwrap(PMBR)->populateThinLTOPassManager(*unwrap(PMR)); - return true; } #ifdef LLVM_COMPONENT_X86 @@ -869,21 +865,10 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules, Ret->ModuleMap[module->identifier] = mem_buffer; -#if LLVM_VERSION_GE(5, 0) if (Error Err = readModuleSummaryIndex(mem_buffer, Ret->Index, i)) { LLVMRustSetLastError(toString(std::move(Err)).c_str()); return nullptr; } -#else - Expected<std::unique_ptr<object::ModuleSummaryIndexObjectFile>> ObjOrErr = - object::ModuleSummaryIndexObjectFile::create(mem_buffer); - if (!ObjOrErr) { - LLVMRustSetLastError(toString(ObjOrErr.takeError()).c_str()); - return nullptr; - } - auto Index = (*ObjOrErr)->takeIndex(); - Ret->Index.mergeFrom(std::move(Index), i); -#endif } // Collect for each module the list of function it defines (GUID -> Summary) @@ -900,7 +885,6 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules, // combined index // // This is copied from `lib/LTO/ThinLTOCodeGenerator.cpp` -#if LLVM_VERSION_GE(5, 0) #if LLVM_VERSION_GE(7, 0) auto deadIsPrevailing = [&](GlobalValue::GUID G) { return PrevailingType::Unknown; @@ -915,16 +899,6 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules, Ret->ImportLists, Ret->ExportLists ); -#else - auto DeadSymbols = computeDeadSymbols(Ret->Index, Ret->GUIDPreservedSymbols); - ComputeCrossModuleImport( - Ret->Index, - Ret->ModuleToDefinedGVSummaries, - Ret->ImportLists, - Ret->ExportLists, - &DeadSymbols - ); -#endif // Resolve LinkOnce/Weak symbols, this has to be computed early be cause it // impacts the caching. @@ -934,13 +908,8 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules, StringMap<std::map<GlobalValue::GUID, GlobalValue::LinkageTypes>> ResolvedODR; DenseMap<GlobalValue::GUID, const GlobalValueSummary *> PrevailingCopy; for (auto &I : Ret->Index) { -#if LLVM_VERSION_GE(5, 0) if (I.second.SummaryList.size() > 1) PrevailingCopy[I.first] = getFirstDefinitionForLinker(I.second.SummaryList); -#else - if (I.second.size() > 1) - PrevailingCopy[I.first] = getFirstDefinitionForLinker(I.second); -#endif } auto isPrevailing = [&](GlobalValue::GUID GUID, const GlobalValueSummary *S) { const auto &Prevailing = PrevailingCopy.find(GUID); @@ -962,19 +931,11 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules, // linkage will stay as external, and internal will stay as internal. std::set<GlobalValue::GUID> ExportedGUIDs; for (auto &List : Ret->Index) { -#if LLVM_VERSION_GE(5, 0) for (auto &GVS: List.second.SummaryList) { -#else - for (auto &GVS: List.second) { -#endif if (GlobalValue::isLocalLinkage(GVS->linkage())) continue; auto GUID = GVS->getOriginalName(); -#if LLVM_VERSION_GE(5, 0) if (GVS->flags().Live) -#else - if (!DeadSymbols.count(GUID)) -#endif ExportedGUIDs.insert(GUID); } } |
