| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
into libanalysis and transformutils.
llvm-svn: 86735
|
| |
|
|
|
|
| |
tracked down by Stephan Reiter!
llvm-svn: 86726
|
| |
|
|
| |
llvm-svn: 86723
|
| |
|
|
|
|
|
|
| |
debug intrinsics, and an unconditional branch when possible. This
reuses the TryToSimplifyUncondBranchFromEmptyBlock function split
out of simplifycfg.
llvm-svn: 86722
|
| |
|
|
| |
llvm-svn: 86715
|
| |
|
|
| |
llvm-svn: 86705
|
| |
|
|
| |
llvm-svn: 86694
|
| |
|
|
| |
llvm-svn: 86689
|
| |
|
|
| |
llvm-svn: 86683
|
| |
|
|
| |
llvm-svn: 86681
|
| |
|
|
|
|
| |
size associated with a malloc; also extend PerformHeapAllocSRoA() to check if the optimized malloc's arg had its highest bit set, so that it is safe for ComputeMultiple() to look through sext instructions while determining the optimized malloc's array size
llvm-svn: 86676
|
| |
|
|
|
|
|
| |
of a computation. This fixes some infinite loops when dealing with TD that
has no native types.
llvm-svn: 86670
|
| |
|
|
| |
llvm-svn: 86668
|
| |
|
|
|
|
|
| |
memory just like a store" with bug fixed (partial-overwrite.ll is the
regression test).
llvm-svn: 86667
|
| |
|
|
| |
llvm-svn: 86666
|
| |
|
|
| |
llvm-svn: 86656
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 86639
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch forbids implicit conversion of DenseMap::const_iterator to
DenseMap::iterator which was possible because DenseMapIterator inherited
(publicly) from DenseMapConstIterator. Conversion the other way around is now
allowed as one may expect.
The template DenseMapConstIterator is removed and the template parameter
IsConst which specifies whether the iterator is constant is added to
DenseMapIterator.
Actually IsConst parameter is not necessary since the constness can be
determined from KeyT but this is not relevant to the fix and can be addressed
later.
Patch by Victor Zverovich!
llvm-svn: 86636
|
| |
|
|
| |
llvm-svn: 86635
|
| |
|
|
|
|
| |
simplification, this handles the foldable fcmp x,x cases among many others.
llvm-svn: 86627
|
| |
|
|
| |
llvm-svn: 86625
|
| |
|
|
|
|
|
| |
Simplify[IF]Cmp pieces. Add some predicates to CmpInst to
determine whether a predicate is fp or int.
llvm-svn: 86624
|
| |
|
|
|
|
| |
individual operands instead of taking a temporary array
llvm-svn: 86619
|
| |
|
|
| |
llvm-svn: 86616
|
| |
|
|
|
|
|
| |
simplifies instruction users of PHIs when the phi is eliminated. This
will be moved to transforms/utils after some other refactoring.
llvm-svn: 86603
|
| |
|
|
| |
llvm-svn: 86575
|
| |
|
|
|
|
|
|
|
|
|
|
| |
the loop. This is needed because with indirectbr it may not be possible
for LoopSimplify to guarantee that all loop exit predecessors are
inside the loop. This fixes PR5437.
LCCSA no longer actually requires LoopSimplify form, but for now it
must still have the dependency because the PassManager doesn't know
how to schedule LoopSimplify otherwise.
llvm-svn: 86569
|
| |
|
|
|
|
| |
it to a normal binop. Patch by Alastair Lynn, testcase by me.
llvm-svn: 86524
|
| |
|
|
|
|
| |
putchar in case there is an error.
llvm-svn: 86515
|
| |
|
|
|
|
| |
used by a chain of other PHIs.
llvm-svn: 86503
|
| |
|
|
| |
llvm-svn: 86499
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
two problems addressed
here:
1) We need to avoid processing sigma nodes as phi nodes for constraint generation.
2) We need to generate constraints for comparisons against constants properly.
This includes our first working ABCD test!
llvm-svn: 86498
|
| |
|
|
| |
llvm-svn: 86497
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
different constraint
graphs being produced. The cause was that we were incorrectly marking sigma instructions as
processed after handling the sigma-specific constraints for them, potentially neglecting to
process them as normal instructions as well.
Unfortunately, the testcase that inspired this still doesn't work because of a bug in the solver,
which is next on the list to debug.
llvm-svn: 86486
|
| |
|
|
|
|
|
|
|
| |
when both the source and dest are illegal types, since it would cause
the phi to grow (for example, we shouldn't transform test14b's phi to
a phi on i320). This fixes an infinite loop on i686 bootstrap with
phi slicing turned on, so turn it back on.
llvm-svn: 86483
|
| |
|
|
|
|
| |
(SliceUpIllegalIntegerPHI) disabled.
llvm-svn: 86480
|
| |
|
|
|
|
| |
llvm-gcc bootstrap.
llvm-svn: 86478
|
| |
|
|
|
|
|
|
| |
not turn a PHI in a legal type into a PHI of an illegal type, and
add a new optimization that breaks up insane integer PHI nodes into
small pieces (PR3451).
llvm-svn: 86443
|
| |
|
|
| |
llvm-svn: 86403
|
| |
|
|
|
|
|
|
|
|
| |
(eliminating some extends) if the new type of the
computation is legal or if both the source and dest
are illegal. This prevents instcombine from changing big
chains of computation into i64 on 32-bit targets for
example.
llvm-svn: 86398
|
| |
|
|
|
|
| |
llvm-gcc-i386-darwin9 build bot.
llvm-svn: 86391
|
| |
|
|
|
|
| |
a store.
llvm-svn: 86359
|
| |
|
|
|
|
|
|
|
| |
(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
|
| |
|
|
|
|
| |
things. Back out part of r86349 for a moment.
llvm-svn: 86353
|
| |
|
|
|
|
| |
and add a .ll to demo the new capability.
llvm-svn: 86349
|
| |
|
|
|
|
|
| |
86289, 86278, 86270, 86267, 86266 & 86264
Chris, please take a look.
llvm-svn: 86321
|
| |
|
|
|
|
|
|
| |
bitcast
- fix ProcessInternalGlobal() debug output
llvm-svn: 86317
|
| |
|
|
| |
llvm-svn: 86314
|