llvm-6502/lib
Duncan Sands 02b5e72ac6 GVN does simple propagation of conditions: when it sees a conditional
branch "br i1 %x, label %if_true, label %if_false" then it replaces
"%x" with "true" in places only reachable via the %if_true arm, and
with "false" in places only reachable via the %if_false arm.  Except
that actually it doesn't: if value numbering shows that %y is equal
to %x then, yes, %y will be turned into true/false in this way, but
any occurrences of %x itself are not transformed.  Fix this.  What's
more, it's often the case that %x is an equality comparison such as
"%x = icmp eq %A, 0", in which case every occurrence of %A that is
only reachable via the %if_true arm can be replaced with 0.  Implement
this and a few other variations on this theme.  This reduces the number
of lines of LLVM IR in "GCC as one big file" by 0.2%.  It has a bigger
impact on Ada code, typically reducing the number of lines of bitcode
by around 0.4% by removing repeated compiler generated checks.  Passes
the LLVM nightly testsuite and the Ada ACATS testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141177 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-05 14:28:49 +00:00
..
Analysis Fix a broken assert found by -Wparentheses. 2011-10-05 07:02:23 +00:00
Archive
AsmParser Remove last references to hotpatch. 2011-10-04 03:08:43 +00:00
Bitcode Also update the EH with bitcode. I missed this earlier. Thanks to Duncan for pointing it out. 2011-10-05 07:04:14 +00:00
CodeGen Also add <imp-use,kill> flags for redefined super-registers. 2011-10-05 00:01:48 +00:00
DebugInfo DWARF: avoid unnecessary map lookups. 2011-09-21 17:31:42 +00:00
ExecutionEngine MCJIT initialization TargetData 2011-09-30 16:40:10 +00:00
Linker lib/Linker: add support of deps which does not end with ".so". 2011-09-20 22:52:35 +00:00
MC Teach the MC to output code/data region marker labels in MachO and ELF modes. These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment. 2011-10-04 23:26:17 +00:00
Object Object: Add isSection{Data,BSS}. 2011-09-28 20:57:30 +00:00
Support Add more initializers to quiet a clang warning. 2011-10-05 05:00:26 +00:00
TableGen Replace snprintf with raw_string_ostream. 2011-10-04 21:08:56 +00:00
Target MipsDelaySlotFiller.cpp: Appease msvc to specify llvm::next() explicitly. 2011-10-05 10:11:02 +00:00
Transforms GVN does simple propagation of conditions: when it sees a conditional 2011-10-05 14:28:49 +00:00
VMCore Unbreak CMake build. 2011-10-04 18:22:24 +00:00
CMakeLists.txt Move TableGen's parser and entry point into a library 2011-10-01 16:41:13 +00:00
Makefile Remove more of llvmc and dependencies. 2011-09-20 00:34:27 +00:00