| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
of recognizing them by name.
llvm-svn: 148416
|
| |
|
|
|
|
| |
vector type to another, we must not bitcast the result if one type is widened while the other is promoted.
llvm-svn: 148383
|
| |
|
|
| |
llvm-svn: 148344
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the non-local symbol in the expression is in the same fragment
as the second symbol, the assembler can still evaluate the expression
without needing a relocation.
For example, on ARM:
_foo:
ldr lr, (_foo - 4)
rdar://10348687
llvm-svn: 148341
|
| |
|
|
| |
llvm-svn: 148339
|
| |
|
|
| |
llvm-svn: 148338
|
| |
|
|
| |
llvm-svn: 148337
|
| |
|
|
| |
llvm-svn: 148334
|
| |
|
|
|
|
| |
autorelease push+pop pairs.
llvm-svn: 148330
|
| |
|
|
|
|
| |
displacement.
llvm-svn: 148321
|
| |
|
|
| |
llvm-svn: 148316
|
| |
|
|
|
|
| |
The test passes on ARM bots
llvm-svn: 148315
|
| |
|
|
| |
llvm-svn: 148312
|
| |
|
|
|
|
|
|
|
| |
implementation.
Currently lit still executes ExecutionEngine tests with JIT (not MCJIT) by
default. MCJIT tests can be executed manually by calling llvm-lit with
--param jit_impl=mcjit
llvm-svn: 148299
|
| |
|
|
|
|
|
|
| |
In CanXFormVExtractWithShuffleIntoLoad we assumed that EXTRACT_VECTOR_ELT can be later handled by the DAGCombiner.
However, in some cases on AVX, the EXTRACT_VECTOR_ELT is legalized to EXTRACT_SUBVECTOR + EXTRACT_VECTOR_ELT, which
currently is not handled by the DAGCombiner. In this patch I added a check that we only extract from the XMM part.
llvm-svn: 148298
|
| |
|
|
|
|
|
| |
It's becoming clear that LoopSimplify needs to unconditionally create loop preheaders. But that is a bigger fix. For now, continuing to hack LSR.
Fixes rdar://10701050 "Cannot split an edge from an IndirectBrInst" assert.
llvm-svn: 148288
|
| |
|
|
|
|
| |
does not have a corresponding SUnit
llvm-svn: 148260
|
| |
|
|
| |
llvm-svn: 148240
|
| |
|
|
|
|
|
|
| |
currently basic and will be enhanced with future patches.
Patch developed by Andy Kaylor and Daniel Malea. Reviewed on llvm-commits.
llvm-svn: 148231
|
| |
|
|
|
|
|
|
|
|
|
| |
We know that the blend instructions only use the MSB, so if the mask is
sign-extended then we can convert it into a SHL instruction. This is a
common pattern because the type-legalizer sign-extends the i1 type which
is used by the LLVM-IR for the condition.
Added a new optimization in SimplifyDemandedBits for SIGN_EXTEND_INREG -> SHL.
llvm-svn: 148225
|
| |
|
|
|
|
|
| |
we're loading from the global array, not how it is spelled in the asm.
This should fix the MSVC bots.
llvm-svn: 148214
|
| |
|
|
|
|
| |
removal desired.
llvm-svn: 148213
|
| |
|
|
|
|
| |
Fixes PR11761: bad IR w/ redundant Phi elim
llvm-svn: 148177
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 148166
|
| |
|
|
| |
llvm-svn: 148161
|
| |
|
|
| |
llvm-svn: 148128
|
| |
|
|
| |
llvm-svn: 148107
|
| |
|
|
|
|
| |
v4i64 and v8i32.
llvm-svn: 148106
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Patch by Brian Anderson.
llvm-svn: 148042
|
| |
|
|
|
|
|
| |
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: 148039
|
| |
|
|
| |
llvm-svn: 148034
|
| |
|
|
|
|
|
|
| |
is on the boundary of two 128-bit vectors.
The attached testcase was stuck in an endless loop.
llvm-svn: 148027
|
| |
|
|
|
|
| |
more set bits set than 31 or 63.
llvm-svn: 148024
|
| |
|
|
|
|
|
|
|
|
| |
are used.
When we load the v12i32 type, the GenWidenVectorLoads method generates two loads: v8i32 and v4i32
and attempts to use CONCAT_VECTORS to join them. In this fix I concat undef values to widen
the smaller value. The test "widen_load-2.ll" also exposes this bug on AVX.
llvm-svn: 147964
|
| |
|
|
|
|
| |
section.
llvm-svn: 147961
|
| |
|
|
|
|
|
|
| |
This uses TLS slot 90, which actually belongs to JavaScriptCore. We only support
frames with static size
Patch by Brian Anderson.
llvm-svn: 147960
|
| |
|
|
|
|
| |
Patch by Brian Anderson.
llvm-svn: 147959
|
| |
|
|
|
|
| |
Patch by Brian Anderson.
llvm-svn: 147958
|
| |
|
|
|
|
|
|
|
| |
hoped this would revive one of the llvm-gcc selfhost build bots, but it
didn't so it doesn't appear that my transform is the culprit.
If anyone else is seeing failures, please let me know!
llvm-svn: 147957
|
| |
|
|
|
|
|
|
| |
This is a comparison of two addresses, and GCC does the comparison unsigned.
Patch by Brian Anderson.
llvm-svn: 147954
|
| |
|
|
|
|
| |
Patch by Brian Anderson.
llvm-svn: 147952
|
| |
|
|
|
|
|
| |
directives was in the wrong place and getting triggered incorectly with a
cpp .file directive. This change fixes that and adds a test case.
llvm-svn: 147951
|
| |
|
|
| |
llvm-svn: 147949
|
| |
|
|
|
|
| |
zero untouched elements. Use INSERT_VECTOR_ELT instead.
llvm-svn: 147948
|