Commit Graph

55714 Commits

Author SHA1 Message Date
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