Chris Lattner
f457542506
optimize comparisons against cttz/ctlz/ctpop, patch by Alastair Lynn!
...
llvm-svn: 92745
2010-01-05 18:09:56 +00:00
Dan Gohman
5fa04f2707
Delete useless trailing semicolons.
...
llvm-svn: 92740
2010-01-05 17:55:26 +00:00
Dan Gohman
4b9a39d586
Nick Lewycky pointed out that this code makes changes unconditionally.
...
llvm-svn: 92739
2010-01-05 17:50:58 +00:00
David Greene
eef5772b46
Have TableGen emit code that uses dbgs() rather than errs().
...
llvm-svn: 92738
2010-01-05 17:47:41 +00:00
Devang Patel
eb75073664
If a scope has only one instruction then first instruction is also the last instruction.
...
llvm-svn: 92736
2010-01-05 16:59:17 +00:00
Dan Gohman
fff95c0489
Set Changed properly after calling DeleteDeadPHIs.
...
llvm-svn: 92735
2010-01-05 16:31:45 +00:00
Dan Gohman
e4a22bdd4a
Use do+while instead of while for loops which obviously have a
...
non-zero trip count. Use SmallVector's pop_back_val().
llvm-svn: 92734
2010-01-05 16:27:25 +00:00
Dan Gohman
7924aacfe4
Fix indentation.
...
llvm-svn: 92733
2010-01-05 16:20:55 +00:00
Dan Gohman
41cc1e1fc4
Make RecursivelyDeleteTriviallyDeadInstructions,
...
RecursivelyDeleteDeadPHINode, and DeleteDeadPHIs return a flag
indicating whether they made any changes.
llvm-svn: 92732
2010-01-05 15:45:31 +00:00
Dan Gohman
66ee3816ef
Some versions of GCC don't like non-static data members in sizeof
...
in this context.
llvm-svn: 92731
2010-01-05 15:28:21 +00:00
Dan Gohman
090f279ac5
Add a SmallBitVector class, which mimics BitVector but uses only
...
a single pointer (PointerIntPair) member. In "small" mode, the
pointer field is reinterpreted as a set of bits. In "large" mode,
the pointer points to a heap-allocated object.
Also, give BitVector empty and swap functions.
And, add some simple unittests for BitVector and SmallBitVector.
llvm-svn: 92730
2010-01-05 15:04:49 +00:00
Benjamin Kramer
cd6b749245
Add newline at EOF.
...
llvm-svn: 92727
2010-01-05 13:32:48 +00:00
Benjamin Kramer
e90a3c66c4
Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer.
...
llvm-svn: 92726
2010-01-05 13:12:22 +00:00
Chris Lattner
09b91ecf3c
prune some #includes.
...
llvm-svn: 92712
2010-01-05 07:54:43 +00:00
Chris Lattner
58ddbda58c
split and/or/xor out into one overly-large (2000LOC) file. However, I think
...
it does make sense to keep them together, at least for now.
llvm-svn: 92711
2010-01-05 07:50:36 +00:00
Chris Lattner
7201f09ff2
missed file with previous commit.
...
llvm-svn: 92710
2010-01-05 07:45:02 +00:00
Chris Lattner
dd39b601af
split instcombine of shifts out to its own file.
...
llvm-svn: 92709
2010-01-05 07:44:46 +00:00
Chris Lattner
e75f48f8bd
eliminate getBitCastOperand and simplify some over-complex inbounds stuff.
...
llvm-svn: 92708
2010-01-05 07:42:10 +00:00
Chris Lattner
e21194fe22
split call handling out to InstCombineCalls.cpp
...
llvm-svn: 92707
2010-01-05 07:32:13 +00:00
Chris Lattner
491e03b6ef
optimize cttz and ctlz when we can prove something about the
...
leading/trailing bits. Patch by Alastair Lynn!
llvm-svn: 92706
2010-01-05 07:23:56 +00:00
Chris Lattner
e36e3b586d
this inline function moved to addsub
...
llvm-svn: 92705
2010-01-05 07:20:54 +00:00
Chris Lattner
63747a10a8
split add/sub out to its own file. Eliminate use of
...
dyn_castNotVal in the X+~X transform. dyn_castNotVal is
dramatic overkill for what the xform needed.
llvm-svn: 92704
2010-01-05 07:18:46 +00:00
Chris Lattner
5ea00f56bd
all the places we use hasOneUse() we know are instructions, so inline
...
and simplify.
llvm-svn: 92700
2010-01-05 07:04:23 +00:00
Chris Lattner
081decf118
eliminate AssociativeOpt and its last uses.
...
llvm-svn: 92697
2010-01-05 07:01:16 +00:00
Chris Lattner
4d773ac576
inline the FoldICmpLogical functor.
...
llvm-svn: 92695
2010-01-05 06:59:49 +00:00
Evan Cheng
3c99a6f8c3
Code refactoring.
...
llvm-svn: 92694
2010-01-05 06:52:31 +00:00
Chris Lattner
1e57d0e7e3
inline the 'AddRHS' transformation, simplifying things significantly.
...
Eliminate the 'AddMaskingAnd' transformation, it is redundant with this
more general code right below it:
// A+B --> A|B iff A and B have no bits set in common.
llvm-svn: 92693
2010-01-05 06:29:13 +00:00
Chris Lattner
17a2db8444
remove massive over-genality manifested as a big template
...
that got instantiated. There is no reason for instcombine
to try this hard for simple associative optimizations. Next
up, eliminate the template completely.
llvm-svn: 92692
2010-01-05 06:24:06 +00:00
Chris Lattner
92f9d59ad1
split mul/div/rem instructions out to their own file.
...
llvm-svn: 92689
2010-01-05 06:09:35 +00:00
Chris Lattner
8822b80a65
clean up header.
...
llvm-svn: 92688
2010-01-05 06:05:07 +00:00
Chris Lattner
e4910dc145
split select out to its own file.
...
llvm-svn: 92687
2010-01-05 06:03:12 +00:00
Chris Lattner
b55724e825
split out load/store/alloca.
...
llvm-svn: 92685
2010-01-05 05:57:49 +00:00
Chris Lattner
916d97c2d5
reduce indentation
...
llvm-svn: 92684
2010-01-05 05:42:08 +00:00
Chris Lattner
e22030e730
split vector stuff out to InstCombineVectorOps.cpp
...
llvm-svn: 92683
2010-01-05 05:36:20 +00:00
Chris Lattner
23ff3ce8eb
split PHI node stuff out to InstCombinePHI.cpp
...
llvm-svn: 92682
2010-01-05 05:31:55 +00:00
Chris Lattner
48618eeec3
convert various IntrinsicInst's to use class instead of struct.
...
llvm-svn: 92681
2010-01-05 05:21:26 +00:00
Chris Lattner
2ef4ba7cf5
fix an infinite loop in reassociate building emacs.
...
llvm-svn: 92679
2010-01-05 04:55:35 +00:00
David Greene
2f13cc8277
Change this back to errs().
...
llvm-svn: 92674
2010-01-05 01:55:22 +00:00
David Greene
28c02548d3
These should probably be errs().
...
llvm-svn: 92673
2010-01-05 01:53:59 +00:00
Devang Patel
9c02d20409
Delete renaming use of dead dbg intrinsics.
...
Intrinsic::dbg_stoppoint
Intrinsic::dbg_region_start
Intrinsic::dbg_region_end
Intrinsic::dbg_func_start
llvm-svn: 92672
2010-01-05 01:47:06 +00:00
Devang Patel
e6e1c93fb9
Use StringRef.startswith().
...
llvm-svn: 92671
2010-01-05 01:46:14 +00:00
David Greene
ede60e521f
Fix a build error by adding a missing commit.
...
llvm-svn: 92670
2010-01-05 01:36:30 +00:00
David Greene
a2eb2bde9e
Fix a build error and change errs() to dbgs().
...
llvm-svn: 92669
2010-01-05 01:34:26 +00:00
David Greene
4c591a29fd
Enable debug buffering.
...
llvm-svn: 92667
2010-01-05 01:30:32 +00:00
David Greene
a9aa7f2e15
Enable debug buffering.
...
llvm-svn: 92666
2010-01-05 01:30:21 +00:00
David Greene
2f3bd270a0
Change errs() to dbgs().
...
llvm-svn: 92665
2010-01-05 01:30:18 +00:00
David Greene
1ee15299b7
Change errs() to dbgs().
...
llvm-svn: 92664
2010-01-05 01:30:14 +00:00
David Greene
da24eb426d
Change errs() to dbgs().
...
llvm-svn: 92663
2010-01-05 01:30:09 +00:00
David Greene
38e8cf6313
Change errs() to dbgs().
...
llvm-svn: 92662
2010-01-05 01:30:06 +00:00
David Greene
b4caa095f9
Change errs() to dbgs().
...
llvm-svn: 92661
2010-01-05 01:30:04 +00:00