|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| | llvm-svn: 135174 | 
| | 
| 
| 
| 
| 
| 
| | of calling getAllMetadata().  This is semantically identical, but doing
it this way avoids unpacking the DebugLoc.
llvm-svn: 135173 | 
| | 
| 
| 
| 
| 
| 
| | an MDNode.  This saves a bunch of time and memory in the IR linker, e.g. when 
doing LTO of files with debug info.
llvm-svn: 135172 | 
| | 
| 
| 
| | llvm-svn: 135171 | 
| | 
| 
| 
| | llvm-svn: 135169 | 
| | 
| 
| 
| 
| 
| 
| | ldm/stm are the cannonical spellings for ldmia/stmia, so use them as such.
Update the parsing/encoding tests accordingly.
llvm-svn: 135168 | 
| | 
| 
| 
| | llvm-svn: 135164 | 
| | 
| 
| 
| 
| 
| | non-virtual function.
llvm-svn: 135163 | 
| | 
| 
| 
| | llvm-svn: 135157 | 
| | 
| 
| 
| 
| 
| 
| | The ISB instruction takes an optional operand, just like DMB/DSB. Typically
only 'sy' is meaningful.
llvm-svn: 135156 | 
| | 
| 
| 
| | llvm-svn: 135154 | 
| | 
| 
| 
| | llvm-svn: 135151 | 
| | 
| 
| 
| 
| 
| | instructions.
llvm-svn: 135146 | 
| | 
| 
| 
| 
| 
| | 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 |