- Dec 10, 2009
-
-
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
llvm-svn: 90988
-
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
-
Anton Korobeynikov authored
Patch by Gregory Petrosyan! llvm-svn: 90972
-
Chris Lattner authored
binary operator that wasn't an add. In this case, a xor. Whoops. llvm-svn: 90971
-
-
Chris Lattner authored
llvm-svn: 90969
-
Eric Christopher authored
llvm-svn: 90962
-
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
-
Daniel Dunbar authored
llvm-svn: 90934
-
Chris Lattner authored
stores is not phi translating, thus it miscompiles really crazy testcases. This is from inspection, I haven't seen this in the wild. llvm-svn: 90930
-
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
-
Devang Patel authored
Remove tests that are not suitable anymore. Plus they are not testing the original bugfixes anymore. These tests were inserted to check bug fixes in code that handled debug info intrinsics. These intrinsics are no longer used and now llvm parser simply ignores old .dbg intrinsics from these dead tests. llvm-svn: 90923
-
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
-