#
5c9b0e1a |
| 17-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Change SCEVNAryExpr's operand array from a SmallVector to a plain pointer and length, and allocate the arrays in ScalarEvolution's BumpPtrAllocator, so that they get released when their owning SCEV g
Change SCEVNAryExpr's operand array from a SmallVector to a plain pointer and length, and allocate the arrays in ScalarEvolution's BumpPtrAllocator, so that they get released when their owning SCEV gets released. SCEVs are immutable, so they don't need to worry about operand array resizing. This fixes a memory leak reported in PR6637.
llvm-svn: 98755
show more ...
|
#
69451a09 |
| 09-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Avoid analyzing instructions in blocks not reachable from the entry block. They are lots of trouble, and they don't matter. This fixes PR6559.
llvm-svn: 98103
|
#
8b0a419e |
| 01-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Spelling fixes.
llvm-svn: 97453
|
#
a9c205cc |
| 25-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Make LoopSimplify change conditional branches in loop exiting blocks which branch on undef to branch on a boolean constant for the edge exiting the loop. This helps ScalarEvolution compute trip count
Make LoopSimplify change conditional branches in loop exiting blocks which branch on undef to branch on a boolean constant for the edge exiting the loop. This helps ScalarEvolution compute trip counts for loops.
Teach ScalarEvolution to recognize single-value PHIs, when safe, and ForgetSymbolicName to forget such single-value PHI nodes as apprpriate in ForgetSymbolicName.
llvm-svn: 97126
show more ...
|
#
4aad7503 |
| 24-Feb-2010 |
Dan Gohman <gohman@apple.com> |
ConstantFoldInstOperands can theoretically return null if it didn't fold anything.
llvm-svn: 97049
|
#
007f5041 |
| 24-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Simplify this code; these casts aren't necessary.
llvm-svn: 97048
|
#
ba820344 |
| 24-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Convert a few more backedge-taken count functions to use BackedgeTakenInfo.
llvm-svn: 97042
|
#
8c16b382 |
| 22-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Remove unused variables and parameters.
llvm-svn: 96780
|
#
cf9c64e6 |
| 19-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Add a comment.
llvm-svn: 96688
|
#
6b1e2a82 |
| 19-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Teach ScalarEvolution how to compute a tripcount for a loop with true or false as its exit condition. These are usually eliminated by SimplifyCFG, but the may be left around during a pass which wishe
Teach ScalarEvolution how to compute a tripcount for a loop with true or false as its exit condition. These are usually eliminated by SimplifyCFG, but the may be left around during a pass which wishes to preserve the CFG.
llvm-svn: 96683
show more ...
|
#
1d6827ad |
| 19-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
recommit 96626, evidence that it broke things appears to be spurious
llvm-svn: 96662
|
#
1f790c28 |
| 19-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Revert 96626, which causes build failure on ppc Darwin.
llvm-svn: 96653
|
#
60b33264 |
| 18-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Indvars needs to explicitly notify ScalarEvolution when it is replacing a loop exit value, so that if a loop gets deleted, ScalarEvolution isn't stick holding on to dangling SCEVAddRecExprs for that
Indvars needs to explicitly notify ScalarEvolution when it is replacing a loop exit value, so that if a loop gets deleted, ScalarEvolution isn't stick holding on to dangling SCEVAddRecExprs for that loop. This fixes PR6339.
llvm-svn: 96626
show more ...
|
#
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
|
#
fefbff9c |
| 15-Feb-2010 |
Dan Gohman <gohman@apple.com> |
When testing whether a given SCEV depends on a temporary symbolic name, test whether the SCEV itself is that temporary symbolic name, in addition to checking whether the symbolic name appears as a po
When testing whether a given SCEV depends on a temporary symbolic name, test whether the SCEV itself is that temporary symbolic name, in addition to checking whether the symbolic name appears as a possibly-indirect operand.
llvm-svn: 96216
show more ...
|
#
fe873e7c |
| 13-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Override dominates and properlyDominates for SCEVAddRecExpr, as a SCEVAddRecExpr doesn't necessarily dominate blocks merely dominated by all of its operands. This fixes an abort compiling 403.gcc.
l
Override dominates and properlyDominates for SCEVAddRecExpr, as a SCEVAddRecExpr doesn't necessarily dominate blocks merely dominated by all of its operands. This fixes an abort compiling 403.gcc.
llvm-svn: 96056
show more ...
|
#
4a618827 |
| 10-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix "the the" and similar typos.
llvm-svn: 95781
|
#
9946b510 |
| 04-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Change the argument to getIntegerSCEV to be an int64_t, rather than int. This will make it more convenient for LSR, which does a lot of things with int64_t offsets.
llvm-svn: 95281
|
#
7e5f1b27 |
| 02-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Various code simplifications.
llvm-svn: 95044
|
#
e5e1b7b0 |
| 01-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Generalize target-independent folding rules for sizeof to handle more cases, and implement target-independent folding rules for alignof and offsetof. Also, reassociate reassociative operators when it
Generalize target-independent folding rules for sizeof to handle more cases, and implement target-independent folding rules for alignof and offsetof. Also, reassociate reassociative operators when it leads to more folding.
Generalize ScalarEvolution's isOffsetOf to recognize offsetof on arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr to getOffsetOfExpr, for consistency with analagous ConstantExpr routines.
Make the target-dependent folder promote GEP array indices to pointer-sized integers, to make implicit casting explicit and exposed to subsequent folding.
And add a bunch of testcases for this new functionality, and a bunch of related existing functionality.
llvm-svn: 94987
show more ...
|
#
cf913830 |
| 28-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Remove SCEVAllocSizeExpr and SCEVFieldOffsetExpr, and in their place use plain SCEVUnknowns with ConstantExpr::getSizeOf and ConstantExpr::getOffsetOf constants. This eliminates a bunch of special-ca
Remove SCEVAllocSizeExpr and SCEVFieldOffsetExpr, and in their place use plain SCEVUnknowns with ConstantExpr::getSizeOf and ConstantExpr::getOffsetOf constants. This eliminates a bunch of special-case code.
Also add code for pattern-matching these expressions, for clients that want to recognize them.
Move ScalarEvolution's logic for expanding array and vector sizeof expressions into an element count times the element size, to expose the multiplication to subsequent folding, into the regular constant folder.
llvm-svn: 94737
show more ...
|
#
85be4333 |
| 26-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Make the unsigned-range code more consistent with the signed-range code, and clean up some loose ends.
llvm-svn: 94572
|
#
a01418d7 |
| 26-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment that Duncan noticed.
llvm-svn: 94562
|
#
fdb744b2 |
| 26-Jan-2010 |
Dan Gohman <gohman@apple.com> |
Rename ItCount to BECount, since it holds a backedge-taken count rather than an iteration count.
llvm-svn: 94549
|