llvm/lib/Transforms
Chris Lattner 8d96964e29 Generalize not and neg comparison testers to allow constant to be considered not'able and neg'able. This
allows optimization of this:
int %test4(int %A, int %B) {
        %a = xor int %A, -1
        %c = and int %a, 5    ; 5 = ~c2
        %d = xor int %c, -1
        ret int %d
}

into this:
int %test4(int %A, int %B) {            ; No predecessors!
        %c.demorgan = or int %A, -6             ; <int> [#uses=1]
        ret int %c.demorgan
}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5736 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:06:50 +00:00
..
Hello Initial checkin of the "Hello World" Pass. 2002-08-08 20:10:38 +00:00
Instrumentation Changes to runtime framework 2003-02-14 20:41:53 +00:00
IPO Eliminate tons of bogus warnings 2003-03-03 19:57:46 +00:00
Scalar Generalize not and neg comparison testers to allow constant to be considered not'able and neg'able. This 2003-03-10 23:06:50 +00:00
Utils Fix bug: SimplifyCFG/2003-03-07-DominateProblem.ll 2003-03-07 18:13:41 +00:00
ExprTypeConvert.cpp Fix bug: LevelRaise/2003-02-13-CallRaise.ll 2003-02-14 03:07:17 +00:00
LevelRaise.cpp - Eliminated the deferred symbol table stuff in Module & Function, it really 2002-11-20 18:36:02 +00:00
Makefile Convert DIRS to PARALLEL_DIRS. They can be built independently. 2002-09-29 11:52:14 +00:00
TransformInternals.cpp Fix bug: LevelRaise/2003-01-22-GEPProblem.ll 2003-01-23 02:39:10 +00:00
TransformInternals.h Fix: test/Regression/LLC/badidx.c problem 2002-09-16 18:32:33 +00:00