llvm-6502/lib
Chris Lattner cfa0f2edd3 Make the 2-address instruction lowering pass smarter in two ways:
1. If we are two-addressing a commutable instruction and the LHS is not the
   last use of the variable, see if the instruction is the last use of the
   RHS.  If so, commute the instruction, allowing us to avoid a
   register-register copy in many cases for common instructions like ADD, OR,
   AND, etc on X86.
2. If #1 doesn't hold, and if this is an instruction that also existing in
   3-address form, promote the instruction to a 3-address instruction to
   avoid the register-register copy.  We can do this for several common
   instructions in X86, including ADDrr, INC, DEC, etc.

This patch implements test/Regression/CodeGen/X86/commute-two-addr.ll,
overlap-add.ll, and overlap-shift.ll when I check in the X86 support for it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19245 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-02 02:34:12 +00:00
..
Analysis Wrap at 80 cols 2004-12-23 21:17:41 +00:00
Archive Remove potential platform portability issue with size of "int". 2004-12-29 01:20:24 +00:00
AsmParser Do not allow empty label names. 2004-12-10 05:40:19 +00:00
Bytecode Remove potential platform portability issue with size of "int". 2004-12-29 01:20:24 +00:00
CodeGen Make the 2-address instruction lowering pass smarter in two ways: 2005-01-02 02:34:12 +00:00
Debugger Correct the comments and file header. 2004-12-23 21:16:46 +00:00
ExecutionEngine Be double sure about including sys/stat.h by wrapping the inclusion in 2004-12-20 06:34:02 +00:00
Linker Remove un-needed #includes. 2004-12-20 04:15:44 +00:00
Support Make printing a warning message optional in CheckBytecodeOutputToConsole. 2005-01-02 00:10:03 +00:00
System Add functions for determining if the stdin/out/err is connected to a 2005-01-01 22:54:05 +00:00
Target Add some bits that can be set for instructions. 2005-01-02 02:27:48 +00:00
Transforms This is a bulk commit that implements the following primary improvements: 2005-01-01 16:22:27 +00:00
VMCore Allow getZeroExtend and getSignExtend to work with boolean inputs. 2005-01-01 15:59:57 +00:00
Makefile Add the Linker library 2004-11-14 21:54:41 +00:00