- Apr 16, 2010
-
-
Chris Lattner authored
wanted the alignment of the pointee. llvm-svn: 101432
-
Chris Lattner authored
llvm-svn: 101429
-
Chris Lattner authored
place. llvm-svn: 101427
-
Chris Lattner authored
ConvertToScalarInfo. llvm-svn: 101425
-
Gabor Greif authored
llvm-svn: 101423
-
Chris Lattner authored
CanConvertToScalar/MergeInType. Eliminate a pointless LLVMContext argument to MergeInType. llvm-svn: 101422
-
- Apr 15, 2010
-
-
Chris Lattner authored
llvm-svn: 101405
-
Gabor Greif authored
with a fix rotate CallInst operands, i.e. move callee to the back 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: 101397
-
Dan Gohman authored
llvm-svn: 101376
-
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
-