| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 91438
|
| |
|
|
| |
llvm-svn: 91420
|
| |
|
|
| |
llvm-svn: 91419
|
| |
|
|
| |
llvm-svn: 91410
|
| |
|
|
| |
llvm-svn: 91405
|
| |
|
|
|
|
|
|
|
|
| |
Checks that the code generated by 'tblgen --emit-llvmc' can be actually
compiled. Also fixes two bugs found in this way:
- forward_transformed_value didn't work with non-list arguments
- cl::ZeroOrOne is now called cl::Optional
llvm-svn: 91404
|
| |
|
|
| |
llvm-svn: 91403
|
| |
|
|
| |
llvm-svn: 91402
|
| |
|
|
|
|
|
| |
1. Only perform (zext (shl (zext x), y)) -> (shl (zext x), y) when y is a constant. This makes sure it remove at least one zest.
2. If the shift is a left shift, make sure the original shift cannot shift out bits.
llvm-svn: 91399
|
| |
|
|
|
|
| |
all zero's.
llvm-svn: 91381
|
| |
|
|
| |
llvm-svn: 91380
|
| |
|
|
| |
llvm-svn: 91378
|
| |
|
|
| |
llvm-svn: 91362
|
| |
|
|
| |
llvm-svn: 91312
|
| |
|
|
| |
llvm-svn: 91277
|
| |
|
|
|
|
| |
sent to Bob.
llvm-svn: 91268
|
| |
|
|
| |
llvm-svn: 91259
|
| |
|
|
|
|
| |
code in 32-bit.
llvm-svn: 91223
|
| |
|
|
| |
llvm-svn: 91214
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While scanning through the uses of an alloca, keep track of the current offset
relative to the start of the alloca, and check memory references to see if
the offset & size correspond to a component within the alloca. This has the
nice benefit of unifying much of the code from isSafeUseOfAllocation,
isSafeElementUse, and isSafeUseOfBitCastedAllocation. The code to rewrite
the uses of a promoted alloca, after it is determined to be safe, is
reorganized in the same way.
Also, when rewriting GEP instructions, mark them as "in-bounds" since all the
indices are known to be safe.
llvm-svn: 91184
|
| |
|
|
|
|
| |
Based on the patch by Brian Lucas!
llvm-svn: 91175
|
| |
|
|
| |
llvm-svn: 91158
|
| |
|
|
| |
llvm-svn: 91148
|
| |
|
|
|
|
| |
avoid spurious failures. This fixes PR5758.
llvm-svn: 91147
|
| |
|
|
|
|
| |
aggregate return values. This fixes PR5754.
llvm-svn: 91145
|
| |
|
|
|
|
|
| |
This is used in some weird cases like general dynamic TLS model.
This fixes PR5723
llvm-svn: 91144
|
| |
|
|
| |
llvm-svn: 91105
|
| |
|
|
| |
llvm-svn: 91062
|
| |
|
|
|
|
|
|
| |
subregister indices. e.g.:
%reg16404:1<def> = MOV8rr %reg16412:2<kill>
llvm-svn: 91061
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 90988
|
| |
|
|
|
|
|
|
|
|
|
|
| |
legal. e.g.
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
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
binary operator that wasn't an add. In this case, a xor. Whoops.
llvm-svn: 90971
|
| |
|
|
| |
llvm-svn: 90969
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
isl lowering code.
llvm-svn: 90925
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 90898
|
| |
|
|
|
|
| |
- Also support the 'q' NEON registers asm code.
llvm-svn: 90894
|
| |
|
|
|
|
| |
when running tests from the project files.
llvm-svn: 90869
|
| |
|
|
| |
llvm-svn: 90857
|
| |
|
|
|
|
|
| |
forwarding any uses). GlobalDCE can also do this, but is only
run at -O3.
llvm-svn: 90850
|
| |
|
|
|
|
| |
instruction. Patch inspired by Brian Lucas!
llvm-svn: 90819
|
| |
|
|
| |
llvm-svn: 90791
|
| |
|
|
| |
llvm-svn: 90790
|
| |
|
|
|
|
| |
current form, it is too expensive in compile time.
llvm-svn: 90781
|
| |
|
|
| |
llvm-svn: 90770
|