| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
This infrastructure is generally useful for any target that wants to
strongly prefer two instructions to be adjacent after scheduling.
A following checkin will add target-specific hooks with unit
tests. Then this feature will be enabled by default with misched.
llvm-svn: 167742
|
| |
|
|
| |
llvm-svn: 167737
|
| |
|
|
| |
llvm-svn: 167719
|
| |
|
|
|
|
|
| |
- Fix operand order for atomic sub, where the minuend is the value
loaded from memory and the subtrahend is the parameter specified.
llvm-svn: 167718
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each SM and PTX version is modeled as a subtarget feature/CPU. Additionally,
PTX 3.1 is added as the default PTX version to be out-of-the-box compatible
with CUDA 5.0.
Available CPUs for this target:
sm_10 - Select the sm_10 processor.
sm_11 - Select the sm_11 processor.
sm_12 - Select the sm_12 processor.
sm_13 - Select the sm_13 processor.
sm_20 - Select the sm_20 processor.
sm_21 - Select the sm_21 processor.
sm_30 - Select the sm_30 processor.
sm_35 - Select the sm_35 processor.
Available features for this target:
ptx30 - Use PTX version 3.0.
ptx31 - Use PTX version 3.1.
sm_10 - Target SM 1.0.
sm_11 - Target SM 1.1.
sm_12 - Target SM 1.2.
sm_13 - Target SM 1.3.
sm_20 - Target SM 2.0.
sm_21 - Target SM 2.1.
sm_30 - Target SM 3.0.
sm_35 - Target SM 3.5.
llvm-svn: 167699
|
| |
|
|
| |
llvm-svn: 167696
|
| |
|
|
|
|
| |
free. Thanks Andy!
llvm-svn: 167685
|
| |
|
|
| |
llvm-svn: 167673
|
| |
|
|
| |
llvm-svn: 167671
|
| |
|
|
| |
llvm-svn: 167670
|
| |
|
|
|
|
| |
functions static.
llvm-svn: 167669
|
| |
|
|
|
|
|
|
|
|
|
| |
In the process of migrating optimizations from the simplify-libcalls pass
to the instcombine pass I noticed that a few functions are missing from
the target library information. These functions need to be available for
querying in the instcombine library call simplifiers. More functions will
probably be added in the future as more simplifiers are migrated to
instcombine.
llvm-svn: 167659
|
| |
|
|
|
|
|
|
|
|
|
|
| |
mov lr, pc
b.w _foo
The "mov" instruction doesn't set bit zero to one, it's putting incorrect
value in lr. It messes up backtraces.
rdar://12663632
llvm-svn: 167657
|
| |
|
|
| |
llvm-svn: 167652
|
| |
|
|
|
|
| |
Affects SM 2.0+. Fixes bug 13324.
llvm-svn: 167646
|
| |
|
|
|
|
| |
Based on the patch by Logan Chien!
llvm-svn: 167633
|
| |
|
|
|
|
| |
reverts r126226.
llvm-svn: 167632
|
| |
|
|
| |
llvm-svn: 167622
|
| |
|
|
|
|
| |
rdar://12340498
llvm-svn: 167620
|
| |
|
|
| |
llvm-svn: 167607
|
| |
|
|
|
|
|
| |
Improve ARM build attribute emission for architectures types.
This also changes the default architecture emitted for a generic CPU to "v7".
llvm-svn: 167574
|
| |
|
|
|
|
|
|
| |
- Add RTM code generation support throught 3 X86 intrinsics:
xbegin()/xend() to start/end a transaction region, and xabort() to abort a
tranaction region
llvm-svn: 167573
|
| |
|
|
|
|
| |
Patch by Sasa Stankovic.
llvm-svn: 167548
|
| |
|
|
| |
llvm-svn: 167546
|
| |
|
|
| |
llvm-svn: 167545
|
| |
|
|
|
|
| |
This also changes the default architecture emitted for a generic CPU to "v7".
llvm-svn: 167540
|
| |
|
|
|
|
|
| |
classes. For my test case the number of errors drop from 356 to 21.
Part of rdar://12594152
llvm-svn: 167508
|
| |
|
|
| |
llvm-svn: 167505
|
| |
|
|
| |
llvm-svn: 167501
|
| |
|
|
|
|
|
|
|
|
|
|
| |
registers. Previously, the register we being marked as implicitly defined, but
not killed. In some cases this would cause the register scavenger to spill a
dead register.
Also, use an empty register mask to simplify the logic and to reduce the memory
footprint.
rdar://12592448
llvm-svn: 167499
|
| |
|
|
| |
llvm-svn: 167488
|
| |
|
|
| |
llvm-svn: 167480
|
| |
|
|
| |
llvm-svn: 167445
|
| |
|
|
|
|
|
| |
This is in preparation for adding "weak" DAG edges, but generally
simplifies the design.
llvm-svn: 167435
|
| |
|
|
| |
llvm-svn: 167422
|
| |
|
|
| |
llvm-svn: 167421
|
| |
|
|
| |
llvm-svn: 167412
|
| |
|
|
| |
llvm-svn: 167410
|
| |
|
|
| |
llvm-svn: 167402
|
| |
|
|
| |
llvm-svn: 167401
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to be extended to a full register. This is modeled in the IR by marking
the return value (or argument) with a signext or zeroext attribute.
However, while these attributes are respected for function arguments,
they are currently ignored for function return values by the PowerPC
back-end. This patch updates PPCCallingConv.td to ask for the promotion
to i64, and fixes LowerReturn and LowerCallResult to implement it.
The new test case verifies that both arguments and return values are
properly extended when passing them; and also that the optimizers
understand incoming argument and return values are in fact guaranteed
by the ABI to be extended.
The patch caused a spurious breakage in CodeGen/PowerPC/coalesce-ext.ll,
since the test case used a "ret" instruction to create a use of an i32
value at the end of the function (to set up data flow as required for
what the test is intended to test). Since there's now an implicit
promotion to i64, that data flow no longer works as expected. To fix
this, this patch now adds an extra "add" to ensure we have an appropriate
use of the i32 value.
llvm-svn: 167396
|
| |
|
|
| |
llvm-svn: 167395
|
| |
|
|
|
|
|
|
|
|
| |
The Z constraint specifies an r+r memory address, and the y modifier expands
to the "r, r" in the asm string. For this initial implementation, the base
register is forced to r0 (which has the special meaning of 0 for r+r addressing
on PowerPC) and the full address is taken in the second register. In the
future, this should be improved.
llvm-svn: 167388
|
| |
|
|
|
|
|
| |
This patch expands the SEXTLOAD, ZEXTLOAD, and EXTLOAD operations for
vector types when altivec is enabled.
llvm-svn: 167386
|
| |
|
|
| |
llvm-svn: 167366
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 167348
|
| |
|
|
|
|
| |
for SSE4, AVX and AVX2.
llvm-svn: 167347
|
| |
|
|
| |
llvm-svn: 167345
|
| |
|
|
|
|
| |
register is needed.
llvm-svn: 167341
|
| |
|
|
|
|
|
| |
reserved. Without this fix, RegScavenger::getRegsAvailable incorrectly
returns an empty set of integer registers.
llvm-svn: 167335
|