llvm/lib
Chris Lattner fd3f635103 Fix rdar://9289512 - not folding load into compare at -O0
The basic issue here is that bottom-up isel is matching the branch
and compare, and was failing to fold the load into the branch/compare
combo.  Fixing this (by allowing folding into any instruction of a
sequence that is selected) allows us to produce things like:


cmpb    $0, 52(%rax)
je      LBB4_2

instead of:

movb    52(%rax), %cl
cmpb    $0, %cl
je      LBB4_2

This makes the generated -O0 code run a bit faster, but also speeds up
compile time by putting less pressure on the register allocator and 
generating less code.

This was one of the biggest classes of missing load folding.  Implementing
this shrinks 176.gcc's c-decl.s (as a random example) by about 4% in (verbose-asm)
line count.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129656 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-17 06:35:44 +00:00
..
Analysis Introduce support to encode Objective-C property information in debugging information generated for an interface. 2011-04-16 00:11:51 +00:00
Archive Revert PathV2 changes, as sys::fs::unique_file is not finished yet. 2011-03-01 19:50:55 +00:00
AsmParser Revert r129235 pending a vetting of the EH rewrite. 2011-04-10 23:18:04 +00:00
Bitcode Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
CodeGen Fix rdar://9289512 - not folding load into compare at -O0 2011-04-17 06:35:44 +00:00
CompilerDriver Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
ExecutionEngine Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
Linker Set the unnamed_addr only when we're creating a new GV in the dest module. 2011-03-29 23:31:06 +00:00
MC Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
Object Start migrating mach-o dumping facilities to the object file out of a 2011-04-03 23:51:47 +00:00
Support Introduce support to encode Objective-C property information in debugging information generated for an interface. 2011-04-16 00:11:51 +00:00
Target Remove working entry from README. 2011-04-17 02:36:27 +00:00
Transforms Rename a misleadingly-named variable. 2011-04-16 14:32:34 +00:00
VMCore Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
CMakeLists.txt Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
Makefile