- Oct 27, 2009
-
-
Victor Hernandez authored
llvm-svn: 85286
-
Chris Lattner authored
with multiple return values it inserts a PHI to merge them all together. However, if the return values are all the same, it ends up with a pointless PHI and this pointless PHI happens to really block SRoA from happening in at least a silly C++ example written by Doug, but probably others. This fixes rdar://7339069. llvm-svn: 85206
-
Mike Stump authored
llvm-svn: 85197
-
Eric Christopher authored
do anything than return "I don't know" at the moment. llvm-svn: 85189
-
Dan Gohman authored
llvm-svn: 85185
-
Victor Hernandez authored
llvm-svn: 85181
-
Owen Anderson authored
llvm-svn: 85179
-
Victor Hernandez authored
Remove LowerAllocations pass. Update some more passes to treate free calls just like they were treating FreeInst. llvm-svn: 85176
-
- Oct 26, 2009
-
-
Dan Gohman authored
the loop exiting block dominates the latch block; if ScalarEvolution can prove that the trip-count is finite, that's sufficient. llvm-svn: 85165
-
Dan Gohman authored
can safely use the NSW bit on the Add. llvm-svn: 85164
-
Ted Kremenek authored
llvm-svn: 85161
-
Dan Gohman authored
GEPs (more than one non-zero index) into simple GEPs (at most one non-zero index). In some simple experiments using this it's not uncommon to see 3% overall code size wins, because it exposes redundancies that can be eliminated, however it's tricky to use because instcombine aggressively undoes the work that this pass does. llvm-svn: 85144
-
Dan Gohman authored
llvm-svn: 85120
-
Chris Lattner authored
All of the 'demorgan' related xforms need to use dyn_castNotVal, not m_Not. llvm-svn: 85119
-
Dan Gohman authored
strides for now, because it doesn't handle them correctly. This fixes a miscompile of SingleSource/Benchmarks/Misc-C++/ray. This problem was usually hidden because indvars transforms such induction variables into negations of canonical induction variables. llvm-svn: 85118
-
Evan Cheng authored
llvm-svn: 85090
-
Chris Lattner authored
not (or (icmp, icmp)) -> and(icmp, icmp) llvm-svn: 85085
-
- Oct 25, 2009
-
-
Nick Lewycky authored
VISIBILITY_HIDDEN removal. llvm-svn: 85043
-
Nick Lewycky authored
Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. llvm-svn: 85042
-
Nick Lewycky authored
CmpInst::isSigned. llvm-svn: 85037
-
Dan Gohman authored
llvm-svn: 85020
-
Dan Gohman authored
used elsewhere - an exit block is a block outside the loop branched to from within the loop. An exiting block is a block inside the loop that branches out. llvm-svn: 85019
-
Dan Gohman authored
llvm-svn: 85016
-
- Oct 24, 2009
-
-
Victor Hernandez authored
Update all analysis passes and transforms to treat free calls just like FreeInst. Remove RaiseAllocations and all its tests since FreeInst no longer needs to be raised. llvm-svn: 84987
-
- Oct 23, 2009
-
-
Victor Hernandez authored
Remove AllocationInst. Since MallocInst went away, AllocaInst is the only subclass of AllocationInst, so it no longer is necessary. llvm-svn: 84969
-
Dan Gohman authored
exact backedge taken count, when checking for infinite loops. This allows it to delete loops with multiple exit conditions. llvm-svn: 84952
-
- Oct 22, 2009
-
-
Chris Lattner authored
llvm-svn: 84841
-
Chris Lattner authored
to libanalysis. Instcombine shrinking... does this even make sense??? llvm-svn: 84840
-
Chris Lattner authored
Analysis/ConstantFolding.cpp. This doesn't change the behavior of instcombine but makes other clients of ConstantFoldInstruction able to handle loads. This was partially extracted from Eli's patch in PR3152. llvm-svn: 84836
-
Chris Lattner authored
llvm-svn: 84810
-
Devang Patel authored
llvm-svn: 84801
-
Chris Lattner authored
patches for fixes like this instead of committing them directly. llvm-svn: 84799
-
- Oct 21, 2009
-
-
Victor Hernandez authored
Most changes are cleanup, but there is 1 correctness fix: I fixed InstCombine so that the icmp is removed only if the malloc call is removed (which requires explicit removal because the Worklist won't DCE any calls since they can have side-effects). llvm-svn: 84772
-
Torok Edwin authored
in the PHI's Basic Block. This uses a conservative approach, because we don't have dominator info in instcombine. llvm-svn: 84754
-
Chris Lattner authored
"In the existing code, if the load and the value to replace it with are of different types *and* target data is available, it tries to use the target data to coerce the replacement value to the type of the load. Otherwise, it skips all effort to handle the type mismatch and just feeds the wrongly-typed replacement value to replaceAllUsesWith, which triggers an assertion. The patch replaces it with an outer if checking for type mismatch, and an inner if-else that checks whether target data is available and, if not, returns false rather than trying to replace the load." Patch by Kenneth Uildriks! llvm-svn: 84739
-
Devang Patel authored
llvm-svn: 84731
-
- Oct 20, 2009
-
-
Chris Lattner authored
llvm-svn: 84667
-
Dan Gohman authored
the estimated code size and the number of blocks when deciding whether to do a non-trivial unswitch. This protects it from some very undesirable worst-case behavior on large numbers of loop-unswitchable conditions, such as in the testcase in PR5259. llvm-svn: 84661
-
Torok Edwin authored
When an incoming value for a PHI is updated, we must also updated all other incoming values for the same BB to match, otherwise we create invalid PHIs. llvm-svn: 84638
-
Torok Edwin authored
when the invoke had multiple return values: it set the lattice value only on the extractvalue. This caused the invoke's lattice value to remain the default (undefined), and later propagated to extractvalue's operand, which incorrectly introduces undefined behavior. llvm-svn: 84637
-