oota-llvm.git
13 years agoOutput MachO section names in the form SEGMENT,section.
Benjamin Kramer [Fri, 15 Jul 2011 00:29:02 +0000 (00:29 +0000)]
Output MachO section names in the form SEGMENT,section.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135231 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd support for 64 bit objects to MachOObjectFile.
Benjamin Kramer [Fri, 15 Jul 2011 00:14:48 +0000 (00:14 +0000)]
Add support for 64 bit objects to MachOObjectFile.

- I don't see a better way than duplicating all the code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135229 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMachOObjectFile: Change isSectionText to return true for sections named text, not...
Benjamin Kramer [Fri, 15 Jul 2011 00:14:46 +0000 (00:14 +0000)]
MachOObjectFile: Change isSectionText to return true for sections named text, not for load commands name __TEXT (which isn't the case in actual object files)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135228 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEncode that we have a personality function.
Bill Wendling [Fri, 15 Jul 2011 00:07:31 +0000 (00:07 +0000)]
Encode that we have a personality function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135227 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename createAsmInfo to createMCAsmInfo and move registration code to MCTargetDesc...
Evan Cheng [Thu, 14 Jul 2011 23:50:31 +0000 (23:50 +0000)]
Rename createAsmInfo to createMCAsmInfo and move registration code to MCTargetDesc to prepare for next round of changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135219 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCMake: Add a new configuration option LLVM_BUILD_CLANG that's
Douglas Gregor [Thu, 14 Jul 2011 23:49:55 +0000 (23:49 +0000)]
CMake: Add a new configuration option LLVM_BUILD_CLANG that's
available when Clang is found within the LLVM tree. If enabled (the
default), Clang will be built as part of LLVM. If disabled, Clang will
be skipped... and can be built by configuring a separate object
directory just for Clang. This helps break up the monolithic
LLVM+Clang project that many Clang developers use, improving
build/load times.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135218 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago* If we have an LSDA, we need to mark it in the encoding.
Bill Wendling [Thu, 14 Jul 2011 23:34:45 +0000 (23:34 +0000)]
* If we have an LSDA, we need to mark it in the encoding.
* The personality function should be encoded as an absolute pointer to the function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135215 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRefactor.
Devang Patel [Thu, 14 Jul 2011 23:17:49 +0000 (23:17 +0000)]
Refactor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135212 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agocmake/modules/LLVMLibDeps.cmake: Update since r135184.
NAKAMURA Takumi [Thu, 14 Jul 2011 23:12:02 +0000 (23:12 +0000)]
cmake/modules/LLVMLibDeps.cmake: Update since r135184.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135211 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEliminate redundant LLVMContext argument.
Devang Patel [Thu, 14 Jul 2011 22:30:56 +0000 (22:30 +0000)]
Eliminate redundant LLVMContext argument.
Improve DbgScope->dump() output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135207 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUndo r135191 (i.e. reapply Chris's patch. Now linker maps NamedMDNodes first, so...
Devang Patel [Thu, 14 Jul 2011 22:14:06 +0000 (22:14 +0000)]
Undo r135191 (i.e. reapply Chris's patch. Now linker maps NamedMDNodes first, so there is not any need to map DebugLoc).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135205 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoLink NamedMDNode before linking function bodies.
Devang Patel [Thu, 14 Jul 2011 22:13:07 +0000 (22:13 +0000)]
Link NamedMDNode before linking function bodies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135204 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM diagnostic when 's' suffix on mnemonic that can't set flags.
Jim Grosbach [Thu, 14 Jul 2011 22:04:21 +0000 (22:04 +0000)]
ARM diagnostic when 's' suffix on mnemonic that can't set flags.

For example, "mlss r0, r1, r2, r3".

The MLS instruction does not have a flag-setting variant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135203 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago* Redo the permutation encoding for frameless stacks to be more like what the
Bill Wendling [Thu, 14 Jul 2011 22:01:34 +0000 (22:01 +0000)]
* Redo the permutation encoding for frameless stacks to be more like what the
  unwind library expects.
* Comment the permutation encoding for frameless stacks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135202 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd dump()
Devang Patel [Thu, 14 Jul 2011 21:50:04 +0000 (21:50 +0000)]
Add dump()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135200 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd OperandTypes for Thumb branch targets.
Benjamin Kramer [Thu, 14 Jul 2011 21:47:24 +0000 (21:47 +0000)]
Add OperandTypes for Thumb branch targets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135199 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPort operand types for ARM and X86 over from EDIS to the .td files.
Benjamin Kramer [Thu, 14 Jul 2011 21:47:22 +0000 (21:47 +0000)]
Port operand types for ARM and X86 over from EDIS to the .td files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135198 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a new field to MCOperandInfo that contains information about the type of the...
Benjamin Kramer [Thu, 14 Jul 2011 21:47:18 +0000 (21:47 +0000)]
Add a new field to MCOperandInfo that contains information about the type of the Operand.

- The actual values are from the MCOI::OperandType enum.
- Teach tblgen to read it from the instruction definition.
- This is a better implementation of the hacks in edis.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135197 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd some testcases for ARM MLA/MLS instructions.
Jim Grosbach [Thu, 14 Jul 2011 21:43:05 +0000 (21:43 +0000)]
Add some testcases for ARM MLA/MLS instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135196 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM MCRR/MCRR2 immediate operand range checking.
Jim Grosbach [Thu, 14 Jul 2011 21:26:42 +0000 (21:26 +0000)]
ARM MCRR/MCRR2 immediate operand range checking.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135192 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agorevert r135172 until Devang and I figure out the right answer.
Chris Lattner [Thu, 14 Jul 2011 21:25:42 +0000 (21:25 +0000)]
revert r135172 until Devang and I figure out the right answer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135191 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM MCR/MCR2 assembly parsing operand constraints.
Jim Grosbach [Thu, 14 Jul 2011 21:19:17 +0000 (21:19 +0000)]
ARM MCR/MCR2 assembly parsing operand constraints.

The immediate operands are restricted to 0-7. Enforce that when parsing
assembly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135189 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAfter type-system-rewrite branch update the Cpp backend to not use OpaqueType.
Nicolas Geoffray [Thu, 14 Jul 2011 21:04:35 +0000 (21:04 +0000)]
After type-system-rewrite branch update the Cpp backend to not use OpaqueType.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135186 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEnable some tests we now handle correctly.
Jim Grosbach [Thu, 14 Jul 2011 21:02:23 +0000 (21:02 +0000)]
Enable some tests we now handle correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135185 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoNext round of MC refactoring. This patch factor MC table instantiations, MC
Evan Cheng [Thu, 14 Jul 2011 20:59:42 +0000 (20:59 +0000)]
Next round of MC refactoring. This patch factor MC table instantiations, MC
registeration and creation code into XXXMCDesc libraries.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135184 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agosimplify this logic now that GlobalAlias::isDeclaration is fixed.
Chris Lattner [Thu, 14 Jul 2011 20:23:05 +0000 (20:23 +0000)]
simplify this logic now that GlobalAlias::isDeclaration is fixed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135183 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix GlobalValue::isDeclaration() to always consider aliases to be definitions.
Chris Lattner [Thu, 14 Jul 2011 20:22:18 +0000 (20:22 +0000)]
Fix GlobalValue::isDeclaration() to always consider aliases to be definitions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135182 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCheck register class matching instead of width of type matching
Eric Christopher [Thu, 14 Jul 2011 20:13:52 +0000 (20:13 +0000)]
Check register class matching instead of width of type matching
when determining validity of matching constraint. Allow i1
types access to the GR8 reg class for x86.

Fixes PR10352 and rdar://9777108

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135180 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReorganize ARM assembler aliases.
Jim Grosbach [Thu, 14 Jul 2011 19:47:47 +0000 (19:47 +0000)]
Reorganize ARM assembler aliases.

Consolidate the individual declarations together for ease of reference. This
mirrors the organization in X86, as well, so is good for consistency. No
functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135179 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd LLVMConstNamedStruct to the C api to let its users create constants
Rafael Espindola [Thu, 14 Jul 2011 19:09:08 +0000 (19:09 +0000)]
Add LLVMConstNamedStruct to the C api to let its users create constants
of named struct types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135178 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDebugLoc's don't hide any interesting types for TypeFinder to find.
Chris Lattner [Thu, 14 Jul 2011 18:58:40 +0000 (18:58 +0000)]
DebugLoc's don't hide any interesting types for TypeFinder to find.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135174 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agomanually copy debugloc over to a new instruction in clone() instead
Chris Lattner [Thu, 14 Jul 2011 18:57:51 +0000 (18:57 +0000)]
manually copy debugloc over to a new instruction in clone() instead
of calling getAllMetadata().  This is semantically identical, but doing
it this way avoids unpacking the DebugLoc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135173 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoStop the ValueMapper from calling getAllMetadata, which unpacks DebugLoc into
Chris Lattner [Thu, 14 Jul 2011 18:53:50 +0000 (18:53 +0000)]
Stop the ValueMapper from calling getAllMetadata, which unpacks DebugLoc into
an MDNode.  This saves a bunch of time and memory in the IR linker, e.g. when
doing LTO of files with debug info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135172 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd 256-bit load/store recognition and matching in several places.
Bruno Cardoso Lopes [Thu, 14 Jul 2011 18:50:58 +0000 (18:50 +0000)]
Add 256-bit load/store recognition and matching in several places.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135171 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't leak operands when putting them into a shift.
Benjamin Kramer [Thu, 14 Jul 2011 18:41:22 +0000 (18:41 +0000)]
Don't leak operands when putting them into a shift.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135169 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate ARM Assembly of LDM/STM.
Jim Grosbach [Thu, 14 Jul 2011 18:35:38 +0000 (18:35 +0000)]
Update ARM Assembly of LDM/STM.

ldm/stm are the cannonical spellings for ldmia/stmia, so use them as such.
Update the parsing/encoding tests accordingly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135168 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe key of a StringMap can contain nul's in it, so having first() return
Chris Lattner [Thu, 14 Jul 2011 18:31:43 +0000 (18:31 +0000)]
The key of a StringMap can contain nul's in it, so having first() return
const char* doesn't make sense.  Have it return StringRef instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135167 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agothough it isn't the case here, the key of a StringMap can
Chris Lattner [Thu, 14 Jul 2011 18:21:58 +0000 (18:21 +0000)]
though it isn't the case here, the key of a StringMap can
conceptually have nuls in it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135165 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoadd comments.
Chris Lattner [Thu, 14 Jul 2011 18:12:44 +0000 (18:12 +0000)]
add comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135164 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoconsolidate GlobalValue::isDeclaration into one
Chris Lattner [Thu, 14 Jul 2011 18:10:41 +0000 (18:10 +0000)]
consolidate GlobalValue::isDeclaration into one
non-virtual function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135163 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM ISB assembly parsing tests.
Jim Grosbach [Thu, 14 Jul 2011 18:02:25 +0000 (18:02 +0000)]
ARM ISB assembly parsing tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135158 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agocode cleanup
Chris Lattner [Thu, 14 Jul 2011 18:01:49 +0000 (18:01 +0000)]
code cleanup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135157 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM ISB instruction assembly parsing.
Jim Grosbach [Thu, 14 Jul 2011 18:00:31 +0000 (18:00 +0000)]
ARM ISB instruction assembly parsing.

The ISB instruction takes an optional operand, just like DMB/DSB. Typically
only 'sy' is meaningful.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135156 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoChange Intrinsic::getDeclaration and friends to take an ArrayRef.
Benjamin Kramer [Thu, 14 Jul 2011 17:45:39 +0000 (17:45 +0000)]
Change Intrinsic::getDeclaration and friends to take an ArrayRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135154 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoadd a couple more missing C api, patch by Vitaly Lugovskiy!
Chris Lattner [Thu, 14 Jul 2011 16:20:28 +0000 (16:20 +0000)]
add a couple more missing C api, patch by Vitaly Lugovskiy!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135151 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate XCoreRegisterInfo::eliminateFrameIndex() to handle DBG_VALUE
Richard Osborne [Thu, 14 Jul 2011 14:03:48 +0000 (14:03 +0000)]
Update XCoreRegisterInfo::eliminateFrameIndex() to handle DBG_VALUE
instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135146 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSimplify some functions in the C API by using an ArrayRef to directly reference the...
Frits van Bommel [Thu, 14 Jul 2011 11:44:09 +0000 (11:44 +0000)]
Simplify some functions in the C API by using an ArrayRef to directly reference the array passed to them instead of copying it to a std::vector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135145 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[VECTOR-SELECT]
Nadav Rotem [Thu, 14 Jul 2011 11:11:14 +0000 (11:11 +0000)]
[VECTOR-SELECT]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135144 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd assertion for the chain value type
Nadav Rotem [Thu, 14 Jul 2011 10:37:54 +0000 (10:37 +0000)]
Add assertion for the chain value type

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135143 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMention all API changes I've made since 2.9 was branched.
Jay Foad [Thu, 14 Jul 2011 09:19:05 +0000 (09:19 +0000)]
Mention all API changes I've made since 2.9 was branched.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135142 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a testcase for r135123.
Eric Christopher [Thu, 14 Jul 2011 06:23:09 +0000 (06:23 +0000)]
Add a testcase for r135123.

Part of rdar://9761830

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135133 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoadd C api for hte new type system rewrite API. Patch by Vitaly Lugovskiy!
Chris Lattner [Thu, 14 Jul 2011 05:53:17 +0000 (05:53 +0000)]
add C api for hte new type system rewrite API.  Patch by Vitaly Lugovskiy!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135132 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUnfortunately several files in MC are badly violating layering rule by using
Evan Cheng [Thu, 14 Jul 2011 05:43:07 +0000 (05:43 +0000)]
Unfortunately several files in MC are badly violating layering rule by using
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. :-(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135131 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReapply r135121 with a fixed copy constructor.
Jakob Stoklund Olesen [Thu, 14 Jul 2011 05:35:11 +0000 (05:35 +0000)]
Reapply r135121 with a fixed copy constructor.

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135130 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSimplify.
Devang Patel [Thu, 14 Jul 2011 01:52:45 +0000 (01:52 +0000)]
Simplify.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135127 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't emit a bit test if there is only one case the test can yield false. A simple...
Benjamin Kramer [Thu, 14 Jul 2011 01:38:42 +0000 (01:38 +0000)]
Don't emit a bit test if there is only one case the test can yield false. A simple SETNE is sufficient.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135126 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSimplify and delay extracting DebugLoc elements, scope and InlinedAt, as much as...
Devang Patel [Thu, 14 Jul 2011 01:14:57 +0000 (01:14 +0000)]
Simplify and delay extracting DebugLoc elements, scope and InlinedAt, as much as possible.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135124 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a dag combine pattern for folding C2-(A+C1) -> (C2-C1)-A
Eric Christopher [Thu, 14 Jul 2011 01:12:15 +0000 (01:12 +0000)]
Add a dag combine pattern for folding C2-(A+C1) -> (C2-C1)-A

Fixes rdar://9761830

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135123 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r135121 which broke a gcc-4.2 builder.
Jakob Stoklund Olesen [Thu, 14 Jul 2011 00:58:38 +0000 (00:58 +0000)]
Revert r135121 which broke a gcc-4.2 builder.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135122 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCount references to interference cache entries.
Jakob Stoklund Olesen [Thu, 14 Jul 2011 00:31:14 +0000 (00:31 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135121 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix up assertion in r135018 so it doesn't trigger on 32-bit; when we're in 32-bit...
Eli Friedman [Thu, 14 Jul 2011 00:22:31 +0000 (00:22 +0000)]
Fix up assertion in r135018 so it doesn't trigger on 32-bit; when we're in 32-bit, it doesn't matter whether the operation overflows because the computed address is not wider than the immediate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135120 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM tests for EOR instruction parsing and encoding.
Jim Grosbach [Thu, 14 Jul 2011 00:22:21 +0000 (00:22 +0000)]
ARM tests for EOR instruction parsing and encoding.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135119 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSimplify. Compile unit check inside hasValidLocation() did not add any value.
Devang Patel [Thu, 14 Jul 2011 00:20:24 +0000 (00:20 +0000)]
Simplify. Compile unit check inside hasValidLocation() did not add any value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135118 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove duplicate tests.
Jim Grosbach [Thu, 14 Jul 2011 00:19:19 +0000 (00:19 +0000)]
Remove duplicate tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135117 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM Assembler support for DSB instruction.
Jim Grosbach [Thu, 14 Jul 2011 00:18:13 +0000 (00:18 +0000)]
ARM Assembler support for DSB instruction.

Add instalias for default 'sy' option. Add tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135116 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReapply r135074 and r135080 with a fix.
Jakob Stoklund Olesen [Thu, 14 Jul 2011 00:17:10 +0000 (00:17 +0000)]
Reapply r135074 and r135080 with a fix.

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135113 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDMB instalias needs the same predicate as the instruction.
Jim Grosbach [Thu, 14 Jul 2011 00:10:26 +0000 (00:10 +0000)]
DMB instalias needs the same predicate as the instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135112 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix typo in DEBUG message.
Devang Patel [Thu, 14 Jul 2011 00:04:53 +0000 (00:04 +0000)]
Fix typo in DEBUG message.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135111 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd DEBUG messages.
Devang Patel [Thu, 14 Jul 2011 00:03:58 +0000 (00:03 +0000)]
Add DEBUG messages.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135110 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM Assembler support for DMB instruction.
Jim Grosbach [Wed, 13 Jul 2011 23:40:38 +0000 (23:40 +0000)]
ARM Assembler support for DMB instruction.

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".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135109 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate comments. These are for assembler, too.
Jim Grosbach [Wed, 13 Jul 2011 23:33:10 +0000 (23:33 +0000)]
Update comments. These are for assembler, too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135107 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a target-indepedent entry to MCInstrDesc to describe the encoded size of an opcod...
Owen Anderson [Wed, 13 Jul 2011 23:22:26 +0000 (23:22 +0000)]
Add a target-indepedent entry to MCInstrDesc to describe the encoded size of an opcode.  Switch ARM over to using that rather than its own special MCInstrDesc bits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135106 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd code to handle a "frameless" unwind stack.
Bill Wendling [Wed, 13 Jul 2011 23:03:31 +0000 (23:03 +0000)]
Add code to handle a "frameless" unwind stack.

The frameless unwind stack has a special encoding, the algorithm for which is in
"permuteEncode".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135103 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM Assembler support for DBG instruction.
Jim Grosbach [Wed, 13 Jul 2011 22:59:38 +0000 (22:59 +0000)]
ARM Assembler support for DBG instruction.

Add range checking and testing for parsing and encoding of DBG instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135102 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWe already support 256-bit packed ADD, SUB, DIV, MUL. Add testcases.
Bruno Cardoso Lopes [Wed, 13 Jul 2011 22:28:55 +0000 (22:28 +0000)]
We already support 256-bit packed ADD, SUB, DIV, MUL. Add testcases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135099 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM parsing and encoding tests for CMN/CMP.
Jim Grosbach [Wed, 13 Jul 2011 22:26:58 +0000 (22:26 +0000)]
ARM parsing and encoding tests for CMN/CMP.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135098 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agostruct Init -> class Init
David Greene [Wed, 13 Jul 2011 22:25:51 +0000 (22:25 +0000)]
struct Init -> class Init

Rename struct Init to class Init for consistency and in preparation
for making Init a FoldingSetNode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135097 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r135074 and r135080. They broke clamscan.
Jakob Stoklund Olesen [Wed, 13 Jul 2011 22:20:09 +0000 (22:20 +0000)]
Revert r135074 and r135080. They broke clamscan.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135096 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoShuffle ARM assembly tests a bit.
Jim Grosbach [Wed, 13 Jul 2011 22:19:10 +0000 (22:19 +0000)]
Shuffle ARM assembly tests a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135095 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert 135093. Think-o.
Jim Grosbach [Wed, 13 Jul 2011 22:06:11 +0000 (22:06 +0000)]
Revert 135093. Think-o.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135094 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCorrect range for thumb co-processor immediate
Jim Grosbach [Wed, 13 Jul 2011 22:03:11 +0000 (22:03 +0000)]
Correct range for thumb co-processor immediate

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135093 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRange checking for CDP[2] immediates.
Jim Grosbach [Wed, 13 Jul 2011 22:01:08 +0000 (22:01 +0000)]
Range checking for CDP[2] immediates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135092 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake X86ISD::ANDNP more general and Codegen 256-bit VANDNP. A more
Bruno Cardoso Lopes [Wed, 13 Jul 2011 21:36:51 +0000 (21:36 +0000)]
Make X86ISD::ANDNP more general and Codegen 256-bit VANDNP. A more
general version of X86ISD::ANDNP also opened the room for a little bit
of refactoring.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135088 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe target specific node PANDN name is misleading. That happens because
Bruno Cardoso Lopes [Wed, 13 Jul 2011 21:36:47 +0000 (21:36 +0000)]
The target specific node PANDN name is misleading. That happens because
it's later selected to a ANDNPD/ANDNPS instruction instead of the PANDN
instruction. Rename it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135087 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCleanup Thumb co-processor instructions a bit.
Jim Grosbach [Wed, 13 Jul 2011 21:35:10 +0000 (21:35 +0000)]
Cleanup Thumb co-processor instructions a bit.

Combine redundant base classes and such. No indended functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135085 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake sure we don't combine a large displacement and a frame index in the same address...
Eli Friedman [Wed, 13 Jul 2011 21:29:53 +0000 (21:29 +0000)]
Make sure we don't combine a large displacement and a frame index in the same addressing mode on x86-64.  It can overflow, leading to a crash/miscompile.

<rdar://problem/9763308>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135084 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoParameterize away the ARM T1Cop class.
Jim Grosbach [Wed, 13 Jul 2011 21:17:59 +0000 (21:17 +0000)]
Parameterize away the ARM T1Cop class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135082 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix predicates for Thumb co-processor instructions.
Jim Grosbach [Wed, 13 Jul 2011 21:14:23 +0000 (21:14 +0000)]
Fix predicates for Thumb co-processor instructions.

They're all Thumb2 only, not just some of them. More refactoring cleanup
coming.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135081 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoOnly keep the global split candidates that work out.
Jakob Stoklund Olesen [Wed, 13 Jul 2011 20:49:46 +0000 (20:49 +0000)]
Only keep the global split candidates that work out.

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).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135080 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRefactor out checking for displacements on x86-64 addressing modes. No functionality...
Eli Friedman [Wed, 13 Jul 2011 20:44:23 +0000 (20:44 +0000)]
Refactor out checking for displacements on x86-64 addressing modes.  No functionality change.  Refactoring in preparation for an additional safety check in FoldOffsetIntoAddress.

Part of <rdar://problem/9763308>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135079 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTestcases for ARM assembly BX/BXJ instructions.
Jim Grosbach [Wed, 13 Jul 2011 20:25:46 +0000 (20:25 +0000)]
Testcases for ARM assembly BX/BXJ instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135078 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix encoding for ARM BXJ instruction.
Jim Grosbach [Wed, 13 Jul 2011 20:25:01 +0000 (20:25 +0000)]
Fix encoding for ARM BXJ instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135077 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix encoding of predicate bits on ARM BX_pred.
Jim Grosbach [Wed, 13 Jul 2011 20:21:31 +0000 (20:21 +0000)]
Fix encoding of predicate bits on ARM BX_pred.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135076 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove the InterferenceCache cursor into the GlobalSplitCand struct.
Jakob Stoklund Olesen [Wed, 13 Jul 2011 20:14:52 +0000 (20:14 +0000)]
Move the InterferenceCache cursor into the GlobalSplitCand struct.

This is in preparation of supporting multiple global split candidates in
a single live range split operation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135074 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTestcases for ARM assembly BLX/BL instructions.
Jim Grosbach [Wed, 13 Jul 2011 20:11:04 +0000 (20:11 +0000)]
Testcases for ARM assembly BLX/BL instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135072 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRange checking for 16-bit immediates in ARM assembly.
Jim Grosbach [Wed, 13 Jul 2011 20:10:10 +0000 (20:10 +0000)]
Range checking for 16-bit immediates in ARM assembly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135071 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r135042. As Chris pointed out, it had no effect, and was based on
Jay Foad [Wed, 13 Jul 2011 20:05:31 +0000 (20:05 +0000)]
Revert r135042. As Chris pointed out, it had no effect, and was based on
a complete misunderstanding of the code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135070 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix up TargetLoweringObjectFile ctors to properly initialize fields.
Evan Cheng [Wed, 13 Jul 2011 19:54:59 +0000 (19:54 +0000)]
Fix up TargetLoweringObjectFile ctors to properly initialize fields.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135068 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoGive the ARM BKPT instruction the right operand type.
Jim Grosbach [Wed, 13 Jul 2011 19:24:09 +0000 (19:24 +0000)]
Give the ARM BKPT instruction the right operand type.

The immediate is of limited range and the operand type should reflect that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135066 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoChange test case, one that actually failed before my commit.
Evan Cheng [Wed, 13 Jul 2011 19:19:44 +0000 (19:19 +0000)]
Change test case, one that actually failed before my commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135064 91177308-0d34-0410-b5e6-96231b3b80d8