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