- Dec 10, 2009
-
-
Jim Grosbach authored
llvm-svn: 91053
-
Devang Patel authored
llvm-svn: 91051
-
Jakob Stoklund Olesen authored
The coalescer is supposed to clean these up, but when setting up parameters for a function call, there may be copies to physregs. If the defining instruction has been LICM'ed far away, the coalescer won't touch it. The register allocation hint does not always work - when the register allocator is backtracking, it clears the hints. This patch is more conservative than r90502, and does not break 483.xalancbmk/i686. It still breaks the PowerPC bootstrap, so it is disabled by default, and can be enabled with the -trivial-coalesce-ends option. llvm-svn: 91049
-
Torok Edwin authored
This code was crashing always with oprofile enabled, since it tried to create a StringRef out of NULL, which run strlen on NULL. llvm-svn: 91046
-
Eric Christopher authored
of the loop. We could get to this condition via indirect branches. llvm-svn: 91009
-
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
-
Jim Grosbach authored
Add memory barrier intrinsic support for ARM. Moving towards adding the atomic operations intrinsics. llvm-svn: 91003
-
Chris Lattner authored
llvm-svn: 90999
-
- Dec 09, 2009
-
-
Dan Gohman authored
llvm-svn: 90990
-
Evan Cheng authored
vector_shuffle (scalar_to_vector (i32 load (ptr + 4))), undef, <0, 0, 0, 0> => vector_shuffle (v4i32 load ptr), undef, <1, 1, 1, 1> iff ptr is 16-byte aligned (or can be made into 16-byte aligned). llvm-svn: 90984
-
Dan Gohman authored
currently somewhat convenient for them to have the same value. llvm-svn: 90980
-
Devang Patel authored
llvm-svn: 90979
-
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
-
Bob Wilson authored
llvm-svn: 90975
-
Chris Lattner authored
add, there is no need to scan the world to find the same add again. This invalidates the previous testcase, which wasn't wonderful anyway, because it needed a run of instcombine to permute the use-lists in just the right way to before GVN was run (so it was really fragile). Not a big loss. llvm-svn: 90973
-
Chris Lattner authored
binary operator that wasn't an add. In this case, a xor. Whoops. llvm-svn: 90971
-
-
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
of the query. llvm-svn: 90958
-
Daniel Dunbar authored
llvm-svn: 90957
-
Chris Lattner authored
own small class. No functionality change. llvm-svn: 90956
-
Lang Hames authored
When a call is placed to spill an interval this spiller will first try to break the interval up into its component values. Single value intervals and intervals which have already been split (or are the result of previous splits) are spilled by the default spiller. Splitting intervals as described above may improve the performance of generated code in some circumstances. This work is experimental however, and it still miscompiles many benchmarks. It's not recommended for general use yet. llvm-svn: 90951
-
Daniel Dunbar authored
llvm-svn: 90937
-
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
-
Evan Cheng authored
llvm-svn: 90925
-
Evan Cheng authored
Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes. llvm-svn: 90922
-
Chris Lattner authored
llvm-svn: 90920
-
Evan Cheng authored
llvm-svn: 90919
-
Evan Cheng authored
llvm-svn: 90918
-
Evan Cheng authored
llvm-svn: 90917
-
Chris Lattner authored
llvm-svn: 90915
-
Dan Gohman authored
that Chris noticed. llvm-svn: 90910
-
Chris Lattner authored
the translated value back to it if an instruction. llvm-svn: 90909
-
Chris Lattner authored
llvm-svn: 90908
-
Chris Lattner authored
llvm-svn: 90906
-
Dan Gohman authored
examines; fall back to a conservative answer if there are more. This works around some several compile time problems resulting from BasicAliasAnalysis calling PointerMayBeCaptured. The value has been chosen arbitrarily. This fixes rdar://7438917 and may partially address PR5708. llvm-svn: 90905
-
Chris Lattner authored
date when instsimplify kicks in. llvm-svn: 90901
-