Commit Graph

5495 Commits

Author SHA1 Message Date
Chris Lattner
be0fe12f72 Test limited reassociation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5742 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-11 00:10:59 +00:00
Chris Lattner
8408add00a Add optimizations:
- (A & C1)+(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
 - (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5741 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:52:54 +00:00
Chris Lattner
a4f445b28c Implement: -A*-B == A*B
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5740 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:23:04 +00:00
Chris Lattner
533741a764 Add testcases for negated multiplies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5739 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:22:50 +00:00
Chris Lattner
a27231acc0 Add new transformation: // (~A | ~B) == (~(A & B))
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5738 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:13:59 +00:00
Chris Lattner
0cec701eb2 Add test for demorgans law with constants
Add test for other form of demorgans


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5737 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:13:32 +00:00
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