- Feb 24, 2009
-
-
Dan Gohman authored
llvm-svn: 65359
-
Devang Patel authored
While folding unconditional return move DbgRegionEndInst into the predecessor, instead of removing it. This fixes following tests from llvmgcc42 testsuite. gcc.c-torture/execute/20000605-3.c gcc.c-torture/execute/20020619-1.c gcc.c-torture/execute/20030920-1.c gcc.c-torture/execute/loop-ivopts-1.c llvm-svn: 65353
-
Dan Gohman authored
trip counts that use signed comparisons. It's not obviously the best approach for preserving trip count information, and at any rate there isn't anything in the tree right now that makes use of that, so for now always using zero-extensions is preferable. llvm-svn: 65347
-
- Feb 23, 2009
-
-
Dan Gohman authored
so that ScalarEvolution doesn't hang onto a dangling Loop*, which could be a problem if another Loop happens to get allocated at the same address. llvm-svn: 65323
-
Dan Gohman authored
-std-compile-opts sequence, this avoids the need for ScalarEvolution to be rerun before LoopDeletion. llvm-svn: 65318
-
Zhou Sheng authored
llvm-svn: 65314
-
Mon P Wang authored
inline-threshold option is used by the inliner. llvm-svn: 65309
-
Chris Lattner authored
llvm-svn: 65306
-
- Feb 22, 2009
-
-
Dan Gohman authored
memcpy to match the alignment of the destination. It isn't necessary for making loads and stores handled like the SSE loadu/storeu intrinsics, and it was causing a performance regression in MultiSource/Applications/JM/lencod. The problem appears to have been a memcpy that copies from some highly aligned array into an alloca; the alloca was then being assigned a large alignment, which required codegen to perform dynamic stack-pointer re-alignment, which forced the enclosing function to have a frame pointer, which led to increased spilling. llvm-svn: 65289
-
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
-
-
Nick Lewycky authored
load(bitcast(char[4] to i32*)) evaluation. llvm-svn: 65246
-
Evan Cheng authored
llvm-svn: 65228
-
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
-
Chris Lattner authored
as legality. Make load sinking and gep sinking more careful: we only do it when it won't pessimize loads from the stack. This has the added benefit of not producing code that is unanalyzable to SROA. llvm-svn: 65209
-
- 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
-
Dan Gohman authored
llvm-svn: 65147
-
Evan Cheng authored
Factor address mode matcher out of codegen prepare to make it available to other passes, e.g. loop strength reduction. llvm-svn: 65134
-
Zhou Sheng authored
Will re-think about this according to Chris's comments. llvm-svn: 65126
-
Zhou Sheng authored
Currently this pass will delete the variable declaration info, and keep the line number info. But the kept line number info is not updated, and some is redundant or not correct, this patch just updates those info. llvm-svn: 65123
-
Dan Gohman authored
reduction of address calculations down to basic pointer arithmetic. This is currently off by default, as it needs a few other features before it becomes generally useful. And even when enabled, full strength reduction is only performed when it doesn't increase register pressure, and when several other conditions are true. This also factors out a bunch of exisiting LSR code out of StrengthReduceStridedIVUsers into separate functions, and tidies up IV insertion. This actually decreases register pressure even in non-superhero mode. The change in iv-users-in-other-loops.ll is an example of this; there are two more adds because there are two fewer leas, and there is less spilling. llvm-svn: 65108
-
- Feb 19, 2009
-
-
Dan Gohman authored
since the latter just passes a null reference when debugging is not enabled. llvm-svn: 65060
-
Dan Gohman authored
llvm-svn: 65057
-
- Feb 18, 2009
-
-
Duncan Sands authored
here. Since we only do the transform if there is one use, strip off any such users in the hope of making the transform fire more often. llvm-svn: 64926
-
Dan Gohman authored
trip count value when the original loop iteration condition is signed and the canonical induction variable won't undergo signed overflow. This isn't required for correctness; it just preserves more information about original loop iteration values. Add a getTruncateOrSignExtend method to ScalarEvolution, following getTruncateOrZeroExtend. llvm-svn: 64918
-
Dan Gohman authored
llvm-svn: 64917
-
Dan Gohman authored
llvm-svn: 64915
-
Dan Gohman authored
llvm-svn: 64888
-
Dan Gohman authored
are multiple IV's in a loop, some of them may under go signed or unsigned wrapping even if the IV that's used in the loop exit condition doesn't. Restrict sign-extension-elimination and zero-extension-elimination to only those that operate on the original loop-controlling IV. llvm-svn: 64866
-
Dan Gohman authored
llvm-svn: 64859
-
Duncan Sands authored
crash because the alias would still be using the aliasee when the aliasee was deleted. llvm-svn: 64844
-
- Feb 17, 2009
-
-
Dan Gohman authored
llvm-svn: 64811
-
Dan Gohman authored
modified in a way that may effect the trip count calculation. Change IndVars to use this method when it rewrites pointer or floating-point induction variables instead of using a doInitialization method to sneak these changes in before ScalarEvolution has a chance to see the loop. This eliminates the need for LoopPass to depend on ScalarEvolution. llvm-svn: 64810
-
Chris Lattner authored
eliminate all the extensions and all but the one required truncate from the testcase, but the or/and/shift stuff still isn't zapped. llvm-svn: 64809
-
Dan Gohman authored
llvm-svn: 64784
-
Duncan Sands authored
llvm-svn: 64773
-
Dan Gohman authored
llvm-svn: 64766
-