1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/lib/Transforms/IPO
Peter Collingbourne 724883c1d1 IR. Change strip* family of functions to not look through aliases.
I noticed another instance of the issue where references to aliases were
being replaced with aliasees, this time in InstCombine. In the instance that
I saw it turned out to be only a QoI issue (a symbol ended up being missing
from the symbol table due to the last reference to the alias being removed,
preventing HWASAN from symbolizing a global reference), but it could easily
have manifested as incorrect behaviour.

Since this is the third such issue encountered (previously: D65118, D65314)
it seems to be time to address this common error/QoI issue once and for all
and make the strip* family of functions not look through aliases.

Includes a test for the specific issue that I saw, but no doubt there are
other similar bugs fixed here.

As with D65118 this has been tested to make sure that the optimization isn't
load bearing. I built Clang, Chromium for Linux, Android and Windows as well
as the test-suite and there were no size regressions.

Differential Revision: https://reviews.llvm.org/D66606

llvm-svn: 369697
2019-08-22 19:56:14 +00:00
..
AlwaysInliner.cpp [clang][NewPM] Fix broken -O0 test from missing assumptions 2019-06-13 18:18:40 +00:00
ArgumentPromotion.cpp OpaquePtr: add Type parameter to Loads analysis API. 2019-07-09 11:35:35 +00:00
Attributor.cpp [Attributor][NFC] Move DerefState to header and use StateWrapper 2019-08-22 14:18:29 +00:00
BarrierNoopPass.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
BlockExtractor.cpp [BlockExtractor] Avoid assert with wrong line format 2019-08-20 14:46:02 +00:00
CalledValuePropagation.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [Attributor] Pass infrastructure and fixpoint framework 2019-06-05 03:02:24 +00:00
ConstantMerge.cpp IR. Change strip* family of functions to not look through aliases. 2019-08-22 19:56:14 +00:00
CrossDSOCFI.cpp cfi-icall: Allow the jump table to be optionally made non-canonical. 2019-08-09 22:31:59 +00:00
DeadArgumentElimination.cpp [opaque pointer types] Pass function types to CallInst creation. 2019-02-01 20:43:25 +00:00
ElimAvailExtern.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ExtractGV.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ForceFunctionAttrs.cpp ARM MTE stack sanitizer. 2019-07-15 20:02:23 +00:00
FunctionAttrs.cpp [FunctionAttrs] Remove readonly and writeonly assertion 2019-07-15 17:31:26 +00:00
FunctionImport.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
GlobalDCE.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
GlobalOpt.cpp IR. Change strip* family of functions to not look through aliases. 2019-08-22 19:56:14 +00:00
GlobalSplit.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HotColdSplitting.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
InferFunctionAttrs.cpp [IR] Refactor attribute methods in Function class (NFC) 2019-04-04 22:40:06 +00:00
Inliner.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
InlineSimple.cpp [CallSite removal] move InlineCost to CallBase usage 2019-04-23 12:43:27 +00:00
Internalize.cpp [Internalize] Replace uses of std::set with DenseSet 2019-04-02 09:25:31 +00:00
IPConstantPropagation.cpp [IPCP] Don't crash due to arg count/type mismatch between caller/callee 2019-01-29 10:19:44 +00:00
IPO.cpp [LLVM-C] Improve Bindings to The Internalize Pass 2019-07-23 04:56:44 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LoopExtractor.cpp [CodeExtractor] Update function's assumption cache after extracting blocks from it 2019-02-08 06:55:18 +00:00
LowerTypeTests.cpp cfi-icall: Allow the jump table to be optionally made non-canonical. 2019-08-09 22:31:59 +00:00
MergeFunctions.cpp Use llvm::stable_sort 2019-04-23 14:51:27 +00:00
PartialInlining.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
PassManagerBuilder.cpp Provide basic Full LTO extension points 2019-07-02 15:52:39 +00:00
PruneEH.cpp [CallSite removal] Move the legacy PM, call graph, and some inliner 2019-04-19 05:59:42 +00:00
SampleProfile.cpp [AutoFDO] Make call targets order deterministic for sample profile 2019-08-20 20:52:00 +00:00
SCCP.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
StripDeadPrototypes.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
StripSymbols.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SyntheticCountsPropagation.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ThinLTOBitcodeWriter.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
WholeProgramDevirt.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00