| Commit message (Collapse) | Author | Age | Files | Lines | 
| ... |  | 
| | 
| 
| 
| 
| 
|  | 
asan; add a test check that asan does not touch linkonce_odr
llvm-svn: 144933
 | 
| | 
| 
| 
|  | 
llvm-svn: 144920
 | 
| | 
| 
| 
| 
| 
|  | 
vector loads are promoted to i64 vector loads so patterns need a bitconvert. Also slightly simplify the AVX2 variable shift patterns by using the predefined bitconvert pattern fragments.
llvm-svn: 144896
 | 
| | 
| 
| 
|  | 
llvm-svn: 144888
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
ADDs.  MaxOffs is used as a threshold to limit the size of the offset. Tradeoffs
being: (1) If we can't materialize the large constant then we'll cause fast-isel
to bail. (2) Too large of an offset can't be directly encoded in the ADD
resulting in a MOV+ADD.  Generally not a bad thing because otherwise we would
have had ADD+ADD, but on Thumb this turns into a MOVS+MOVT+ADD. Working on a fix
for that. (3) Conversely, too low of a threshold we'll miss opportunities to 
coalesce ADDs.
rdar://10412592
llvm-svn: 144886
 | 
| | 
| 
| 
|  | 
llvm-svn: 144885
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Add a custom name for fwrite and fputs on x86-32 OSX.  Make SimplifyLibCalls honor the custom
names for fwrite and fputs.
Fixes <rdar://problem/9815881>.
llvm-svn: 144876
 | 
| | 
| 
| 
| 
| 
|  | 
rdar://10456186
llvm-svn: 144872
 | 
| | 
| 
| 
| 
| 
|  | 
I know, and I'd like to see wider testing.
llvm-svn: 144867
 | 
| | 
| 
| 
| 
| 
|  | 
LOAD+EXTRACT_VECTOR_ELT into a single LOAD.  Fixes PR10747/PR11393.
llvm-svn: 144863
 | 
| | 
| 
| 
|  | 
llvm-svn: 144861
 | 
| | 
| 
| 
| 
| 
| 
|  | 
We don't (yet) have the granularity in the fixups to be specific about which
bitranges are affected. That's a future cleanup, but we're not there yet.
llvm-svn: 144852
 | 
| | 
| 
| 
|  | 
llvm-svn: 144849
 | 
| | 
| 
| 
|  | 
llvm-svn: 144847
 | 
| | 
| 
| 
|  | 
llvm-svn: 144842
 | 
| | 
| 
| 
| 
| 
|  | 
nodes.
llvm-svn: 144841
 | 
| | 
| 
| 
|  | 
llvm-svn: 144840
 | 
| | 
| 
| 
|  | 
llvm-svn: 144839
 | 
| | 
| 
| 
|  | 
llvm-svn: 144837
 | 
| | 
| 
| 
|  | 
llvm-svn: 144836
 | 
| | 
| 
| 
| 
| 
|  | 
target-independent selector or the target-specific selector.
llvm-svn: 144833
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
for a single miss and not all predecessor instructions that get selected by
the selection DAG instruction selector.  This is still not exact (e.g., over
states misses when folded/dead instructions are present), but it is a step in
the right direction.
llvm-svn: 144832
 | 
| | 
| 
| 
|  | 
llvm-svn: 144814
 | 
| | 
| 
| 
| 
| 
|  | 
rdar://9704684
llvm-svn: 144812
 | 
| | 
| 
| 
|  | 
llvm-svn: 144811
 | 
| | 
| 
| 
|  | 
llvm-svn: 144806
 | 
| | 
| 
| 
| 
| 
|  | 
operands into a register.  Otherwise, we may materialize dead code.
llvm-svn: 144805
 | 
| | 
| 
| 
| 
| 
|  | 
kill markers.
llvm-svn: 144804
 | 
| | 
| 
| 
| 
| 
|  | 
rdar://9704684
llvm-svn: 144803
 | 
| | 
| 
| 
|  | 
llvm-svn: 144798
 | 
| | 
| 
| 
| 
| 
|  | 
also on MSC15(aka VS9). Seems miscompiled.
llvm-svn: 144794
 | 
| | 
| 
| 
| 
| 
| 
|  | 
and code model. This eliminates the need to pass OptLevel flag all over the
place and makes it possible for any codegen pass to use this information.
llvm-svn: 144788
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
There may be many invokes that share one landing pad, and the previous code
would record the landing pad once for each invoke.  Besides the wasted
effort, a pair of volatile loads gets inserted every time the landing pad is
processed.  The rest of the code can get optimized away when a landing pad
is processed repeatedly, but the volatile loads remain, resulting in code like:
LBB35_18:
Ltmp483:
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r4, [r7, #-72]
        ldr     r2, [r7, #-68]
llvm-svn: 144787
 | 
| | 
| 
| 
|  | 
llvm-svn: 144784
 | 
| | 
| 
| 
| 
| 
| 
|  | 
This same basic code was in the older version of the SjLj exception handling,
but it was removed in the recent revisions to that code.  It needs to be there.
llvm-svn: 144782
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The EmitBasePointerRecalculation function has 2 problems, one minor and one
fatal.  The minor problem is that it inserts the code at the setjmp
instead of in the dispatch block.  The fatal problem is that at the point
where this code runs, we don't know whether there will be a base pointer,
so the entire function is a no-op.  The base pointer recalculation needs to
be handled as it was before, by inserting a pseudo instruction that gets
expanded late.
Most of the support for the old approach is still here, but it no longer
has any connection to the eh_sjlj_dispatchsetup intrinsic.  Clean up the
parts related to the intrinsic and just generate the pseudo instruction
directly.
llvm-svn: 144781
 | 
| | 
| 
| 
| 
| 
|  | 
sufficient after r144636.
llvm-svn: 144777
 | 
| | 
| 
| 
|  | 
llvm-svn: 144776
 | 
| | 
| 
| 
| 
| 
|  | 
looking at the size of the pointee. Fixes PR11390!
llvm-svn: 144773
 | 
| | 
| 
| 
| 
| 
|  | 
since we don't want to extend other live ranges.
llvm-svn: 144772
 | 
| | 
| 
| 
| 
| 
|  | 
instructions. rdar://10451185
llvm-svn: 144771
 | 
| | 
| 
| 
| 
| 
|  | 
rdar://10449480
llvm-svn: 144770
 | 
| | 
| 
| 
|  | 
llvm-svn: 144768
 | 
| | 
| 
| 
| 
| 
|  | 
indexed loads/stores to the legalizer.
llvm-svn: 144767
 | 
| | 
| 
| 
|  | 
llvm-svn: 144758
 | 
| | 
| 
| 
|  | 
llvm-svn: 144748
 | 
| | 
| 
| 
|  | 
llvm-svn: 144747
 | 
| | 
| 
| 
| 
| 
|  | 
Fixes PR11375: Different results for 'clang++ huh.cpp'...
llvm-svn: 144746
 | 
| | 
| 
| 
|  | 
llvm-svn: 144743
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This will widen 32-bit register vmov instructions to 64-bit when
possible.  The 64-bit vmovd instructions can then be translated to NEON
vorr instructions by the execution dependency fix pass.
The copies are only widened if they are marked as clobbering the whole
D-register.
llvm-svn: 144734
 |