#
3a2ae908 |
| 11-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
add a fixme
llvm-svn: 86766
|
#
9518fbb5 |
| 10-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
implement a TODO by teaching jump threading about "xor x, 1".
llvm-svn: 86739
|
#
852d6d64 |
| 10-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
move some generally useful functions out of jump threading into libanalysis and transformutils.
llvm-svn: 86735
|
#
40b15f22 |
| 10-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
improve comment.
llvm-svn: 86723
|
#
80e7e5a4 |
| 10-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Make jump threading eliminate blocks that just contain phi nodes, debug intrinsics, and an unconditional branch when possible. This reuses the TryToSimplifyUncondBranchFromEmptyBlock function split
Make jump threading eliminate blocks that just contain phi nodes, debug intrinsics, and an unconditional branch when possible. This reuses the TryToSimplifyUncondBranchFromEmptyBlock function split out of simplifycfg.
llvm-svn: 86722
show more ...
|
#
38c44ea6 |
| 10-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
make jump threading recursively simplify expressions instead of doing it just one level deep. On the testcase we go from getting this:
F1: ; preds = %
make jump threading recursively simplify expressions instead of doing it just one level deep. On the testcase we go from getting this:
F1: ; preds = %T2 %F = and i1 true, %cond ; <i1> [#uses=1] br i1 %F, label %X, label %Y
to a fully threaded:
F1: ; preds = %T2 br label %Y
This changes gets us to the point where we're forming (too many) switch instructions on doug's strswitch testcase.
llvm-svn: 86646
show more ...
|
#
be11db68 |
| 10-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
don't invalidate PN, rewrite of this code is in progress anyway.
llvm-svn: 86639
|
#
fb7f87d5 |
| 10-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
add a new SimplifyInstruction API, which is like ConstantFoldInstruction, except that the result may not be a constant. Switch jump threading to use it so that it gets things like (X & 0) -> 0, wh
add a new SimplifyInstruction API, which is like ConstantFoldInstruction, except that the result may not be a constant. Switch jump threading to use it so that it gets things like (X & 0) -> 0, which occur when phi preds are deleted and the remaining phi pred was a zero.
llvm-svn: 86637
show more ...
|
#
c1f19071 |
| 09-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
rename SimplifyCompare -> SimplifyCmpInst and split it into Simplify[IF]Cmp pieces. Add some predicates to CmpInst to determine whether a predicate is fp or int.
llvm-svn: 86624
|
#
800aad3d |
| 09-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
use instructionsimplify instead of a weak clone of ad-hoc folding stuff.
llvm-svn: 86616
|
#
2978ca7b |
| 09-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
stub out a new form of BasicBlock::RemovePredecessorAndSimplify which simplifies instruction users of PHIs when the phi is eliminated. This will be moved to transforms/utils after some other refacto
stub out a new form of BasicBlock::RemovePredecessorAndSimplify which simplifies instruction users of PHIs when the phi is eliminated. This will be moved to transforms/utils after some other refactoring.
llvm-svn: 86603
show more ...
|
#
ea465e22 |
| 09-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
comment typos pointed out by Duncan
llvm-svn: 86497
|
#
5ff7f567 |
| 07-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
reapply 86289, 86278, 86270, 86267, 86266 & 86264 plus a fix (making pred factoring only happen if threading is guaranteed to be successful).
This now survives an X86-64 bootstrap of llvm-gcc.
llvm
reapply 86289, 86278, 86270, 86267, 86266 & 86264 plus a fix (making pred factoring only happen if threading is guaranteed to be successful).
This now survives an X86-64 bootstrap of llvm-gcc.
llvm-svn: 86355
show more ...
|
#
3a42e7ac |
| 07-Nov-2009 |
Devang Patel <dpatel@apple.com> |
Revert following patches to fix llvmgcc bootstrap. 86289, 86278, 86270, 86267, 86266 & 86264 Chris, please take a look.
llvm-svn: 86321
|
#
8f77e948 |
| 07-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Avoid "ambiguous 'else'" warning from gcc.
llvm-svn: 86314
|
#
eb690fea |
| 06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Fix a bug where we'd call SplitBlockPredecessors with a pred in the set only once even if it has multiple edges to BB.
llvm-svn: 86299
|
#
a70917b2 |
| 06-Nov-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove function left over from other jump threading cleanup.
llvm-svn: 86289
|
#
a8b9ce3f |
| 06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Fix a problem discovered on self host.
llvm-svn: 86278
|
#
d91a7960 |
| 06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
remove more code subsumed by r86264
llvm-svn: 86270
|
#
899ef22a |
| 06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate some more code subsumed by r86264
llvm-svn: 86267
|
#
2f6184f6 |
| 06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
remove now redundant code, r86264 handles this case.
llvm-svn: 86266
|
#
68d2417e |
| 06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Extend jump threading to support much more general threading predicates. This allows us to jump thread things like:
_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit119: %tmp1.i24166 = p
Extend jump threading to support much more general threading predicates. This allows us to jump thread things like:
_ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit119: %tmp1.i24166 = phi i8 [ 1, %bb5.i117 ], [ %tmp1.i24165, %_Z....exit ], [ %tmp1.i24165, %bb4.i114 ] %toBoolnot.i87 = icmp eq i8 %tmp1.i24166, 0 ; <i1> [#uses=1] %tmp4.i90 = icmp eq i32 %tmp2.i, 6 ; <i1> [#uses=1] %or.cond173 = and i1 %toBoolnot.i87, %tmp4.i90 ; <i1> [#uses=1] br i1 %or.cond173, label %bb4.i96, label %_ZN12...
Where it is "obvious" that when coming from %bb5.i117 that the 'and' is always false. This triggers a surprisingly high number of times in the testsuite, and gets us closer to generating good code for doug's strswitch testcase.
This also make a bunch of other code in jump threading redundant, I'll rip out in the next patch. This survived an enable-checking llvm-gcc bootstrap.
llvm-svn: 86264
show more ...
|
#
46b5c642 |
| 06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
remove a bunch of extraneous LLVMContext arguments from various APIs, addressing PR5325.
llvm-svn: 86231
|
#
a0906275 |
| 04-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
improve DSE when TargetData is not around, based on work by Hans Wennborg!
llvm-svn: 86067
|
Revision tags: llvmorg-2.6.0 |
|
#
85c85c5e |
| 11-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
when folding duplicate conditions, delete the now-probably-dead instruction tree feeding it.
llvm-svn: 83778
|