Commit Graph

5699 Commits

Author SHA1 Message Date
Chris Lattner 90677c51c7 Fix testcase
llvm-svn: 5746
2003-03-18 22:53:19 +00:00
Chris Lattner 9c19c07e8b Fix problems with BitSetVector that makes it not compile under GCC 3.0 and 2.95
llvm-svn: 5745
2003-03-17 18:11:27 +00:00
Chris Lattner c2bd7cf9fa Fix several bugs in the build system, including the use of the Debug version of Burg no matter what configuration is currently configured.
llvm-svn: 5744
2003-03-14 20:25:22 +00:00
Chris Lattner 7fb29e19f0 Add the following instcombine xforms:
- Implement simple reassociation: (A|c1)|(B|c2) == (A|B)|(c1|c2)
  - (A & C1)+(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
  - (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0

llvm-svn: 5743
2003-03-11 00:12:48 +00:00
Chris Lattner cb2691455e Test limited reassociation
llvm-svn: 5742
2003-03-11 00:10:59 +00:00
Chris Lattner dec13670e6 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

llvm-svn: 5741
2003-03-10 23:52:54 +00:00
Chris Lattner 934a64cfa4 Implement: -A*-B == A*B
llvm-svn: 5740
2003-03-10 23:23:04 +00:00
Chris Lattner d7342fbd92 Add testcases for negated multiplies
llvm-svn: 5739
2003-03-10 23:22:50 +00:00
Chris Lattner 3e327a4334 Add new transformation: // (~A | ~B) == (~(A & B))
llvm-svn: 5738
2003-03-10 23:13:59 +00:00
Chris Lattner f7a838595c Add test for demorgans law with constants
Add test for other form of demorgans

llvm-svn: 5737
2003-03-10 23:13:32 +00:00
Chris Lattner bb74e2284a 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
}

llvm-svn: 5736
2003-03-10 23:06:50 +00:00
Chris Lattner f67d52d3d7 * Add testcases for associative operators
* Add testcase for or ubyte, 255 which was broken before

llvm-svn: 5735
2003-03-10 22:43:56 +00:00
Chris Lattner 83e5d39566 Fix ConstantUInt::isAllOnesValue
llvm-svn: 5734
2003-03-10 22:39:02 +00:00
Chris Lattner dcf240a649 Generalize (A+c1)+c2 optimization to work with all associative operators
llvm-svn: 5733
2003-03-10 21:43:22 +00:00
Chris Lattner 2fa7577040 Modernize testcase
llvm-svn: 5732
2003-03-10 19:44:01 +00:00
Chris Lattner 3695257724 Minor change, no functionality diff
llvm-svn: 5731
2003-03-10 19:20:30 +00:00
Chris Lattner d97f0544e9 Add a bunch of new tests
llvm-svn: 5730
2003-03-10 19:16:20 +00:00
Chris Lattner e8d6c604bb 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.

llvm-svn: 5729
2003-03-10 19:16:08 +00:00
Chris Lattner 1bbb7b6f19 Implement: (A|B)^B == A & (~B)
llvm-svn: 5728
2003-03-10 18:24:17 +00:00
Chris Lattner 96c4dd94ef Add test for: (A|B)^B == A & (~B)
llvm-svn: 5727
2003-03-10 18:24:04 +00:00
Chris Lattner 87301bce1b Modernize testcase
llvm-svn: 5726
2003-03-10 18:20:53 +00:00
Misha Brukman 2645cf6e16 The word 'independent' has no 'a'.
llvm-svn: 5724
2003-03-08 23:59:05 +00:00
Chris Lattner 44ffd7c373 Make sure that intermediate code is verifier clean to avoid wierd problems.
llvm-svn: 5723
2003-03-07 18:17:13 +00:00
Chris Lattner 569a57f9ff Fix bug: SimplifyCFG/2003-03-07-DominateProblem.ll
llvm-svn: 5722
2003-03-07 18:13:41 +00:00
Chris Lattner 587cc42836 New testcase
llvm-svn: 5721
2003-03-07 17:42:55 +00:00
Chris Lattner b825722ac0 Clean up cruft
llvm-svn: 5720
2003-03-06 23:23:32 +00:00
Chris Lattner 187c39b6d0 Extend struct and array constants to support isNullValue
llvm-svn: 5719
2003-03-06 21:02:43 +00:00
Chris Lattner c33ae67237 Remove #include
Extend getNullValue to work with struct and array types

llvm-svn: 5718
2003-03-06 21:02:18 +00:00
Chris Lattner 81e92fe0bd Update testcases to use long to index gep
llvm-svn: 5717
2003-03-06 19:59:08 +00:00
Chris Lattner 1a175715d0 Infrastructure for more compact bytecode files and REAL support for versioning
llvm-svn: 5716
2003-03-06 17:55:45 +00:00
Chris Lattner c8f563bed1 s/Method/Function in variable and method names
llvm-svn: 5715
2003-03-06 17:18:14 +00:00
Chris Lattner 3f57f18059 Continue simplifying error handling, s/method/function
llvm-svn: 5714
2003-03-06 17:15:19 +00:00
Chris Lattner 21ae41b31b Cleanup error handling constructs
llvm-svn: 5713
2003-03-06 17:03:28 +00:00
Chris Lattner e373d5a664 Pull common code out
llvm-svn: 5712
2003-03-06 16:50:32 +00:00
Chris Lattner c429eee86a Generalize interface a bit
llvm-svn: 5711
2003-03-06 16:50:21 +00:00
Chris Lattner 1520eda3e3 Remove unneccesary forward decl
llvm-svn: 5710
2003-03-06 16:37:29 +00:00
Chris Lattner d5c4ef5456 Add new getIncomingValueForBlock method
Relax a bit about constness

llvm-svn: 5709
2003-03-06 16:36:28 +00:00
Chris Lattner 17f8686900 Use the std namespace explicitly
llvm-svn: 5708
2003-03-06 16:32:25 +00:00
Chris Lattner 805fc16a27 Add a link to source of inspiration
llvm-svn: 5707
2003-03-05 23:02:25 +00:00
Chris Lattner 1e89893882 New testcase for pow builtin recognition
llvm-svn: 5706
2003-03-05 22:56:59 +00:00
Chris Lattner 1d48528be6 Add another testcase that may eventually be handled...
llvm-svn: 5705
2003-03-05 22:50:55 +00:00
Chris Lattner 235af5673b Implement %test7 in InstCombine/getelementptr.ll
llvm-svn: 5704
2003-03-05 22:33:14 +00:00
Chris Lattner 6d0c1aeefe Add testcase for new instcombine xform
llvm-svn: 5703
2003-03-05 22:32:48 +00:00
Chris Lattner e54d214fcb Implement CFGSimplify/PhiBlockMerge*.ll
llvm-svn: 5702
2003-03-05 21:36:33 +00:00
Chris Lattner 9115973f47 Add new testcase
llvm-svn: 5701
2003-03-05 21:34:35 +00:00
Chris Lattner fbb7739b13 Simplify some of the PHI node interfaces
llvm-svn: 5700
2003-03-05 21:15:12 +00:00
Chris Lattner 31116bafed Implement testcase CFGSimplify/EqualPHIEdgeBlockMerge.ll
llvm-svn: 5699
2003-03-05 21:01:52 +00:00
Chris Lattner 25743e9cda New testcase for feature simplifycfg should handle
llvm-svn: 5698
2003-03-05 20:35:24 +00:00
Chris Lattner 283dda16ab Add testcase for new feature for simplifycfg pass
llvm-svn: 5697
2003-03-05 20:22:50 +00:00
Chris Lattner b512e9f37f Initial checkin of AliasAnalysis doc
llvm-svn: 5696
2003-03-04 19:37:49 +00:00