- Feb 16, 2010
-
-
Bob Wilson authored
terminator's list of successors. llvm-svn: 96377
-
Duncan Sands authored
and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. llvm-svn: 96344
-
- Feb 11, 2010
-
-
Devang Patel authored
llvm-svn: 95828
-
- Feb 03, 2010
-
-
Bob Wilson authored
llvm-svn: 95170
-
- Feb 01, 2010
-
-
Bob Wilson authored
disabled by default. This divides the existing load PRE code into 2 phases: first it checks that it is safe to move the load to each of the predecessors where it is unavailable, and then if it is safe, the code is changed to move the load. Radar 7571861. llvm-svn: 95007
-
- Jan 30, 2010
-
-
Bob Wilson authored
unconditionally. Besides checking the offset, also check that the underlying object is aligned as much as the load itself. llvm-svn: 94875
-
- Jan 29, 2010
-
-
Bob Wilson authored
indices are safe if the result is known to be within the bounds of the underlying object. llvm-svn: 94829
-
- Jan 25, 2010
-
-
Bob Wilson authored
already checked that TmpBB->getSinglePredecessor() is non-null. llvm-svn: 94451
-
- Jan 17, 2010
-
-
Owen Anderson authored
llvm-svn: 93693
-
- Jan 05, 2010
-
-
Dan Gohman authored
non-zero trip count. Use SmallVector's pop_back_val(). llvm-svn: 92734
-
David Greene authored
llvm-svn: 92613
-
- Dec 28, 2009
-
-
Chris Lattner authored
non-templated IRBuilderBase class. Move that large CreateGlobalString out of line, eliminating the need to #include GlobalVariable.h in IRBuilder.h llvm-svn: 92227
-
- 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
-