llvm-project/llvm/lib/Passes
Teresa Johnson 853b962416 [ThinLTO] Handle chains of aliases
At -O0, globalopt is not run during the compile step, and we can have a
chain of an alias having an immediate aliasee of another alias. The
summaries are constructed assuming aliases in a canonical form
(flattened chains), and as a result only the base object but no
intermediate aliases were preserved.

Fix by adding a pass that canonicalize aliases, which ensures each
alias is a direct alias of the base object.

Reviewers: pcc, davidxl

Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, arphaman, llvm-commits

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

llvm-svn: 350423
2019-01-04 19:04:54 +00:00
..
CMakeLists.txt [New PM][PassInstrumentation] IR printing support for New Pass Manager 2018-09-24 16:08:15 +00:00
LLVMBuild.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
PassBuilder.cpp [ThinLTO] Handle chains of aliases 2019-01-04 19:04:54 +00:00
PassPlugin.cpp NFC, Avoid a warning on pointer casting in PassPlugin.cpp 2018-04-30 14:21:28 +00:00
PassRegistry.def [ThinLTO] Handle chains of aliases 2019-01-04 19:04:54 +00:00
StandardInstrumentations.cpp [NewPM] -print-module-scope -print-after now prints module even after invalidated Loop/SCC 2018-12-21 11:49:05 +00:00