Commit Graph

5439 Commits

Author SHA1 Message Date
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
Chris Lattner
1b77300154 * Add testcases for associative operators
* Add testcase for or ubyte, 255 which was broken before


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5735 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 22:43:56 +00:00
Chris Lattner
1680312867 Fix ConstantUInt::isAllOnesValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5734 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 22:39:02 +00:00
Chris Lattner
4f98c56936 Generalize (A+c1)+c2 optimization to work with all associative operators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5733 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 21:43:22 +00:00
Chris Lattner
2bd37807d0 Modernize testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5732 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 19:44:01 +00:00
Chris Lattner
28ba1aad99 Minor change, no functionality diff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5731 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 19:20:30 +00:00
Chris Lattner
c232870b6f Add a bunch of new tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5730 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 19:16:20 +00:00
Chris Lattner
ea34005404 Fix bug: (x << 100) wasn't folded to 0, but (x >> 100) was (when x is unsigned)
Implement new shift optimizations for shifting the result of a shift.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5729 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 19:16:08 +00:00
Chris Lattner
cb40a3749a Implement: (A|B)^B == A & (~B)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5728 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 18:24:17 +00:00
Chris Lattner
63a9548591 Add test for: (A|B)^B == A & (~B)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5727 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 18:24:04 +00:00
Chris Lattner
a66e2fa195 Modernize testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5726 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 18:20:53 +00:00
Misha Brukman
3d87b42bf9 The word 'independent' has no 'a'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5724 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-08 23:59:05 +00:00
Chris Lattner
10f22cb1a0 Make sure that intermediate code is verifier clean to avoid wierd problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5723 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-07 18:17:13 +00:00
Chris Lattner
3a43837d85 Fix bug: SimplifyCFG/2003-03-07-DominateProblem.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5722 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-07 18:13:41 +00:00
Chris Lattner
5db057fbb0 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5721 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-07 17:42:55 +00:00
Chris Lattner
38d8773650 Clean up cruft
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5720 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 23:23:32 +00:00
Chris Lattner
a5ae71a137 Extend struct and array constants to support isNullValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5719 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 21:02:43 +00:00
Chris Lattner
27accf7692 Remove #include
Extend getNullValue to work with struct and array types


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5718 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 21:02:18 +00:00
Chris Lattner
42289a3010 Update testcases to use long to index gep
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5717 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 19:59:08 +00:00
Chris Lattner
036b8aa030 Infrastructure for more compact bytecode files and REAL support for versioning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5716 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 17:55:45 +00:00
Chris Lattner
6e5a0e4e89 s/Method/Function in variable and method names
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5715 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 17:18:14 +00:00
Chris Lattner
2a7b6bab7a Continue simplifying error handling, s/method/function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5714 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 17:15:19 +00:00
Chris Lattner
b6c46959fd Cleanup error handling constructs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5713 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 17:03:28 +00:00
Chris Lattner
09abe6aba3 Pull common code out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5712 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 16:50:32 +00:00
Chris Lattner
fade83f62f Generalize interface a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5711 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 16:50:21 +00:00
Chris Lattner
3e76157d5a Remove unneccesary forward decl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5710 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 16:37:29 +00:00
Chris Lattner
566f0ee4ed Add new getIncomingValueForBlock method
Relax a bit about constness


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5709 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 16:36:28 +00:00
Chris Lattner
0d75d8d73e Use the std namespace explicitly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5708 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-06 16:32:25 +00:00
Chris Lattner
556b50c193 Add a link to source of inspiration
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5707 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 23:02:25 +00:00
Chris Lattner
2fc36e42ca New testcase for pow builtin recognition
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5706 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 22:56:59 +00:00
Chris Lattner
8e019aa9c9 Add another testcase that may eventually be handled...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5705 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 22:50:55 +00:00
Chris Lattner
decd0812ec Implement %test7 in InstCombine/getelementptr.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5704 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 22:33:14 +00:00
Chris Lattner
4872eaf189 Add testcase for new instcombine xform
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5703 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 22:32:48 +00:00
Chris Lattner
46a5f1f6e4 Implement CFGSimplify/PhiBlockMerge*.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5702 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 21:36:33 +00:00
Chris Lattner
a1040199e4 Add new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5701 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 21:34:35 +00:00
Chris Lattner
05ddff9b98 Simplify some of the PHI node interfaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5700 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 21:15:12 +00:00
Chris Lattner
e2ca540e7c Implement testcase CFGSimplify/EqualPHIEdgeBlockMerge.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5699 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 21:01:52 +00:00
Chris Lattner
ceb536eda3 New testcase for feature simplifycfg should handle
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5698 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 20:35:24 +00:00
Chris Lattner
a8bda21c8d Add testcase for new feature for simplifycfg pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5697 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-05 20:22:50 +00:00
Chris Lattner
9f6487563c Initial checkin of AliasAnalysis doc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5696 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-04 19:37:49 +00:00
Chris Lattner
506b4e4368 Fix bug: BasicAA/2003-03-04-GEPCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5695 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-04 16:40:17 +00:00
Chris Lattner
3fc7b6bd65 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5694 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-04 16:33:52 +00:00
Chris Lattner
0252e49f6d Convert LICM over to use AliasSetTracker. Besides being nicer, this automatically
allows LICM to use access sizes to help alias analysis be more precise.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5693 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 23:32:45 +00:00
Chris Lattner
adf99700a7 Fix bug: Assembler/2003-03-03-DuplicateConstant.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5692 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 23:28:55 +00:00
Chris Lattner
319d05bff4 ADd two new 'add' methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5691 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 23:28:05 +00:00
Chris Lattner
b75f9dda9e Add a few new 'add' methods. Move the iterator around
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5690 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 23:27:52 +00:00
Chris Lattner
1e6233af96 Make the testcase more interesting, test that two different array elements don't alias
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5689 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 23:27:15 +00:00
Chris Lattner
3475ed024e New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5688 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 21:29:00 +00:00
Chris Lattner
f5e84662c2 Add new testcase for forward reference of struct type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5687 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 20:28:42 +00:00
Chris Lattner
dde601d0eb Eliminate tons of bogus warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5686 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 19:57:46 +00:00