llvm-6502/lib
Michael Zolotukhin 710ce5d36b Implement new heuristic for complete loop unrolling.
Complete loop unrolling can make some loads constant, thus enabling a
lot of other optimizations. To catch such cases, we look for loads that
might become constants and estimate number of instructions that would be
simplified or become dead after substitution.

Example:
Suppose we have:
int a[] = {0, 1, 0};
v = 0;
for (i = 0; i < 3; i ++)
  v += b[i]*a[i];

If we completely unroll the loop, we would get:
v = b[0]*a[0] + b[1]*a[1] + b[2]*a[2]

Which then will be simplified to:
v = b[0]* 0 + b[1]* 1 + b[2]* 0

And finally:
v = b[1]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228265 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-05 02:34:00 +00:00
..
Analysis Value soft float calls as more expensive in the inliner. 2015-02-05 02:09:33 +00:00
AsmParser AsmParser: Split out LineField, NFC 2015-02-04 22:59:18 +00:00
Bitcode IR: Initialize MDNode abbreviations en masse, NFC 2015-02-04 21:54:12 +00:00
CodeGen Don' try to make sections in comdats SHF_MERGE. 2015-02-04 21:27:24 +00:00
DebugInfo Move DebugInfo to DebugInfo/DWARF. 2015-01-30 18:07:45 +00:00
ExecutionEngine [MC] Remove various unused MCAsmInfo parameters. 2015-02-05 00:58:51 +00:00
Fuzzer [fuzzer] add flag prefer_small_during_initial_shuffle, be a bit more verbose 2015-02-04 23:42:42 +00:00
IR IR: Rename 'operator ==()' to 'isKeyOf()', NFC 2015-02-05 00:51:35 +00:00
IRReader Remove unused variable. NFC. 2014-11-06 23:16:57 +00:00
LineEditor
Linker [llvm link] Destroy ConstantArrays in LLVMContext if they are not used. 2015-01-20 19:24:59 +00:00
LTO [LTO API] split lto_codegen_compile to lto_codegen_optimize and 2015-02-03 18:39:15 +00:00
MC Try to fix the build in MCValue.cpp 2015-02-05 01:23:14 +00:00
Object [ELFYAML] Provide default value 0 for YAML relocation addendum field 2015-01-29 06:56:24 +00:00
Option [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
ProfileData InstrProf: Use a stable sort when reading coverage regions 2015-02-04 00:12:18 +00:00
Support SpecialCaseList: Add support for parsing multiple input files. 2015-02-04 17:39:48 +00:00
TableGen Replace size method call of containers to empty method where appropriate 2015-01-15 11:41:30 +00:00
Target Value soft float calls as more expensive in the inliner. 2015-02-05 02:09:33 +00:00
Transforms Implement new heuristic for complete loop unrolling. 2015-02-05 02:34:00 +00:00
CMakeLists.txt Reverting r227452, which adds back the fuzzer library. Now excluding the fuzzer library based on LLVM_USE_SANITIZE_COVERAGE being set or unset. 2015-01-29 16:58:29 +00:00
LLVMBuild.txt
Makefile Move DebugInfo to DebugInfo/DWARF. 2015-01-30 18:07:45 +00:00