History log of /llvm-project/llvm/lib/Transforms/Scalar/JumpThreading.cpp (Results 476 – 500 of 567)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


1...<<11121314151617181920>>...23