llvm-6502/lib
Chris Lattner 50af16a97b Simplify handling of shifts to be the same as we do for adds. Add support
for (X * C1) + (X * C2) (where * can be mul or shl), allowing us to fold:

   Y+Y+Y+Y+Y+Y+Y+Y

into
         %tmp.8 = shl long %Y, ubyte 3           ; <long> [#uses=1]

instead of

        %tmp.4 = shl long %Y, ubyte 2           ; <long> [#uses=1]
        %tmp.12 = shl long %Y, ubyte 2          ; <long> [#uses=1]
        %tmp.8 = add long %tmp.4, %tmp.12               ; <long> [#uses=1]

This implements add.ll:test25

Also add support for (X*C1)-(X*C2) -> X*(C1-C2), implementing sub.ll:test18


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17704 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-13 19:50:12 +00:00
..
Analysis Make this build in release mode 2004-11-11 22:11:17 +00:00
Archive Recognize compressed LLVM bytecode files. 2004-11-09 19:37:07 +00:00
AsmParser Make sure that the yacc and lex output are specified as BUILT_SOURCES. 2004-10-28 00:43:24 +00:00
Bytecode Recognize compressed LLVM bytecode files. 2004-11-09 19:37:07 +00:00
CodeGen Do not make i have bigger scope that we need 2004-11-05 04:47:37 +00:00
Debugger
ExecutionEngine Implement ExecutionEngine::freeMachineCodeForFunction() 2004-11-07 23:58:46 +00:00
Linker Makefile for lib/Linker 2004-11-12 20:38:45 +00:00
Support Tune compression: 2004-11-09 17:58:09 +00:00
System Fix isBytecodeFile to correctly recognized compressed bytecode too. 2004-11-09 20:27:23 +00:00
Target Correct the name of stosd for the AT&T syntax: 2004-11-10 04:48:15 +00:00
Transforms Simplify handling of shifts to be the same as we do for adds. Add support 2004-11-13 19:50:12 +00:00
VMCore Stop propagating method names that violate the coding standard 2004-11-05 22:15:36 +00:00
Makefile