llvm/lib/Transforms
Peter Collingbourne 03ef7f1eec Move whole-program virtual call optimization pass after function attribute inference in LTO pipeline.
As a result of D18634 we no longer infer certain attributes on linkonce_odr
functions at compile time, and may only infer them at LTO time. The readnone
attribute in particular is required for virtual constant propagation (part
of whole-program virtual call optimization) to work correctly.

This change moves the whole-program virtual call optimization pass after
the function attribute inference passes, and enables the attribute inference
passes at opt level 1, so that virtual constant propagation has a chance to
work correctly for linkonce_odr functions.

Differential Revision: http://reviews.llvm.org/D20643

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270765 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-25 21:26:14 +00:00
..
Hello Remove autoconf support 2016-01-26 21:29:08 +00:00
InstCombine Clarify that we match BSwap in InstCombine and BitReverse in CGP. NFC. 2016-05-25 16:22:14 +00:00
Instrumentation Use new triple API to check if comdat is supported 2016-05-25 17:17:51 +00:00
IPO Move whole-program virtual call optimization pass after function attribute inference in LTO pipeline. 2016-05-25 21:26:14 +00:00
ObjCARC Unify XDEBUG and EXPENSIVE_CHECKS (into the latter), and add an option to the cmake build to enable them. 2016-04-29 15:22:48 +00:00
Scalar [PM] CorrelatedValuePropagation: pass state to function. NFCI. 2016-05-25 17:39:54 +00:00
Utils ValueMaterializer: rename materializeDeclFor() to materialize() 2016-05-25 21:03:21 +00:00
Vectorize fix typo; NFC 2016-05-25 21:03:31 +00:00
CMakeLists.txt
LLVMBuild.txt