#
542619e6 |
| 13-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move more functionality over to LLVMContext.
llvm-svn: 75497
|
#
74a0ba15 |
| 13-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Move the memoization check for SCEVSignExtendExpr and SCEVZeroExtendExpr ahead of the most expensive analysis. This speeds up analysis and helps avoid pathologically bad behavior on the testcase in P
Move the memoization check for SCEVSignExtendExpr and SCEVZeroExtendExpr ahead of the most expensive analysis. This speeds up analysis and helps avoid pathologically bad behavior on the testcase in PR4534.
llvm-svn: 75496
show more ...
|
#
3a302cbb |
| 13-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Convert SCEV from FoldingSetNode to FastFoldingSetNode. This eliminates a bunch of redundent code in Profile methods, and prepares for upcoming changes to do improved memoization.
llvm-svn: 75494
|
#
53a52215 |
| 13-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Begin the painful process of tearing apart the rat'ss nest that is Constants.cpp and ConstantFold.cpp. This involves temporarily hard wiring some parts to use the global context. This isn't ideal, b
Begin the painful process of tearing apart the rat'ss nest that is Constants.cpp and ConstantFold.cpp. This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's the only way I could figure out to make this process vaguely incremental.
llvm-svn: 75445
show more ...
|
#
c0bf46b2 |
| 11-Jul-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Revert r75252 which was causing some crashes at compile time.
llvm-svn: 75384
|
#
56d06597 |
| 11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
assert(0) -> LLVM_UNREACHABLE. Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG bu
assert(0) -> LLVM_UNREACHABLE. Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds.
llvm-svn: 75379
show more ...
|
#
028e6158 |
| 10-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Remove ScalarEvolution::hasSCEV, which isn't being used, and which breaks encapsulation. Also remove a dead prototype for setSCEV.
llvm-svn: 75272
|
#
a9938d82 |
| 10-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Generalize ScalarEvolution's cast-folding code to support more kinds of loops. Add several new functions to for working with ScalarEvolution's add-hoc value-range analysis functionality.
llvm-svn: 7
Generalize ScalarEvolution's cast-folding code to support more kinds of loops. Add several new functions to for working with ScalarEvolution's add-hoc value-range analysis functionality.
llvm-svn: 75252
show more ...
|
#
dc191042 |
| 08-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Make the code that updates ScalarEvolution's internal state in response to a loop deletion more thorough. Don't prune the def-use tree search at instructions that don't have SCEVs computed, because a
Make the code that updates ScalarEvolution's internal state in response to a loop deletion more thorough. Don't prune the def-use tree search at instructions that don't have SCEVs computed, because an instruction with a user that has a computed SCEV may itself lack a computed SCEV. Also, remove loop-related values from the ValuesAtScopes and ConstantEvolutionLoopExitValues maps as well.
This fixes a regression in 483.xalancbmk.
llvm-svn: 75030
show more ...
|
#
af752349 |
| 07-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Change all SCEV* to SCEV *.
llvm-svn: 74918
|
#
38264b15 |
| 06-Jul-2009 |
Owen Anderson <resistor@mac.com> |
"LLVMContext* " --> "LLVMContext *"
llvm-svn: 74878
|
#
f1f1743b |
| 06-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Finish LLVMContext-ing lib/Analysis. This required pushing LLVMContext's through the ValueTracking API.
llvm-svn: 74873
|
#
39f00cc1 |
| 06-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Thread LLVMContext through the constant folding APIs, which touches a lot of files.
llvm-svn: 74844
|
#
32929081 |
| 04-Jul-2009 |
Nick Lewycky <nicholas@mxc.ca> |
When comparing constants, consider a less wide constant to be "less complex" than a wider one, before trying to compare their contents which will crash if their sizes are different.
llvm-svn: 74792
|
#
3423e72b |
| 30-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Minor code cleanups.
llvm-svn: 74551
|
#
9d203c63 |
| 29-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Use getSCEV instead of getUnknown to create a SCEV for a Constant. This lets ConstantInts be handled as SCEVConstant instead of SCEVUnknown, as getUnknown no longer has special-case code for Constant
Use getSCEV instead of getUnknown to create a SCEV for a Constant. This lets ConstantInts be handled as SCEVConstant instead of SCEVUnknown, as getUnknown no longer has special-case code for ConstantInt and friends. This usually doesn't affect the final output, since the constants end up getting folded later, but it does make intermediate expressions more obvious in many cases.
llvm-svn: 74459
show more ...
|
#
19d2417c |
| 29-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Don't cache PHI exit values from exhaustive evaluations, because an individual exhaustive evaluation reflects only the exit value implied by an individual exit, which may differ from the actual exit
Don't cache PHI exit values from exhaustive evaluations, because an individual exhaustive evaluation reflects only the exit value implied by an individual exit, which may differ from the actual exit value of the loop if there are other exits. This fixes PR4477.
llvm-svn: 74447
show more ...
|
#
e00beaae |
| 29-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Simplify this code, and avoid using APInt(). This fixes (otherwise harmless) uninitialized value warnings that Duncan found with gcc-4.4.
llvm-svn: 74437
|
#
c5c85c0f |
| 27-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Convert ScalarEvolution to use BumpPtrAllocator and FoldingSet, instead of a team of individual allocations and a team of std::maps.
llvm-svn: 74393
|
#
cc030b7e |
| 26-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Fix ScalarEvolution::getAddRecExpr's code which canonicalized the nesting order of nested AddRec expressions to skip the transformation if it would introduce an AddRec with operands not loop-invarian
Fix ScalarEvolution::getAddRecExpr's code which canonicalized the nesting order of nested AddRec expressions to skip the transformation if it would introduce an AddRec with operands not loop-invariant with respect to its loop.
llvm-svn: 74343
show more ...
|
#
06a4e273 |
| 26-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Fix SCEVAddRecExpr::isLoopInvariant to test if all of its operands are loop invariant, not just the start operand.
llvm-svn: 74338
|
#
abd17096 |
| 24-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Minor whitespace cleanups.
llvm-svn: 74074
|
#
f57bdb75 |
| 24-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Simplify [su]max(MAX, n) to MAX. This comes up in loop tripcount computations in loops with multiple exits.
Adjust the testcase for PR4436 so that the relevant portion isn't optimized away.
llvm-sv
Simplify [su]max(MAX, n) to MAX. This comes up in loop tripcount computations in loops with multiple exits.
Adjust the testcase for PR4436 so that the relevant portion isn't optimized away.
llvm-svn: 74073
show more ...
|
#
ce973df2 |
| 24-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Delete some orphaned comments, fix some 80-column violations, and tidy up a few other formatting issues.
llvm-svn: 74060
|
#
f19aeec3 |
| 24-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Extend ScalarEvolution's multiple-exit support to compute exact trip counts in more cases.
Generalize ScalarEvolution's isLoopGuardedByCond code to recognize And and Or conditions, splitting the cod
Extend ScalarEvolution's multiple-exit support to compute exact trip counts in more cases.
Generalize ScalarEvolution's isLoopGuardedByCond code to recognize And and Or conditions, splitting the code out into an isNecessaryCond helper function so that it can evaluate Ands and Ors recursively, and make SCEVExpander be much more aggressive about hoisting instructions out of loops.
test/CodeGen/X86/pr3495.ll has an additional instruction now, but it appears to be due to an arbitrary register allocation difference.
llvm-svn: 74048
show more ...
|