diff options
| author | johnthagen <johnthagen@users.noreply.github.com> | 2017-10-16 17:56:12 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-10-16 17:56:12 -0400 |
| commit | bd8497884c2863a10b6d67855bd90d40783ce2da (patch) | |
| tree | 5fe9ffe7f65dbea1130217b5136264d4dbc7b513 /src/rustllvm/PassWrapper.cpp | |
| parent | 49a73d0901a60b1b77452b92372fd8629f636c2a (diff) | |
| parent | 4e9527cf6f2d3749554d07a96fe14967f5470ef6 (diff) | |
| download | rust-bd8497884c2863a10b6d67855bd90d40783ce2da.tar.gz rust-bd8497884c2863a10b6d67855bd90d40783ce2da.zip | |
Merge branch 'master' into future_imports
Diffstat (limited to 'src/rustllvm/PassWrapper.cpp')
| -rw-r--r-- | src/rustllvm/PassWrapper.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp index e37f048dd47..1287b94159a 100644 --- a/src/rustllvm/PassWrapper.cpp +++ b/src/rustllvm/PassWrapper.cpp @@ -901,9 +901,7 @@ addPreservedGUID(const ModuleSummaryIndex &Index, } } - GlobalValueSummary *GVSummary = Summary.get(); - if (isa<FunctionSummary>(GVSummary)) { - FunctionSummary *FS = cast<FunctionSummary>(GVSummary); + if (auto *FS = dyn_cast<FunctionSummary>(Summary.get())) { for (auto &Call: FS->calls()) { if (Call.first.isGUID()) { addPreservedGUID(Index, Preserved, Call.first.getGUID()); @@ -916,6 +914,10 @@ addPreservedGUID(const ModuleSummaryIndex &Index, addPreservedGUID(Index, Preserved, GUID); } } + if (auto *AS = dyn_cast<AliasSummary>(Summary.get())) { + auto GUID = AS->getAliasee().getOriginalName(); + addPreservedGUID(Index, Preserved, GUID); + } } } @@ -963,12 +965,13 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules, // combined index // // This is copied from `lib/LTO/ThinLTOCodeGenerator.cpp` - computeDeadSymbols(Ret->Index, Ret->GUIDPreservedSymbols); + auto DeadSymbols = computeDeadSymbols(Ret->Index, Ret->GUIDPreservedSymbols); ComputeCrossModuleImport( Ret->Index, Ret->ModuleToDefinedGVSummaries, Ret->ImportLists, - Ret->ExportLists + Ret->ExportLists, + &DeadSymbols ); // Resolve LinkOnce/Weak symbols, this has to be computed early be cause it |
