Chris Lattner
80d9c3a900
- InstCombine: (X | C1) & C2 --> X & C2 iff C1 & C1 == 0
...
- InstCombine: (X | C) & C --> C
- InstCombine: (X | C1) & C2 --> (X | (C1&C2)) & C2
llvm-svn: 7269
2003-07-23 19:25:52 +00:00
Chris Lattner
df40438bd7
New testcase
...
llvm-svn: 7267
2003-07-23 19:24:34 +00:00
Chris Lattner
5a4bcac8b1
New testcase
...
llvm-svn: 7266
2003-07-23 19:05:29 +00:00
Brian Gaeke
9de468d398
Add, rewrite, and/or reformat many comments.
...
Stop passing ostreams around: we already have one perfectly good ostream
and we can all share it.
Stop stashing a pointer to TargetData in the Pass object, because that will
lead to a crash if there are no functions in the module (ouch!) Instead,
use addRequired() and getAnalysis(), like we always should have done.
Move the check for ConstantExpr up before the check for isPrimitiveType,
because we need to be able to catch e.g. ubyte (cast bool false to ubyte),
whose type is primitive but which is nevertheless a ConstantExpr, by calling
our specialized handler instead of the AsmWriter. This would result in
assembler errors when we would try to output something like ".byte (cast
bool false to ubyte)".
GC some unused variable declarations.
llvm-svn: 7265
2003-07-23 18:37:06 +00:00
Chris Lattner
76c1da471c
IC: (X & C1) | C2 --> (X | C2) & (C1|C2)
...
IC: (X ^ C1) | C2 --> (X | C2) ^ (C1&~C2)
We are now guaranteed that all 'or's will be inside of 'and's, and all 'and's
will be inside of 'xor's, if the second operands are constants.
llvm-svn: 7264
2003-07-23 18:29:44 +00:00
Chris Lattner
1bfbaa842e
New testcases
...
llvm-svn: 7263
2003-07-23 18:28:42 +00:00
Chris Lattner
4b43cd9700
IC: (X ^ C1) & C2 --> (X & C2) ^ (C1&C2)
...
Minor code cleanup
llvm-svn: 7262
2003-07-23 17:57:01 +00:00
Chris Lattner
3847a79aa0
New testcase
...
llvm-svn: 7261
2003-07-23 17:56:34 +00:00
Chris Lattner
ae691a3068
InstCombine: (X ^ 4) == 8 --> X == 12
...
llvm-svn: 7260
2003-07-23 17:26:36 +00:00
Chris Lattner
be67ac6543
New testcase
...
llvm-svn: 7259
2003-07-23 17:25:55 +00:00
Chris Lattner
04652336b2
Add support for ~ operator on constants
...
llvm-svn: 7258
2003-07-23 17:21:17 +00:00
Chris Lattner
b07de65646
IC: (X & 5) == 13 --> false
...
IC: (X | 8) == 4 --> false
llvm-svn: 7257
2003-07-23 17:02:11 +00:00
Chris Lattner
eaf43bbfae
New tests
...
llvm-svn: 7256
2003-07-23 17:01:18 +00:00
John Criswell
8a92405de7
Renamed libtool to mklib for your tab completion pleasure.
...
llvm-svn: 7255
2003-07-23 16:52:50 +00:00
Chris Lattner
dd48c4b1e4
Remove redundant const qualifier
...
llvm-svn: 7254
2003-07-23 15:30:32 +00:00
Chris Lattner
1351c304dc
Remove redundant const qualifiers from cast<> expressions
...
llvm-svn: 7253
2003-07-23 15:30:06 +00:00
Chris Lattner
6ad460b336
Simplify code by using ConstantInt::getRawValue instead of checking to see
...
whether the constant is signed or unsigned, then casting
llvm-svn: 7252
2003-07-23 15:22:26 +00:00
Chris Lattner
9c569f48a0
Remove unnecessary casts
...
llvm-svn: 7250
2003-07-23 15:17:51 +00:00
Chris Lattner
bfe70df7fc
Fit code into 80 columns
...
llvm-svn: 7249
2003-07-23 15:17:01 +00:00
Chris Lattner
0fce06e40e
Eliminate old-style cast
...
llvm-svn: 7248
2003-07-23 15:16:40 +00:00
Chris Lattner
c1049acba1
Random cleanups
...
llvm-svn: 7247
2003-07-23 14:59:40 +00:00
Chris Lattner
67138b2c59
Remove using decl
...
llvm-svn: 7246
2003-07-23 14:55:59 +00:00
Chris Lattner
63ea851f94
Remove explicit const qualifiers
...
llvm-svn: 7245
2003-07-23 14:54:33 +00:00
Chris Lattner
913c260d94
Add more doxygen comments, add new ConstantInt::getRawValue method
...
llvm-svn: 7244
2003-07-23 14:49:06 +00:00
Chris Lattner
74a266d229
Fix bug: TailDup/2003-07-22-InfiniteLoop.ll
...
llvm-svn: 7243
2003-07-23 03:32:41 +00:00
Chris Lattner
5ff1500e85
New testcase that caused infinite loop in taildup
...
llvm-svn: 7242
2003-07-23 03:32:11 +00:00
Chris Lattner
7594fa7280
- InstCombine (cast (xor A, B) to bool) ==> (setne A, B)
...
- InstCombine (cast (and X, (1 << size(X)-1)) to bool) ==> x < 0
llvm-svn: 7241
2003-07-22 21:46:59 +00:00
Chris Lattner
e1ab6bb4de
New testcases
...
llvm-svn: 7240
2003-07-22 21:44:06 +00:00
John Criswell
9d03ea2e11
Repaired the --enable and --disable options.
...
llvm-svn: 7239
2003-07-22 21:00:24 +00:00
John Criswell
ba5a656e6c
Fixed the enable/disable options. The AC_ARG_ENABLE macro does not perform
...
the *action-if-not-given* code when the --disable option is used.
Rather, the AC_ARG_ENABLE macro sets the $enableval variable, which then needs
to be checked to determine if --enable, --disable, or neither was specified.
llvm-svn: 7238
2003-07-22 20:59:52 +00:00
Brian Gaeke
5779654cfc
Add documentation for runOnMachineFunction()
...
llvm-svn: 7237
2003-07-22 20:53:20 +00:00
John Criswell
dc0ddfbbb0
Made some corrections to the enable-llc_diffs option.
...
This should keep it from breaking for now.
llvm-svn: 7236
2003-07-22 20:07:49 +00:00
John Criswell
84b1b5a35a
Generated a new configure script.
...
This script uses files within the new autoconf subdirectory and includes
changes from Brian Gaeke's recent changes to configure.ac.
llvm-svn: 7235
2003-07-22 19:18:09 +00:00
John Criswell
86c560ed20
Updated to use files within the autoconf subdirectory.
...
llvm-svn: 7234
2003-07-22 19:17:35 +00:00
John Criswell
24031b974c
These are the autoconf files in their new home.
...
llvm-svn: 7233
2003-07-22 19:13:20 +00:00
John Criswell
9b5b343796
Moving these files to the llvm/autoconf directory.
...
llvm-svn: 7232
2003-07-22 19:12:02 +00:00
John Criswell
8683d69423
Moved configure.ac to the autoconf directory.
...
llvm-svn: 7231
2003-07-22 19:10:58 +00:00
Brian Gaeke
c8a0278ab8
turn off DISABLE_LLC_DIFFS for x86.
...
llvm-svn: 7230
2003-07-22 18:28:17 +00:00
Chris Lattner
f71891f2e0
Add new testcase
...
llvm-svn: 7229
2003-07-22 16:18:09 +00:00
Vikram S. Adve
f5e0c07db6
(1) Pass 'VAR=string' arguments to gmake
...
(2) Detect LLVMDIR using the LEVEL variable in Makefile.
(3) To perform #2 propertly, use the same Makefile search rules as gmake.
llvm-svn: 7228
2003-07-22 12:35:28 +00:00
Vikram S. Adve
420ec0bb0f
Fix comment.
...
llvm-svn: 7227
2003-07-22 12:08:58 +00:00
John Criswell
681385594f
Updated from the discussion on July 21, 2003.
...
Expanded upon testing priorities.
llvm-svn: 7225
2003-07-21 22:22:48 +00:00
Misha Brukman
f5b33e92c2
Fixed misspelling.
...
llvm-svn: 7223
2003-07-21 21:58:16 +00:00
Chris Lattner
9f501f98c8
Simplify code a bit
...
llvm-svn: 7217
2003-07-21 19:56:49 +00:00
John Criswell
98946bac5b
Added code that checks to see if a global variable is external before replacing
...
a load of the global variable with the variable's constant value.
llvm-svn: 7216
2003-07-21 19:42:57 +00:00
John Criswell
b62eacd2bb
Regression test for the Instruction Combining optimizization.
...
This test helps to see if the optimization correctly handles variables that
are declared constant and external.
llvm-svn: 7215
2003-07-21 19:41:51 +00:00
Chris Lattner
ac8e9ebce9
Remove unneccesary #ifdefs
...
llvm-svn: 7214
2003-07-21 19:23:31 +00:00
Chris Lattner
425abc04ab
Fix warnings
...
llvm-svn: 7213
2003-07-21 19:20:44 +00:00
Chris Lattner
7f36f7e9f0
Remove instloops library
...
llvm-svn: 7210
2003-07-21 19:07:27 +00:00
Misha Brukman
f7ca33f163
Eliminated dead code.
...
llvm-svn: 7209
2003-07-21 16:34:35 +00:00