- Oct 25, 2009
-
-
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
-
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
-
- Oct 20, 2009
-
-
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 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
-
Owen Anderson authored
numbering first class aggregate instructions while we're at it. llvm-svn: 84547
-
- Oct 19, 2009
-
-
Owen Anderson authored
llvm-svn: 84533
-
- Oct 17, 2009
-
-
Victor Hernandez authored
llvm-svn: 84299
-
Victor Hernandez authored
Update testcases that rely on malloc insts being present. Also prematurely remove MallocInst handling from IndMemRemoval and RaiseAllocations to help pass tests in this incremental step. llvm-svn: 84292
-
- Oct 16, 2009
-
-
Dan Gohman authored
load, to help SelectionDAG fold them into the loads, unless conditions are unfavorable. llvm-svn: 84271
-
- Oct 15, 2009
-
-
Chris Lattner authored
don't bother every time going around the main worklist. This speeds up a release-asserts opt -std-compile-opts on 403.gcc by about 4% (1.5s). It seems to speed up the most expensive instances of instcombine by ~10%. llvm-svn: 84171
-
Chris Lattner authored
instruction (which disqualifies stores, unreachable, etc) and at least the first operand is a constant. This filters out a lot of obvious cases that can't be folded. Also, switch the IRBuilder to a TargetFolder, which tries harder. llvm-svn: 84170
-
- Oct 14, 2009
-
-
Devang Patel authored
llvm-svn: 84118
-
Chris Lattner authored
presence of PHI nodes. llvm-svn: 84103
-
Devang Patel authored
llvm-svn: 84049
-
- Oct 13, 2009
-
-
Devang Patel authored
Do not check use_empty() before replaceAllUsesWith(). This gives ValueHandles a chance to get properly updated. llvm-svn: 84033
-
Dan Gohman authored
manually counting instructions. llvm-svn: 84016
-
Dan Gohman authored
BasicBlocks, so that it doesn't blindly procede in the presence of large individual BasicBlocks. This addresses a class of code-size expansion problems. llvm-svn: 83992
-
Evan Cheng authored
llvm-svn: 83908
-
- Oct 12, 2009
-
-
Dale Johannesen authored
llvm-svn: 83870
-
Chris Lattner authored
it to visit instructions from the start of the function to the end of the function in the first path. This greatly speeds up some pathological cases (e.g. PR5150). Try #3, this time with some unneeded debug info stuff removed which was causing dead pointers to be added to the worklist. llvm-svn: 83818
-
Chris Lattner authored
llvm-svn: 83817
-
Chris Lattner authored
it to visit instructions from the start of the function to the end of the function in the first path. This greatly speeds up some pathological cases (e.g. PR5150). llvm-svn: 83814
-
Chris Lattner authored
into a shuffle even if it was used by another insertelement. If the visitation order of instcombine was wrong, this would turn a chain of insertelements into a chain of shufflevectors, which was quite painful. Since CollectShuffleElements handles these cases, the code can just be nuked. llvm-svn: 83810
-
Chris Lattner authored
new testcase. llvm-svn: 83799
-
Chris Lattner authored
llvm-svn: 83797
-
- Oct 11, 2009
-
-
Chris Lattner authored
llvm-svn: 83795
-
Chris Lattner authored
input the the mul is a zext from bool, just that it is all zeros other than the low bit. This fixes some phase ordering issues that would cause us to miss some xforms in mul.ll when the worklist is visited differently. llvm-svn: 83794
-
Chris Lattner authored
llvm-svn: 83792
-
Chris Lattner authored
llvm-svn: 83791
-
Chris Lattner authored
it to visit instructions from the start of the function to the end of the function in the first path. This greatly speeds up some pathological cases (e.g. PR5150). llvm-svn: 83790
-