llvm-project/llvm/lib/Transforms
Matthias Braun c31032d607 InstCombine: Restrict computeKnownBits() on all Values to OptLevel > 2
As part of r251146 InstCombine was extended to call computeKnownBits on
every value in the function to determine whether it happens to be
constant. This increases typical compiletime by 1-3% (5% in irgen+opt
time) in my measurements. On the other hand this case did not trigger
once in the whole llvm-testsuite.

This patch introduces the notion of ExpensiveCombines which are only
enabled for OptLevel > 2. I removed the check in InstructionSimplify as
that is called from various places where the OptLevel is not known but
given the rarity of the situation I think a check in InstCombine is
enough.

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

llvm-svn: 263047
2016-03-09 18:47:11 +00:00
..
Hello Remove autoconf support 2016-01-26 21:29:08 +00:00
IPO InstCombine: Restrict computeKnownBits() on all Values to OptLevel > 2 2016-03-09 18:47:11 +00:00
InstCombine InstCombine: Restrict computeKnownBits() on all Values to OptLevel > 2 2016-03-09 18:47:11 +00:00
Instrumentation [tsan] Add support for pointer typed atomic stores, loads, and cmpxchg 2016-03-07 23:16:23 +00:00
ObjCARC ADT: Remove == and != comparisons between ilist iterators and pointers 2016-02-21 20:39:50 +00:00
Scalar [LoopDataPrefetch] Add stats and debug output 2016-03-09 05:33:21 +00:00
Utils FunctionIndex is not optional for renameModuleForThinLTO(), make it a reference (NFC) 2016-03-09 01:37:14 +00:00
Vectorize ADT: Remove == and != comparisons between ilist iterators and pointers 2016-02-21 20:39:50 +00:00
CMakeLists.txt
LLVMBuild.txt