llvm-6502/lib
Wei Mi 61897e8564 Enable exitValue rewrite only when the cost of expansion is low.
The patch evaluates the expansion cost of exitValue in indVarSimplify pass, and only does the rewriting when the expansion cost is low or loop can be deleted with the rewriting. It provides an option "-replexitval=" to control the default aggressiveness of the exitvalue rewriting. It also fixes some missing cases in SCEVExpander::isHighCostExpansionHelper to enhance the evaluation of SCEV expansion cost.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238507 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-28 21:49:07 +00:00
..
Analysis Enable exitValue rewrite only when the cost of expansion is low. 2015-05-28 21:49:07 +00:00
AsmParser Add initial support for the convergent attribute. 2015-05-26 23:48:40 +00:00
Bitcode [BitcodeReader] Change assert to report_fatal_error 2015-05-27 01:05:40 +00:00
CodeGen [SelectionDAG] Scalar shift amounts may require legalization 2015-05-28 21:29:59 +00:00
DebugInfo DebugInfo: .debug_line DWARF64 support 2015-05-28 15:38:17 +00:00
ExecutionEngine [Mips64] Add support for MCJIT for MIPS64r2 and MIPS64r6 2015-05-28 13:48:41 +00:00
Fuzzer [lib/Fuzzer] make the fuzzing timeout 1200 seconds by default (was: infinity) 2015-05-26 20:57:47 +00:00
IR Add initial support for the convergent attribute. 2015-05-26 23:48:40 +00:00
IRReader Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
LineEditor Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
Linker While in GlobalValue fix the function(s) that don't follow the 2015-05-15 18:20:14 +00:00
LTO LTO: Add API to choose whether to embed uselists 2015-04-27 23:38:54 +00:00
MC Remove a trivial forwarding function. NFC. 2015-05-28 21:36:02 +00:00
Object Object: Add Archive::getNumberOfSymbols(). 2015-05-26 16:20:40 +00:00
Option Option parsing: properly handle flag aliases for joined options (PR23394) 2015-05-04 18:00:13 +00:00
Passes [PM] Fixup for r231556 where I missed a dependency on intrinsics 2015-03-07 09:08:20 +00:00
ProfileData InstrProf: Treat functions with a coverage map but no profile as unreached 2015-05-13 22:03:04 +00:00
Support [ARMTargetParser] Adding sub-arch information for Clang. NFC 2015-05-28 15:05:18 +00:00
TableGen Don't call utostr in Twine/raw_ostream contexts. 2015-05-28 11:24:24 +00:00
Target Remove a trivial forwarding function. NFC. 2015-05-28 21:36:02 +00:00
Transforms Enable exitValue rewrite only when the cost of expansion is low. 2015-05-28 21:49:07 +00:00
CMakeLists.txt [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00
LLVMBuild.txt Reflow long lines of some LLVMBuild files 2015-05-14 15:38:27 +00:00
Makefile [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00