- May 03, 2009
-
-
Dan Gohman authored
llvm-svn: 70661
-
- May 02, 2009
-
-
Dan Gohman authored
makes ScalarEvolution::deleteValueFromRecords, and it's code that subtly needed to be called before ReplaceAllUsesWith, unnecessary. It also makes ValueDeletionListener unnecessary. llvm-svn: 70645
-
Dan Gohman authored
of returning a list of pointers to Values that are deleted. This was unsafe, because the pointers in the list are, by nature of what RecursivelyDeleteDeadInstructions does, always dangling. Replace this with a simple callback mechanism. This may eventually be removed if all clients can reasonably be expected to use CallbackVH. Use this to factor out the dead-phi-cycle-elimination code from LSR utility function, and generalize it to use the RecursivelyDeleteTriviallyDeadInstructions utility function. This makes LSR more aggressive about eliminating dead PHI cycles; adjust tests to either be less trivial or to simply expect fewer instructions. llvm-svn: 70636
-
Dan Gohman authored
of LSR. This makes the AddUsersIfInteresting phase of LSR a pure analysis instead of a phase that potentially does CFG modifications. The conditions where this code would actually perform a split are rare, and in the cases where it actually would do a split the split is usually undone by CodeGenPrepare, and in cases where splits actually survive into codegen, they appear to hurt more often than they help. llvm-svn: 70625
-
- May 01, 2009
-
-
Dan Gohman authored
target hooks canLosslesslyBitCastTo and isTruncateFree. This allows targets to avoid worrying about handling all combinations of integer and pointer types. llvm-svn: 70555
-
Dan Gohman authored
llvm-svn: 70551
-
Dan Gohman authored
llvm-svn: 70546
-
- Apr 30, 2009
-
-
Dale Johannesen authored
llvm-svn: 70427
-
- Apr 27, 2009
-
-
Dan Gohman authored
between the comparison's iv stride and the candidate stride is exactly -1. llvm-svn: 70244
-
- Apr 21, 2009
-
-
Dan Gohman authored
and SCEVSignExtendExpr. llvm-svn: 69649
-
Dan Gohman authored
the code to minimize dependencies on TargetData. llvm-svn: 69644
-
- Apr 18, 2009
-
-
Dan Gohman authored
llvm-svn: 69450
-
- Apr 17, 2009
-
-
Dan Gohman authored
regression in 403.gcc in PIC_CODEGEN=1 and DISABLE_LTO=1 mode. llvm-svn: 69344
-
Dan Gohman authored
to get the correct answer for pointer types. llvm-svn: 69321
-
- Apr 16, 2009
-
-
Dan Gohman authored
targets with pointers larger than 64 bits, due to the code not yet being APInt clean. llvm-svn: 69296
-
Dan Gohman authored
optimizer, which just happen to frequently involve optimizing GEPs. llvm-svn: 69295
-
Dan Gohman authored
since the operand is always a constant. llvm-svn: 69291
-
Dan Gohman authored
new instruction with SCEVExpander::InsertCastOfTo. llvm-svn: 69290
-
Dan Gohman authored
have pointer types, though in contrast to C pointer types, SCEV addition is never implicitly scaled. This not only eliminates the need for special code like IndVars' EliminatePointerRecurrence and LSR's own GEP expansion code, it also does a better job because it lets the normal optimizations handle pointer expressions just like integer expressions. Also, since LLVM IR GEPs can't directly index into multi-dimensional VLAs, moving the GEP analysis out of client code and into the SCEV framework makes it easier for clients to handle multi-dimensional VLAs the same way as other arrays. Some existing regression tests show improved optimization. test/CodeGen/ARM/2007-03-13-InstrSched.ll in particular improved to the point where if-conversion started kicking in; I turned it off for this test to preserve the intent of the test. llvm-svn: 69258
-
- Mar 18, 2009
-
-
Chris Lattner authored
it is not APInt clean, but even when it is it needs to be evaluated carefully to determine whether it is actually profitable. This fixes a crash on PR3806 llvm-svn: 67134
-
- Mar 09, 2009
-
-
Dan Gohman authored
if needed. This simplifies the code a little, and is needed for an upcoming refactoring. llvm-svn: 66479
-
Dan Gohman authored
where memory access types are needed. llvm-svn: 66470
-
Dan Gohman authored
llvm-svn: 66469
-
Dan Gohman authored
llvm-svn: 66467
-
Dan Gohman authored
Use VoidTy instead, to be properly conservative. llvm-svn: 66463
-
Dan Gohman authored
of an instruction into a helper function. llvm-svn: 66460
-
Dan Gohman authored
have to be done twice. llvm-svn: 66449
-
Dan Gohman authored
llvm-svn: 66446
-
Dan Gohman authored
before it does any processing. llvm-svn: 66443
-
- Mar 04, 2009
-
-
Dan Gohman authored
llvm-svn: 66065
-
Dan Gohman authored
immediately obvious. llvm-svn: 66062
-
- Feb 24, 2009
-
-
Dan Gohman authored
to more accurately describe what it does. Expand its doxygen comment to describe what the backedge-taken count is and how it differs from the actual iteration count of the loop. Adjust names and comments in associated code accordingly. llvm-svn: 65382
-
Dan Gohman authored
handling non-constant strides. No functionality change. llvm-svn: 65363
-
- Feb 22, 2009
-
-
Dan Gohman authored
-full-lsr code, as well as a GCC warning. llvm-svn: 65288
-
Evan Cheng authored
Only try to sink immediate when TLI is not null. It needs to check if immediate would fit in target addressing field. llvm-svn: 65268
-
- Feb 21, 2009
-
-
Evan Cheng authored
Teach LSR sink to sink the immediate portion of the common expression back into uses if they fit in address modes of all the uses. llvm-svn: 65215
-
- Feb 20, 2009
-
-
Evan Cheng authored
addresses, part 1. This fixes an obvious logic bug. Previously if the only in-loop use is a PHI, it would return AllUsesAreAddresses as true. llvm-svn: 65178
-
Dan Gohman authored
llvm-svn: 65167
-
Dan Gohman authored
llvm-svn: 65159
-
Dan Gohman authored
llvm-svn: 65157
-