- Dec 22, 2009
-
-
Chris Lattner authored
instead of stored. This reduces memdep memory usage, and also eliminates a bunch of weakvh's. This speeds up gvn on gcc.c-torture/20001226-1.c from 23.9s to 8.45s (2.8x) on a different machine than earlier. llvm-svn: 91885
-
Chris Lattner authored
load to avoid even messing around with SSAUpdate at all. In this case (which is very common, we can just use the input value directly). This speeds up GVN time on gcc.c-torture/20001226-1.c from 36.4s to 16.3s, which still isn't great, but substantially better and this is a simple speedup that applies to lots of different cases. llvm-svn: 91851
-
Chris Lattner authored
llvm-svn: 91849
-
- Dec 18, 2009
-
-
Dan Gohman authored
llvm-svn: 91666
-
- Dec 15, 2009
-
-
Chris Lattner authored
isPodLike type trait. This is a generally useful type trait for more than just DenseMap, and we really care about whether something acts like a pod, not whether it really is a pod. llvm-svn: 91421
-
- Dec 10, 2009
-
-
Chris Lattner authored
value size. This only manifested when memdep inprecisely returns clobber, which is do to a caching issue in the PR5744 testcase. We can 'efficiently emulate' this by using '-no-aa' llvm-svn: 91004
-
Chris Lattner authored
llvm-svn: 90999
-
- Dec 09, 2009
-
-
Chris Lattner authored
clobbers to forward pieces of large stores to small loads, we need to consider the properly phi translated pointer in the store block. llvm-svn: 90978
-
Chris Lattner authored
implicitly constant folds. llvm-svn: 90977
-
Chris Lattner authored
to require the load ty/ptr to be passed in, no functionality change. llvm-svn: 90960
-
Chris Lattner authored
and pointer instead of the load. No functionality change. llvm-svn: 90959
-
Chris Lattner authored
own small class. No functionality change. llvm-svn: 90956
-
Chris Lattner authored
llvm-svn: 90929
-
Chris Lattner authored
phi translation of complex expressions like &A[i+1]. This has the following benefits: 1. The phi translation logic is all contained in its own class with a strong interface and verification that it is self consistent. 2. The logic is more correct than before. Previously, if intermediate expressions got PHI translated, we'd miss the update and scan for the wrong pointers in predecessor blocks. @phi_trans2 is a testcase for this. 3. We have a lot less code in memdep. We can handle phi translation across blocks of things like @phi_trans3, which is pretty insane :). This patch should fix the miscompiles of 255.vortex, and I tested it with a bootstrap of llvm-gcc, llvm-test and dejagnu of course. llvm-svn: 90926
-
- Dec 06, 2009
-
-
Chris Lattner authored
because clang lowers nontrivial automatic struct/array inits to memcpy from a global array. llvm-svn: 90698
-
Chris Lattner authored
llvm-svn: 90697
-
Chris Lattner authored
short x(short *A) { memset(A, 1, sizeof(*A)*100); return A[42]; } to 'return 257' instead of doing the load. llvm-svn: 90695
-
- Dec 03, 2009
-
-
Owen Anderson authored
llvm-svn: 90408
-
- Dec 02, 2009
-
-
Owen Anderson authored
per Chris' comments. Adjust testcases to match. llvm-svn: 90304
-
Chris Lattner authored
llvm-svn: 90299
-
- Nov 28, 2009
-
-
Chris Lattner authored
handle cases like this: void test(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j+1] = G[j] + G[j+1]; } where G[1] isn't live into the loop. llvm-svn: 90041
-
Chris Lattner authored
inserted instructions. No functionality change until someone starts using it. llvm-svn: 90039
-
- Nov 27, 2009
-
-
Chris Lattner authored
to inform GVN about the newly inserted values. This fixes PR5631. llvm-svn: 90022
-
Chris Lattner authored
fixes PR5630 and sets the stage for the next phase of goodness (testcase pending). llvm-svn: 90019
-
Chris Lattner authored
where it is not available. It's unclear how to get this inserted computation into GVN's scalar availability sets, Owen, help? :) llvm-svn: 89997
-
Chris Lattner authored
translation done by memdep, and reenable gep translation again. llvm-svn: 89992
-
- Nov 14, 2009
-
-
Dan Gohman authored
llvm-svn: 88742
-
- Nov 10, 2009
-
-
Jeffrey Yasskin authored
This patch forbids implicit conversion of DenseMap::const_iterator to DenseMap::iterator which was possible because DenseMapIterator inherited (publicly) from DenseMapConstIterator. Conversion the other way around is now allowed as one may expect. The template DenseMapConstIterator is removed and the template parameter IsConst which specifies whether the iterator is constant is added to DenseMapIterator. Actually IsConst parameter is not necessary since the constness can be determined from KeyT but this is not relevant to the fix and can be addressed later. Patch by Victor Zverovich! llvm-svn: 86636
-
- Oct 31, 2009
-
-
Chris Lattner authored
llvm-svn: 85692
-
- Oct 30, 2009
-
-
Evan Cheng authored
llvm-svn: 85609
-
- Oct 28, 2009
-
-
Owen Anderson authored
purposes for GVN/DSE. llvm-svn: 85383
-
- Oct 27, 2009
-
-
Victor Hernandez authored
llvm-svn: 85286
-
Victor Hernandez authored
llvm-svn: 85181
-
- 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
-
- Oct 21, 2009
-
-
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
-
-
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 14, 2009
-
-
Devang Patel authored
llvm-svn: 84118
-
- Oct 11, 2009
-
-
Chris Lattner authored
from GVN, this also speeds it up, inserts fewer PHI nodes (see the testcase) and allows it to remove more loads (due to fewer PHI nodes standing in the way). llvm-svn: 83746
-
Chris Lattner authored
llvm-svn: 83742
-