| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
reference the array passed to them instead of copying it to a std::vector.
llvm-svn: 135145
|
|
|
|
|
|
|
|
|
|
|
| |
During type legalization we often use the SIGN_EXTEND_INREG SDNode.
When this SDNode is legalized during the LegalizeVector phase, it is
scalarized because non-simple types are automatically marked to be expanded.
In this patch we add support for lowering SIGN_EXTEND_INREG manually.
This fixes CodeGen/X86/vec_sext.ll when running with the '-promote-elements'
flag.
llvm-svn: 135144
|
|
|
|
| |
llvm-svn: 135143
|
|
|
|
| |
llvm-svn: 135132
|
|
|
|
|
|
|
|
|
| |
TargetAsmInfo, which in turn pulls in TargetRegisterInfo, etc. :-( There are
other cases of violations, but this is probably the worst.
This patch is but one small step towards fixing this. 500 more steps to go. :-(
llvm-svn: 135131
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Original commit message:
Count references to interference cache entries.
Each InterferenceCache::Cursor instance references a cache entry. A
non-zero reference count guarantees that the entry won't be reused for a
new register.
This makes it possible to have multiple live cursors examining
interference for different physregs.
The total number of live cursors into a cache must be kept below
InterferenceCache::getMaxCursors().
Code generation should be unaffected by this change, and it doesn't seem
to affect the cache replacement strategy either.
llvm-svn: 135130
|
|
|
|
| |
llvm-svn: 135127
|
|
|
|
|
|
| |
simple SETNE is sufficient.
llvm-svn: 135126
|
|
|
|
|
|
| |
much as possible.
llvm-svn: 135124
|
|
|
|
|
|
| |
Fixes rdar://9761830
llvm-svn: 135123
|
|
|
|
| |
llvm-svn: 135122
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each InterferenceCache::Cursor instance references a cache entry. A
non-zero reference count guarantees that the entry won't be reused for a
new register.
This makes it possible to have multiple live cursors examining
interference for different physregs.
The total number of live cursors into a cache must be kept below
InterferenceCache::getMaxCursors().
Code generation should be unaffected by this change, and it doesn't seem
to affect the cache replacement strategy either.
llvm-svn: 135121
|
|
|
|
|
|
| |
32-bit, it doesn't matter whether the operation overflows because the computed address is not wider than the immediate.
llvm-svn: 135120
|
|
|
|
| |
llvm-svn: 135118
|
|
|
|
|
|
| |
Add instalias for default 'sy' option. Add tests.
llvm-svn: 135116
|
|
|
|
|
|
|
|
|
|
| |
The cache entry referenced by the best split candidate could become
clobbered by an unsuccessful candidate.
The correct fix here is to use reference counts on the cache entries.
Coming up.
llvm-svn: 135113
|
|
|
|
| |
llvm-svn: 135112
|
|
|
|
| |
llvm-svn: 135111
|
|
|
|
| |
llvm-svn: 135110
|
|
|
|
|
|
|
|
| |
Flesh out the options supported for the instruction. Shuffle tests a bit and
add entries for the rest of the options. Add an alias to handle the default
operand of "sy".
llvm-svn: 135109
|
|
|
|
| |
llvm-svn: 135107
|
|
|
|
|
|
| |
an opcode. Switch ARM over to using that rather than its own special MCInstrDesc bits.
llvm-svn: 135106
|
|
|
|
|
|
|
| |
The frameless unwind stack has a special encoding, the algorithm for which is in
"permuteEncode".
llvm-svn: 135103
|
|
|
|
|
|
| |
Add range checking and testing for parsing and encoding of DBG instruction.
llvm-svn: 135102
|
|
|
|
| |
llvm-svn: 135096
|
|
|
|
| |
llvm-svn: 135094
|
|
|
|
| |
llvm-svn: 135093
|
|
|
|
| |
llvm-svn: 135092
|
|
|
|
|
|
|
| |
general version of X86ISD::ANDNP also opened the room for a little bit
of refactoring.
llvm-svn: 135088
|
|
|
|
|
|
|
| |
it's later selected to a ANDNPD/ANDNPS instruction instead of the PANDN
instruction. Rename it.
llvm-svn: 135087
|
|
|
|
|
|
| |
Combine redundant base classes and such. No indended functional change.
llvm-svn: 135085
|
|
|
|
|
|
|
|
| |
same addressing mode on x86-64. It can overflow, leading to a crash/miscompile.
<rdar://problem/9763308>
llvm-svn: 135084
|
|
|
|
| |
llvm-svn: 135082
|
|
|
|
|
|
|
| |
They're all Thumb2 only, not just some of them. More refactoring cleanup
coming.
llvm-svn: 135081
|
|
|
|
|
|
|
|
|
| |
Some pysical registers create split solutions that would spill anywhere.
They should not even be considered in future multi-way global splits.
This does not affect code generation (yet).
llvm-svn: 135080
|
|
|
|
|
|
|
|
| |
functionality change. Refactoring in preparation for an additional safety check in FoldOffsetIntoAddress.
Part of <rdar://problem/9763308>.
llvm-svn: 135079
|
|
|
|
| |
llvm-svn: 135077
|
|
|
|
| |
llvm-svn: 135076
|
|
|
|
|
|
|
| |
This is in preparation of supporting multiple global split candidates in
a single live range split operation.
llvm-svn: 135074
|
|
|
|
| |
llvm-svn: 135071
|
|
|
|
|
|
| |
a complete misunderstanding of the code.
llvm-svn: 135070
|
|
|
|
| |
llvm-svn: 135068
|
|
|
|
|
|
| |
The immediate is of limited range and the operand type should reflect that.
llvm-svn: 135066
|
|
|
|
| |
llvm-svn: 135063
|
|
|
|
|
|
| |
another use of sqrt. rdar://9763193
llvm-svn: 135058
|
|
|
|
|
|
|
|
|
| |
Catch potential cascading errors on a malformed so_reg operand and bail after
the first error.
Add some tests for the diagnostics we do want.
llvm-svn: 135055
|
|
|
|
| |
llvm-svn: 135052
|
|
|
|
|
|
|
| |
Now works for parsing register shifted register and register shifted
immediate arithmetic instructions, including the 'rrx' rotate with extend.
llvm-svn: 135049
|
|
|
|
| |
llvm-svn: 135047
|
|
|
|
|
|
|
|
|
|
|
| |
Update the debug output interface for MCParsedAsmOperand to have a print()
method which takes an output stream argument, an << operator which invokes
the print method using the given stream, and a dump() method which prints
the operand to the dbgs() stream. This makes the interface more consistent
with the rest of LLVM, and more convenient to use at the debugger command
line.
llvm-svn: 135043
|