llvm-6502/lib
Chris Lattner 3523993451 reuse negates where possible instead of always creating them from scratch.
This allows us to optimize test12 into:

define i32 @test12(i32 %X) {
  %factor = mul i32 %X, -3                        ; <i32> [#uses=1]
  %Z = add i32 %factor, 6                         ; <i32> [#uses=1]
  ret i32 %Z
}

instead of:

define i32 @test12(i32 %X) {
  %Y = sub i32 6, %X                              ; <i32> [#uses=1]
  %C = sub i32 %Y, %X                             ; <i32> [#uses=1]
  %Z = sub i32 %C, %X                             ; <i32> [#uses=1]
  ret i32 %Z
}



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92373 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-31 20:34:32 +00:00
..
Analysis fix Analysis/DebugInfo.h to not include Metadata.h. Do this 2009-12-31 03:02:08 +00:00
Archive Prune #includes from llvm/Linker.h and llvm/System/Path.h, 2009-08-23 22:45:37 +00:00
AsmParser remove some fixme's 2009-12-30 06:00:36 +00:00
Bitcode rename "elements" of metadata to "operands". "Elements" are 2009-12-31 01:22:29 +00:00
CodeGen remove a bunch of unneeded functions. 2009-12-29 09:32:19 +00:00
CompilerDriver Make Path use StringRef instead of std::string where possible. 2009-12-17 21:02:39 +00:00
ExecutionEngine Remove dead store and simplify code. 2009-12-28 01:53:00 +00:00
Linker rename "elements" of metadata to "operands". "Elements" are 2009-12-31 01:22:29 +00:00
MC Pass StringRef by value. 2009-11-06 10:58:06 +00:00
Support Document the edit-distance algorithm used in StringRef, switch it over 2009-12-31 04:24:34 +00:00
System Alternative fix to make sure that the extern declarations used by 2009-12-23 19:12:50 +00:00
Target Replace a few more SmallVectors with arrays. 2009-12-29 16:57:26 +00:00
Transforms reuse negates where possible instead of always creating them from scratch. 2009-12-31 20:34:32 +00:00
VMCore fix refactoro 2009-12-31 08:23:09 +00:00
Makefile remove llvm-db: it is completely broken and if anyone wants to do a debugger, 2009-10-05 02:29:51 +00:00