- Apr 15, 2010
-
-
Gabor Greif authored
llvm-svn: 101368
-
Gabor Greif authored
of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101364
-
- Apr 14, 2010
-
-
Gabor Greif authored
llvm-svn: 101253
-
Gabor Greif authored
llvm-svn: 101250
-
- Apr 13, 2010
-
-
Owen Anderson authored
llvm-svn: 101125
-
Owen Anderson authored
llvm-svn: 101117
-
Dan Gohman authored
numerator is an induction variable. For example, with code like this: for (i=0;i<n;++i) x[i%n] = 0; IndVarSimplify will now recognize that i is always less than n inside the loop, and eliminate the remainder. llvm-svn: 101113
-
- Apr 12, 2010
-
-
Dan Gohman authored
expression is a UDiv and it doesn't appear that the UDiv came from the user's source. ScalarEvolution has recently figured out how to compute a tripcount expression for the inner loop in SingleSource/Benchmarks/Shootout/sieve.c, using a udiv. Emitting a udiv instruction dramatically slows down the enclosing loop. llvm-svn: 101068
-
Dan Gohman authored
llvm-svn: 101033
-
Dan Gohman authored
a ScalarEvolution bug with overflow handling is fixed, the normal analysis code will automatically decline to operate on the icmp instructions which are responsible for the loop exit. llvm-svn: 101032
-
Dan Gohman authored
instead of deleting just the user. This makes it more consistent with other code in IndVarSimplify, and theoretically can eliminate more users earlier. llvm-svn: 101027
-
Dan Gohman authored
the loop exit test. This usually doesn't come up for a variety of reasons, but it isn't impossible, so make IndVarSimplify handle it conservatively. llvm-svn: 101008
-
Dan Gohman authored
llvm-svn: 101002
-
Dan Gohman authored
variables. For example, with code like this: for (i=0;i<n;++i) if (i<n) x[i] = 0; IndVarSimplify will now recognize that i is always less than n inside the loop, and eliminate the if. llvm-svn: 101000
-
- Apr 11, 2010
-
-
Dan Gohman authored
that it's only testing for the entry condition, not full loop-invariant conditions. llvm-svn: 100979
-
- Apr 10, 2010
-
-
Chris Lattner authored
in some cases. llvm-svn: 100937
-
Dan Gohman authored
into adjacent loops. Also, ensure that the insert position is dominated by the loop latch of any loop in the post-inc set which has a latch. llvm-svn: 100906
-
- Apr 09, 2010
-
-
Dan Gohman authored
so that an unfortunately placed bitcast doesn't pin a value in a register. llvm-svn: 100883
-
Gabor Greif authored
llvm-svn: 100856
-
Dan Gohman authored
a separate function. llvm-svn: 100845
-
Chris Lattner authored
forced constant is changed to a constant, we would end up adding the instruction to the wrong worklist, preventing it from being properly revisited. This fixes rdar://7832370 llvm-svn: 100837
-
Dan Gohman authored
inputs happen to negate each other. llvm-svn: 100828
-
Dan Gohman authored
llvm-svn: 100824
-
- Apr 08, 2010
-
-
Dan Gohman authored
ensure that the expansion is dominated by the increments of those loops. llvm-svn: 100748
-
Dan Gohman authored
explicitly split into stride-and-offset pairs. Also, add the ability to track multiple post-increment loops on the same expression. This refines the concept of "normalizing" SCEV expressions used for to post-increment uses, and introduces a dedicated utility routine for normalizing and denormalizing expressions. This fixes the expansion of expressions which are post-increment users of more than one loop at a time. More broadly, this takes LSR another step closer to being able to reason about more than one loop at a time. llvm-svn: 100699
-
- Apr 06, 2010
-
-
Gabor Greif authored
llvm-svn: 100550
-
Chris Lattner authored
undefs in branches/switches, we have two cases: a branch on a literal undef or a branch on a symbolic value which is undef. If we have a literal undef, the code was correct: forcing it to a constant is the right thing to do. If we have a branch on a symbolic value that is undef, we should force the symbolic value to a constant, which then makes the successor block live. Forcing the condition of the branch to being a constant isn't safe if later paths become live and the value becomes overdefined. This is the case that 'forcedconstant' is designed to handle, so just use it. This fixes rdar://7765019 but there is no good testcase for this, the one I have is too insane to be useful in the future. llvm-svn: 100478
-
- Apr 05, 2010
-
-
Chris Lattner authored
llvm-svn: 100468
-
Evan Cheng authored
llvm-svn: 100467
-
- Apr 04, 2010
-
-
Mon P Wang authored
Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100304
-
- Apr 03, 2010
-
-
Chris Lattner authored
exits the loop. With this information we can guarantee the iteration count of the loop is bounded by the compare. I think this xforms is finally safe now. llvm-svn: 100285
-
Chris Lattner authored
checker. Amusingly, we already had tests that we should have rejects because they would be miscompiled in the testsuite. The remaining issue with this is that we don't check that the branch causes us to exit the loop if it fails, so we don't actually know if we remain in bounds. llvm-svn: 100284
-
Chris Lattner authored
to a signed vs unsigned value depending on the sign of the constant fp means that we can't distinguish between a truly negative number and a positive number so large the 32nd bit is set. So, do don't this! llvm-svn: 100283
-
Chris Lattner authored
stuff. More bugs remain though. llvm-svn: 100282
-
Chris Lattner authored
the required validity checks in the first place, and supporting a condition large enough to require the 32'nd bit isn't worth it. llvm-svn: 100280
-
Chris Lattner authored
of llvm. llvm-svn: 100276
-
Chris Lattner authored
no uses, it would have been deleted by RecursivelyDeleteTriviallyDeadInstructions llvm-svn: 100275
-
Chris Lattner authored
llvm-svn: 100274
-
Chris Lattner authored
llvm-svn: 100273
-
Chris Lattner authored
llvm-svn: 100272
-