- 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 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
-
Owen Anderson authored
numbering first class aggregate instructions while we're at it. llvm-svn: 84547
-
- Oct 19, 2009
-
-
Victor Hernandez authored
Malloc calls are marked NoAlias, so the code below the isMalloc() check makes it redundant. Removing the isMalloc() check. llvm-svn: 84541
-
Owen Anderson authored
llvm-svn: 84533
-
Dan Gohman authored
where a loop's header is being split and it has predecessors which are not contained by the most-nested loop which contains the loop. This fixes PR5235. llvm-svn: 84505
-
Dan Gohman authored
to name basic blocks "bb" instead of "BB", for consistency. llvm-svn: 84502
-
- Oct 18, 2009
-
-
Chris Lattner authored
instructions. llvm-svn: 84404
-
- Oct 17, 2009
-
-
Daniel Dunbar authored
llvm-svn: 84356
-
Chris Lattner authored
updating the callgraph when introducing a call. llvm-svn: 84310
-
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
-
Victor Hernandez authored
llvm-svn: 84288
-
- Oct 16, 2009
-
-
Dan Gohman authored
load, to help SelectionDAG fold them into the loads, unless conditions are unfavorable. llvm-svn: 84271
-
Duncan Sands authored
llvm-svn: 84256
-
- Oct 15, 2009
-
-
Victor Hernandez authored
Fix bug where array malloc with unexpected computation of the size argument resulted in MallocHelper identifying the malloc as a non-array malloc. This broke GlobalOpt's optimization of stores of mallocs to global variables. The fix is to classify malloc's into 3 categories: 1. non-array mallocs 2. array mallocs whose array size can be determined 3. mallocs that cannot be determined to be of type 1 or 2 and cannot be optimized getMallocArraySize() returns NULL for category 3, and all users of this function must avoid their malloc optimization if this function returns NULL. Eventually, currently unexpected codegen for computing the malloc's size argument will be supported in isArrayMalloc() and getMallocArraySize(), extending malloc optimizations to those examples. llvm-svn: 84199
-
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
-
Ted Kremenek authored
llvm-svn: 84001
-
Dan Gohman authored
llvm-svn: 83999
-
Dan Gohman authored
llvm-svn: 83998
-
Dan Gohman authored
for purposes other than inlining. llvm-svn: 83997
-
Chris Lattner authored
this will increase the likelihood of common code getting sunk towards the unwind. llvm-svn: 83996
-
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
-