#
19d0b47b |
| 16-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
There are two ways of checking for a given type, for example isa<PointerType>(T) and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris.
llvm-svn: 963
There are two ways of checking for a given type, for example isa<PointerType>(T) and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris.
llvm-svn: 96344
show more ...
|
#
9dff9bec |
| 15-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Uniformize the names of type predicates: rather than having isFloatTy and isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
|
#
d924f636 |
| 11-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
Make jump threading honor x|undef -> true and x&undef -> false, instead of considering x|undef -> x, which may not be true.
llvm-svn: 95850
|
#
29b15c5c |
| 23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
third bug from PR6119: the xor dupe extension allows for arbitrary terminators in predecessors, don't assume it is a conditional or uncond branch. The testcase shows an example where they can happen
third bug from PR6119: the xor dupe extension allows for arbitrary terminators in predecessors, don't assume it is a conditional or uncond branch. The testcase shows an example where they can happen with switches.
llvm-svn: 94323
show more ...
|
#
ba2d0b89 |
| 23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
add an early out to ProcessBranchOnXOR to speed it up, handle the case when we can infer an input to the xor from all inputs that agree, instead of going into an infinite loop. Another part of PR619
add an early out to ProcessBranchOnXOR to speed it up, handle the case when we can infer an input to the xor from all inputs that agree, instead of going into an infinite loop. Another part of PR6199
llvm-svn: 94321
show more ...
|
#
de5ab486 |
| 23-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix a crash in jump threading, PR6119
llvm-svn: 94319
|
#
573da8ac |
| 12-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
1) Use the new SimplifyInstructionsInBlock routine instead of the copy in JT.
2) When cloning blocks for PHI or xor conditions, use instsimplify to simplify the code as we go. This allows us to sq
1) Use the new SimplifyInstructionsInBlock routine instead of the copy in JT.
2) When cloning blocks for PHI or xor conditions, use instsimplify to simplify the code as we go. This allows us to squish common cases early in JT which opens up opportunities for subsequent iterations, and allows it to completely simplify the testcase.
llvm-svn: 93253
show more ...
|
#
af7855d5 |
| 12-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up
llvm-svn: 93222
|
#
eb73bdb2 |
| 12-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Teach jump threading to duplicate small blocks when the branch condition is a xor with a phi node. This eliminates nonsense like this from 176.gcc in several places:
LBB166_84: testl %ea
Teach jump threading to duplicate small blocks when the branch condition is a xor with a phi node. This eliminates nonsense like this from 176.gcc in several places:
LBB166_84: testl %eax, %eax - setne %al - xorb %cl, %al - notb %al - testb $1, %al - je LBB166_85 + je LBB166_69 + jmp LBB166_85
This is rdar://7391699
llvm-svn: 93221
show more ...
|
#
6a19ed0b |
| 11-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
some cleanup, and make it obvious that ProcessJumpOnPHI only works on branches by renaming it and checking for a branch at the call site.
llvm-svn: 93208
|
#
76e27664 |
| 07-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use a do-while loop instead of while + boolean.
llvm-svn: 92912
|
#
1efdb455 |
| 05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs().
llvm-svn: 92614
|
#
f8d22fc7 |
| 28-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
Metadata.h doesn't need to include ValueHandle.h anymore.
llvm-svn: 92211
|
#
6d6f10fe |
| 06-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
fix PR5698
llvm-svn: 90708
|
#
3c9aca90 |
| 01-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
fix PR5640 by tracking whether a block is the header of a loop more precisely, which prevents us from infinitely peeling the loop.
llvm-svn: 90211
|
#
9d9812a6 |
| 15-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
make PRE of loads preserve the alignment of the moved load instruction.
llvm-svn: 88865
|
#
5f037b64 |
| 15-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
fix a bug handling 'not x' when x is undef.
llvm-svn: 88864
|
#
5f6b8b2b |
| 12-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
use getPredicateOnEdge to fold comparisons through PHI nodes, which implements GCC PR18046. This also gets us 360 more jump threads on 176.gcc.
llvm-svn: 86953
|
#
22db4b5e |
| 12-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
various fixes to the lattice transfer functions.
llvm-svn: 86952
|
#
c893c4ed |
| 12-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
switch jump threading to use getPredicateOnEdge in one place making the new LVI stuff smart enough to subsume some special cases in the old code. Disable them when LVI is around, the testcase still
switch jump threading to use getPredicateOnEdge in one place making the new LVI stuff smart enough to subsume some special cases in the old code. Disable them when LVI is around, the testcase still passes.
llvm-svn: 86951
show more ...
|
#
ba456169 |
| 12-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
with the new code we can thread non-instruction values. This allows us to handle the test10 testcase.
llvm-svn: 86924
|
#
3f80d851 |
| 12-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
this argument can be an arbitrary value, it doesn't need to be an instruction.
llvm-svn: 86923
|
#
d5e25436 |
| 12-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
expose edge information and switch j-t to use it.
llvm-svn: 86920
|
#
67146695 |
| 11-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
pass TD into a SimplifyCmpInst call. Add another case that uses LVI info when -enable-jump-threading-lvi is passed.
llvm-svn: 86886
|
#
fde1f8d0 |
| 11-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
stub out some LazyValueInfo interfaces, and have JumpThreading start using them in a trivial way when -enable-jump-threading-lvi is passed. enable-jump-threading-lvi will be my playground for awhil
stub out some LazyValueInfo interfaces, and have JumpThreading start using them in a trivial way when -enable-jump-threading-lvi is passed. enable-jump-threading-lvi will be my playground for awhile.
llvm-svn: 86789
show more ...
|