| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
std::map, since we need to keep a valid pointer to properties of current loop.
Message for r148132:
LoopUnswitch: All helper data that is collected during loop-unswitch iterations was moved to separated class (LUAnalysisCache).
llvm-svn: 148215
|
| |
|
|
|
|
|
|
|
|
|
|
| |
or Clang is using this, and it would be hard to use it correctly given
the thread hostility of the function. Also, it never checked the return
which is rather dangerous with chdir. If someone was in fact using this,
please let me know, as well as what the usecase actually is so that
I can add it back and make it more correct and secure to use. (That
said, it's never going to be "safe" per-se, but we could at least
document the risks...)
llvm-svn: 148211
|
| |
|
|
| |
llvm-svn: 148206
|
| |
|
|
| |
llvm-svn: 148205
|
| |
|
|
|
|
| |
f128mem instead of f256mem.
llvm-svn: 148196
|
| |
|
|
|
|
| |
alignment on 256-bit AVX2 instructions.
llvm-svn: 148194
|
| |
|
|
|
|
|
|
| |
non-determinism in the 32 bit dragonegg buildbot. Original commit
message:
Only emit the Leh_func_endN symbol when needed.
llvm-svn: 148191
|
| |
|
|
|
|
| |
Fixes PR11761: bad IR w/ redundant Phi elim
llvm-svn: 148177
|
| |
|
|
| |
llvm-svn: 148175
|
| |
|
|
| |
llvm-svn: 148174
|
| |
|
|
| |
llvm-svn: 148173
|
| |
|
|
| |
llvm-svn: 148172
|
| |
|
|
| |
llvm-svn: 148171
|
| |
|
|
|
|
| |
be split up later.
llvm-svn: 148170
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
live across BBs before register allocation. This miscompiled 197.parser
when a cmp + b are optimized to a cbnz instruction even though the CPSR def
is live-in a successor.
cbnz r6, LBB89_12
...
LBB89_12:
ble LBB89_1
The fix consists of two parts. 1) Teach LiveVariables that some unallocatable
registers might be liveouts so don't mark their last use as kill if they are.
2) ARM constantpool island pass shouldn't form cbz / cbnz if the conditional
branch does not kill CPSR.
rdar://10676853
llvm-svn: 148168
|
| |
|
|
| |
llvm-svn: 148167
|
| |
|
|
| |
llvm-svn: 148164
|
| |
|
|
| |
llvm-svn: 148156
|
| |
|
|
|
|
|
|
|
|
| |
The QQ and QQQQ registers are not 'real', they are pseudo-registers used
to model some vld and vst instructions.
This makes the call clobber lists longer, but I intend to get rid of
those soon.
llvm-svn: 148151
|
| |
|
|
| |
llvm-svn: 148150
|
| |
|
|
| |
llvm-svn: 148149
|
| |
|
|
| |
llvm-svn: 148143
|
| |
|
|
| |
llvm-svn: 148134
|
| |
|
|
| |
llvm-svn: 148133
|
| |
|
|
|
|
| |
iterations was moved to separated class (LUAnalysisCache).
llvm-svn: 148132
|
| |
|
|
| |
llvm-svn: 148131
|
| |
|
|
|
|
| |
prevent a register copy. Similar to SHUFPS, but requires the mask to be converted.
llvm-svn: 148112
|
| |
|
|
|
|
| |
vs SSE1.
llvm-svn: 148109
|
| |
|
|
|
|
| |
ones if AVX2 is enabled. This gives the ExeDepsFix pass a chance to choose FP vs int as appropriate. Also use v8i32 as the type for getZeroVector if AVX2 is enabled. This is consistent with SSE2 using prefering v4i32.
llvm-svn: 148108
|
| |
|
|
|
|
| |
v4i64 and v8i32.
llvm-svn: 148106
|
| |
|
|
| |
llvm-svn: 148105
|
| |
|
|
| |
llvm-svn: 148103
|
| |
|
|
| |
llvm-svn: 148102
|
| |
|
|
|
|
| |
PR11750.
llvm-svn: 148101
|
| |
|
|
|
|
| |
horizontal add/sub if AVX2 is enabled. This caused an assert to fail for non 128/256-bit vectors when done before type legalizing. Fixes PR11749.
llvm-svn: 148096
|
| |
|
|
|
|
|
| |
The code type was always identical to a string anyway. Now it is simply
a synonym. The code literal syntax [{...}] is still valid.
llvm-svn: 148092
|
| |
|
|
|
|
|
| |
This avoids a gazillion StringMap and dynamic_cast calls, making
TableGen run 3x faster.
llvm-svn: 148091
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
overly conservative. It was concerned about cases where it would prohibit
folding simple [r, c] addressing modes. e.g.
ldr r0, [r2]
ldr r1, [r2, #4]
=>
ldr r0, [r2], #4
ldr r1, [r2]
Change the logic to look for such cases which allows it to form indexed memory
ops more aggressively.
rdar://10674430
llvm-svn: 148086
|
| |
|
|
| |
llvm-svn: 148077
|
| |
|
|
|
|
|
|
| |
the optimizer doesn't eliminate objc_retainBlock calls which are needed
for their side effect of copying blocks onto the heap.
This implements rdar://10361249.
llvm-svn: 148076
|
| |
|
|
| |
llvm-svn: 148067
|
| |
|
|
| |
llvm-svn: 148065
|
| |
|
|
|
|
|
| |
The registers are placed into the saved registers list in the reverse order,
which is why the original loop was written to loop backwards.
llvm-svn: 148064
|
| |
|
|
|
|
|
|
| |
Promote for those operations.
Sorry, no test case yet
llvm-svn: 148050
|
| |
|
|
|
|
|
| |
lc: X86ISelLowering.cpp:6480: llvm::SDValue llvm::X86TargetLowering::LowerVECTOR_SHUFFLE(llvm::SDValue, llvm::SelectionDAG&) const: Assertion `V1.getOpcode() != ISD::UNDEF&& "Op 1 of shuffle should not be undef"' failed.
Added a test.
llvm-svn: 148044
|
| |
|
|
|
|
|
|
|
|
|
| |
killed registers are needed below the insertion point, then unset the kill
marker.
Sorry I'm not able to find a reduced test case.
rdar://10660944
llvm-svn: 148043
|
| |
|
|
|
|
|
| |
This patch uses tcb_spare field in the tcb structure to store info.
Patch by Jyun-Yan You.
llvm-svn: 148041
|
| |
|
|
|
|
|
| |
Uses the pvArbitrary slot of the TIB, which is reserved for applications. We
only support frames with a static size.
llvm-svn: 148040
|
| |
|
|
| |
llvm-svn: 148033
|
| |
|
|
|
|
| |
We are using one parser to parse att as well as intel style syntax.
llvm-svn: 148032
|