oota-llvm.git
12 years agoMips32 does not reserve even-numbered floating point registers.
Akira Hatanaka [Fri, 9 Sep 2011 21:31:46 +0000 (21:31 +0000)]
Mips32 does not reserve even-numbered floating point registers.

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

12 years agoMake the SelectionDAG verify that all the operands of BUILD_VECTOR have the same...
Eli Friedman [Fri, 9 Sep 2011 21:04:06 +0000 (21:04 +0000)]
Make the SelectionDAG verify that all the operands of BUILD_VECTOR have the same type.  Teach DAGCombiner::visitINSERT_VECTOR_ELT not to make invalid BUILD_VECTORs.  Fixes PR10897.

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

12 years agoDrop support for Mips1 and Mips2.
Akira Hatanaka [Fri, 9 Sep 2011 20:45:50 +0000 (20:45 +0000)]
Drop support for Mips1 and Mips2.

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

12 years agoImplement vector-select support for avx256. Refactor the vblend implementation to...
Nadav Rotem [Fri, 9 Sep 2011 20:29:17 +0000 (20:29 +0000)]
Implement vector-select support for avx256. Refactor the vblend implementation to have tablegen match the instruction by the node type

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

12 years agoThumb2 assembly parsing and encoding for MLA and MLS.
Jim Grosbach [Fri, 9 Sep 2011 20:24:45 +0000 (20:24 +0000)]
Thumb2 assembly parsing and encoding for MLA and MLS.

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

12 years agoDon't tack "Instruction not interpretable yet!" onto the end of
Duncan Sands [Fri, 9 Sep 2011 20:22:48 +0000 (20:22 +0000)]
Don't tack "Instruction not interpretable yet!" onto the end of
the instruction.

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

12 years agoThumb2 assembly parsing and encoding for MCR, MCR2, MCRR, MCRR2.
Jim Grosbach [Fri, 9 Sep 2011 20:19:28 +0000 (20:19 +0000)]
Thumb2 assembly parsing and encoding for MCR, MCR2, MCRR, MCRR2.

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

12 years agoTidy up formatting a bit.
Jim Grosbach [Fri, 9 Sep 2011 20:17:49 +0000 (20:17 +0000)]
Tidy up formatting a bit.

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

12 years agoThumb2 assembly parsing and encoding for LSL.
Jim Grosbach [Fri, 9 Sep 2011 20:05:38 +0000 (20:05 +0000)]
Thumb2 assembly parsing and encoding for LSL.

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

12 years agoThumb2 assembly parsing and encoding for LDRT.
Jim Grosbach [Fri, 9 Sep 2011 20:02:15 +0000 (20:02 +0000)]
Thumb2 assembly parsing and encoding for LDRT.

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

12 years agoThumb2 assembly parsing and encoding for LDRSHT.
Jim Grosbach [Fri, 9 Sep 2011 20:01:18 +0000 (20:01 +0000)]
Thumb2 assembly parsing and encoding for LDRSHT.

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

12 years agoThumb2 assembly parsing and encoding for LDRSH.
Jim Grosbach [Fri, 9 Sep 2011 19:54:30 +0000 (19:54 +0000)]
Thumb2 assembly parsing and encoding for LDRSH.

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

12 years agoThumb2 assembly parsing and encoding for LDRSBT.
Jim Grosbach [Fri, 9 Sep 2011 19:49:06 +0000 (19:49 +0000)]
Thumb2 assembly parsing and encoding for LDRSBT.

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

12 years agoThumb2 assembly parsing and encoding for LDRSB.
Jim Grosbach [Fri, 9 Sep 2011 19:42:40 +0000 (19:42 +0000)]
Thumb2 assembly parsing and encoding for LDRSB.

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

12 years agoThumb2 assembly parsing and encoding for LDRH.
Jim Grosbach [Fri, 9 Sep 2011 19:13:53 +0000 (19:13 +0000)]
Thumb2 assembly parsing and encoding for LDRH.

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

12 years agoShuffle a bit.
Jim Grosbach [Fri, 9 Sep 2011 19:09:54 +0000 (19:09 +0000)]
Shuffle a bit.

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

12 years agoDrop support for Allegrex. Allegrex implements a variant of Mips2.
Akira Hatanaka [Fri, 9 Sep 2011 19:00:51 +0000 (19:00 +0000)]
Drop support for Allegrex. Allegrex implements a variant of Mips2.

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

12 years agoThumb2 assembly parsing and encoding for LDREX/LDREXB/LDREXD/LDREXH.
Jim Grosbach [Fri, 9 Sep 2011 18:37:27 +0000 (18:37 +0000)]
Thumb2 assembly parsing and encoding for LDREX/LDREXB/LDREXD/LDREXH.

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

12 years agoReapply r139247: Cache intermediate results during traceSiblingValue.
Jakob Stoklund Olesen [Fri, 9 Sep 2011 18:11:41 +0000 (18:11 +0000)]
Reapply r139247: Cache intermediate results during traceSiblingValue.

In some cases such as interpreters using indirectbr, the CFG can be very
complicated, and live range splitting may be forced to insert a large
number of phi-defs.  When that happens, traceSiblingValue can spend a
lot of time zipping around in the CFG looking for defs and reloads.

This patch causes more information to be cached in SibValues, and the
cached values are used to terminate searches early.  This speeds up
spilling by 20x in one interpreter test case.  For more typical code,
this is just a 10% speedup of spilling.

The previous version had bugs that caused miscompilations. They have
been fixed.

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

12 years agoComment formatting.
Andrew Trick [Fri, 9 Sep 2011 17:35:10 +0000 (17:35 +0000)]
Comment formatting.

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

12 years agoUpdate docs to reflect recent addition of new CompileUnit elements.
Devang Patel [Fri, 9 Sep 2011 17:07:15 +0000 (17:07 +0000)]
Update docs to reflect recent addition of new CompileUnit elements.

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

12 years agoAdd FIXME.
Jim Grosbach [Fri, 9 Sep 2011 16:45:31 +0000 (16:45 +0000)]
Add FIXME.

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

12 years agoMark the eh.typeid.for intrinsic as being 'const', which it is inside
Duncan Sands [Fri, 9 Sep 2011 07:50:37 +0000 (07:50 +0000)]
Mark the eh.typeid.for intrinsic as being 'const', which it is inside
any given function.  As pointed out by John McCall, this is needed to
have redundant eh.typeid.for tests be eliminated in the presence of
cleanups.

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

12 years agoAdd disassembler test for Intel syntax. Tests r139353.
Craig Topper [Fri, 9 Sep 2011 06:35:44 +0000 (06:35 +0000)]
Add disassembler test for Intel syntax. Tests r139353.

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

12 years agoFix handling of Intel syntax disassembling of movs and stos to stop being blank....
Craig Topper [Fri, 9 Sep 2011 05:40:53 +0000 (05:40 +0000)]
Fix handling of Intel syntax disassembling of movs and stos to stop being blank. Also fixed scas, and cmps to always print size suffix in Intel syntax since its abiguous without arguments. Fixes PR10875.

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

12 years agoChange default target architecture from Mips1 to Mips32r1 in preparation for
Akira Hatanaka [Fri, 9 Sep 2011 01:13:27 +0000 (01:13 +0000)]
Change default target architecture from Mips1 to Mips32r1 in preparation for
removing support for Mips1 and Mips2.

This change and the ones that follow have been discussed with and approved by
Bruno.

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

12 years agoRemove dead code.
Benjamin Kramer [Fri, 9 Sep 2011 00:22:05 +0000 (00:22 +0000)]
Remove dead code.

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

12 years agoFix release build:
Nick Lewycky [Fri, 9 Sep 2011 00:16:50 +0000 (00:16 +0000)]
Fix release build:
MachOObjectFile.cpp:524: error: unused variable 'NumLoadCommands' [-Wunused-variable]

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

12 years agogold plugin: report errors occured in lto_module_create_from_*
Ivan Krasin [Fri, 9 Sep 2011 00:14:04 +0000 (00:14 +0000)]
gold plugin: report errors occured in lto_module_create_from_*

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

12 years ago80 columns.
Akira Hatanaka [Fri, 9 Sep 2011 00:13:35 +0000 (00:13 +0000)]
80 columns.

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

12 years agoDirectly point debug info to the stack slot of the arugment, instead of trying to...
Devang Patel [Thu, 8 Sep 2011 22:59:09 +0000 (22:59 +0000)]
Directly point debug info to the stack slot of the arugment, instead of trying to keep track of vreg in which it the arugment is copied. The LiveDebugVariable can keep track of variable's ranges.

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

12 years agoAll conditional branches are disallowed in IT blocks, not just CBZ/CBNZ.
Owen Anderson [Thu, 8 Sep 2011 22:48:37 +0000 (22:48 +0000)]
All conditional branches are disallowed in IT blocks, not just CBZ/CBNZ.

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

12 years agoSoft fail CBZ/CBNZ in the disassembler if they appear inside an IT block.
Owen Anderson [Thu, 8 Sep 2011 22:42:49 +0000 (22:42 +0000)]
Soft fail CBZ/CBNZ in the disassembler if they appear inside an IT block.

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

12 years agoFormatting and typo.
Eric Christopher [Thu, 8 Sep 2011 22:17:40 +0000 (22:17 +0000)]
Formatting and typo.

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

12 years agoDix the 80-columns and remove unsupported v8i16 type from the list of legal vselect...
Nadav Rotem [Thu, 8 Sep 2011 22:17:35 +0000 (22:17 +0000)]
Dix the 80-columns and remove unsupported v8i16 type from the list of legal vselect types.

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

12 years agoThumb2 assembly parsing and encoding for LDRD(immediate).
Jim Grosbach [Thu, 8 Sep 2011 22:07:06 +0000 (22:07 +0000)]
Thumb2 assembly parsing and encoding for LDRD(immediate).

Refactor operand handling for STRD as well. Tests for that forthcoming.

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

12 years agoAdd a AVX version of a simple i64 -> f64 bitcast. This could be
Bruno Cardoso Lopes [Thu, 8 Sep 2011 21:52:33 +0000 (21:52 +0000)]
Add a AVX version of a simple i64 -> f64 bitcast. This could be
triggered using llc with -O0, which wouldn't let it be folded and
expose the lack of this pattern.

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

12 years agoReapply testcase from r139309!
Bruno Cardoso Lopes [Thu, 8 Sep 2011 21:05:43 +0000 (21:05 +0000)]
Reapply testcase from r139309!

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

12 years agoMake sure to handle the case where emitPredicateMatch returns false. Noticed by...
Eli Friedman [Thu, 8 Sep 2011 21:00:31 +0000 (21:00 +0000)]
Make sure to handle the case where emitPredicateMatch returns false.  Noticed by inspection.

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

12 years agoFix a Darwin x86_64 special case of a jmp to a temporary symbol from an atom
Kevin Enderby [Thu, 8 Sep 2011 20:53:44 +0000 (20:53 +0000)]
Fix a Darwin x86_64 special case of a jmp to a temporary symbol from an atom
without a base symbol that must not have a relocation entry.

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

12 years agoAdd support for relocations to ObjectFile.
Benjamin Kramer [Thu, 8 Sep 2011 20:52:17 +0000 (20:52 +0000)]
Add support for relocations to ObjectFile.

Patch by Danil Malyshev!

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

12 years ago* Combines Alignment, AuxInfo, and TB_NOT_REVERSABLE flag into a
Bruno Cardoso Lopes [Thu, 8 Sep 2011 18:35:57 +0000 (18:35 +0000)]
* Combines Alignment, AuxInfo, and TB_NOT_REVERSABLE flag into a
single field (Flags), which is a bitwise OR of items from the TB_*
enum. This makes it easier to add new information in the future.

* Gives every static array an equivalent layout: { RegOp, MemOp, Flags }

* Adds a helper function, AddTableEntry, to avoid duplication of the
insertion code.

* Renames TB_NOT_REVERSABLE to TB_NO_REVERSE.

* Adds TB_NO_FORWARD, which is analogous to TB_NO_REVERSE, except that
it prevents addition of the Reg->Mem entry. (This is going to be used
by Native Client, in the next CL).

Patch by David Meyer

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

12 years agoRemove this crashing test, until I figure out what's going wrong here
Bruno Cardoso Lopes [Thu, 8 Sep 2011 18:32:36 +0000 (18:32 +0000)]
Remove this crashing test, until I figure out what's going wrong here

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

12 years agoAdd AVX versions of blend vector operations and fix some issues noticed
Bruno Cardoso Lopes [Thu, 8 Sep 2011 18:05:08 +0000 (18:05 +0000)]
Add AVX versions of blend vector operations and fix some issues noticed
in Nadav's r139285 and r139287 commits.

1) Rename vsel.ll to a more descriptive name
2) Change the order of BLEND operands to "Op1, Op2, Cond", this is
necessary because PBLENDVB is already used in different places with
this order, and it was being emitted in the wrong way for vselect
3) Add AVX patterns and tests for the same SSE41 instructions

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

12 years agoFix PR10844: Add patterns to cover non foldable versions of X86vzmovl.
Bruno Cardoso Lopes [Thu, 8 Sep 2011 18:05:02 +0000 (18:05 +0000)]
Fix PR10844: Add patterns to cover non foldable versions of X86vzmovl.
Triggered using llc -O0. Also fix some SET0PS patterns to their AVX
forms and test it on the testcase.

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

12 years agoAdded LateParsed property to TableGen attributes.
Caitlin Sadowski [Thu, 8 Sep 2011 17:40:49 +0000 (17:40 +0000)]
Added LateParsed property to TableGen attributes.

This patch was written by DeLesley Hutchins.

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

12 years agoAdd tests for Thumb2 LDRB indexed addressing w/ writeback.
Jim Grosbach [Thu, 8 Sep 2011 16:49:36 +0000 (16:49 +0000)]
Add tests for Thumb2 LDRB indexed addressing w/ writeback.

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

12 years agoThis test is already covered by llvm/trunk/test/CodeGen/X86/vsel.ll
Nadav Rotem [Thu, 8 Sep 2011 08:43:23 +0000 (08:43 +0000)]
This test is already covered by llvm/trunk/test/CodeGen/X86/vsel.ll

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

12 years agoadd a testcase for the previous patch
Nadav Rotem [Thu, 8 Sep 2011 08:31:31 +0000 (08:31 +0000)]
add a testcase for the previous patch

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

12 years agoFix warning on windows; use of comparison with bool argument.
James Molloy [Thu, 8 Sep 2011 08:12:01 +0000 (08:12 +0000)]
Fix warning on windows; use of comparison with bool argument.

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

12 years agoAdd X86-SSE4 codegen support for vector-select.
Nadav Rotem [Thu, 8 Sep 2011 08:11:19 +0000 (08:11 +0000)]
Add X86-SSE4 codegen support for vector-select.

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

12 years agolto/addAsmGlobalSymbols: fast path when no module level asm is present.
Ivan Krasin [Thu, 8 Sep 2011 07:38:25 +0000 (07:38 +0000)]
lto/addAsmGlobalSymbols: fast path when no module level asm is present.

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

12 years agolto/addAsmGlobalSymbols: fail fracefully when the target does not define AsmParser.
Ivan Krasin [Thu, 8 Sep 2011 07:36:39 +0000 (07:36 +0000)]
lto/addAsmGlobalSymbols: fail fracefully when the target does not define AsmParser.

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

12 years agoAdding myself to test my new commit powers.
David Blaikie [Thu, 8 Sep 2011 05:32:49 +0000 (05:32 +0000)]
Adding myself to test my new commit powers.

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

12 years agoFix a use of freed string contents.
Andrew Trick [Thu, 8 Sep 2011 05:25:49 +0000 (05:25 +0000)]
Fix a use of freed string contents.

Speculatively try to fix our windows testers with a patch I found on the internet.

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

12 years agowhitespace
Andrew Trick [Thu, 8 Sep 2011 05:23:14 +0000 (05:23 +0000)]
whitespace

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

12 years agoA couple minor corrections to r139276.
Eli Friedman [Thu, 8 Sep 2011 02:37:07 +0000 (02:37 +0000)]
A couple minor corrections to r139276.

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

12 years agoFix the logic in BasicAliasAnalysis::aliasGEP for comparing GEP's with variable diffe...
Eli Friedman [Thu, 8 Sep 2011 02:23:31 +0000 (02:23 +0000)]
Fix the logic in BasicAliasAnalysis::aliasGEP for comparing GEP's with variable differences so that it actually does something sane. Fixes PR10881.

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

12 years agoThumb2 assembly parsing and encoding for LDR post-indexed.
Jim Grosbach [Thu, 8 Sep 2011 01:01:32 +0000 (01:01 +0000)]
Thumb2 assembly parsing and encoding for LDR post-indexed.

More cleanup of the general indexed addressing T2 instructions. Still more to
do, especially for stores.

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

12 years agoThumb2 assembly parsing and encoding for LDR pre-indexed w/ writeback.
Jim Grosbach [Thu, 8 Sep 2011 00:39:19 +0000 (00:39 +0000)]
Thumb2 assembly parsing and encoding for LDR pre-indexed w/ writeback.

Adjust encoding of writeback load/store instructions to better reflect the
way the operand types are represented.

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

12 years agoRemove the "common" set of instructions shared between ARM and Thumb2 modes. This...
Owen Anderson [Thu, 8 Sep 2011 00:11:18 +0000 (00:11 +0000)]
Remove the "common" set of instructions shared between ARM and Thumb2 modes.  This is no longer needed now that Thumb2 has its own copy of the STC/LDC instructions.

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

12 years agoThumb2 assembly parsing and encoding for LDRBT.
Jim Grosbach [Wed, 7 Sep 2011 23:39:14 +0000 (23:39 +0000)]
Thumb2 assembly parsing and encoding for LDRBT.

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

12 years agoThumb2 assembly parsing and encoding for LDRB(register).
Jim Grosbach [Wed, 7 Sep 2011 23:17:00 +0000 (23:17 +0000)]
Thumb2 assembly parsing and encoding for LDRB(register).

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

12 years agoThumb2 assembly parsing and encoding for LDR(register).
Jim Grosbach [Wed, 7 Sep 2011 23:10:15 +0000 (23:10 +0000)]
Thumb2 assembly parsing and encoding for LDR(register).

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

12 years agoAdd two notes for correlated-expression optimizations.
Benjamin Kramer [Wed, 7 Sep 2011 22:49:26 +0000 (22:49 +0000)]
Add two notes for correlated-expression optimizations.

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

12 years agoRevert r139247 "Cache intermediate results during traceSiblingValue."
Jakob Stoklund Olesen [Wed, 7 Sep 2011 21:43:52 +0000 (21:43 +0000)]
Revert r139247 "Cache intermediate results during traceSiblingValue."

It broke the self host and clang-x86_64-darwin10-RA.

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

12 years agoThumb2 assembly parsing and encoding for LDRB(immediate).
Jim Grosbach [Wed, 7 Sep 2011 21:41:25 +0000 (21:41 +0000)]
Thumb2 assembly parsing and encoding for LDRB(immediate).

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

12 years agoThumb2 assembly parsing and encoding for LDR(literal).
Jim Grosbach [Wed, 7 Sep 2011 21:33:16 +0000 (21:33 +0000)]
Thumb2 assembly parsing and encoding for LDR(literal).

Need branch relocation support to distinguish this encoding from the
16-bit Thumb1 encoding w/o the explicit .w suffix. That comes later, though.

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

12 years agoCreate Thumb2 versions of STC/LDC, and reenable the relevant tests.
Owen Anderson [Wed, 7 Sep 2011 21:10:42 +0000 (21:10 +0000)]
Create Thumb2 versions of STC/LDC, and reenable the relevant tests.

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

12 years agoAdd tests for Thumb2 LDR(immediate) from r139254.
Jim Grosbach [Wed, 7 Sep 2011 21:06:46 +0000 (21:06 +0000)]
Add tests for Thumb2 LDR(immediate) from r139254.

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

12 years agoThumb2 parsing and encoding for LDR(immediate).
Jim Grosbach [Wed, 7 Sep 2011 20:58:57 +0000 (20:58 +0000)]
Thumb2 parsing and encoding for LDR(immediate).

The immediate offset of the non-writeback i8 form (encoding T4) allows
negative offsets only. The positive offset form of the encoding is the
LDRT instruction. Immediate offsets in the range [0,255] use encoding T3
instead.

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

12 years agoThumb2 parsing and encoding for LDMDB.
Jim Grosbach [Wed, 7 Sep 2011 19:57:53 +0000 (19:57 +0000)]
Thumb2 parsing and encoding for LDMDB.

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

12 years agoSecond of a three-patch series aiming to fix MSR/MRS on Cortex-M. This adds predicate...
James Molloy [Wed, 7 Sep 2011 19:42:28 +0000 (19:42 +0000)]
Second of a three-patch series aiming to fix MSR/MRS on Cortex-M. This adds predicate checking to the Disassembler.

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

12 years agoCache intermediate results during traceSiblingValue.
Jakob Stoklund Olesen [Wed, 7 Sep 2011 19:07:31 +0000 (19:07 +0000)]
Cache intermediate results during traceSiblingValue.

In some cases such as interpreters using indirectbr, the CFG can be very
complicated, and live range splitting may be forced to insert a large
number of phi-defs.  When that happens, traceSiblingValue can spend a
lot of time zipping around in the CFG looking for defs and reloads.

This patch causes more information to be cached in SibValues, and the
cached values are used to terminate searches early.  This speeds up
spilling by 20x in one interpreter test case.  For more typical code,
this is just a 10% speedup of spilling.

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

12 years agoFix atomic load and store on x86 to pass -verify-machineinstrs (and possibly fix...
Eli Friedman [Wed, 7 Sep 2011 18:48:32 +0000 (18:48 +0000)]
Fix atomic load and store on x86 to pass -verify-machineinstrs (and possibly fix some subtle bugs involving passes which check mayStore()).

This isn't exactly ideal, but it is good enough for the moment.

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

12 years agoUpdate test for 139243
Jim Grosbach [Wed, 7 Sep 2011 18:40:06 +0000 (18:40 +0000)]
Update test for 139243

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

12 years agoThumb2 ldm/stm 'db' mnemonics don't have a '.w' suffix.
Jim Grosbach [Wed, 7 Sep 2011 18:39:47 +0000 (18:39 +0000)]
Thumb2 ldm/stm 'db' mnemonics don't have a '.w' suffix.

There is no 16-bit wide encoding, so the .w suffix isn't needed (indeed, isn't
documented as allowed). Also add the missing '!' token on the _UPD
variant.

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

12 years agoThumb2 parsing and encoding for LDMIA.
Jim Grosbach [Wed, 7 Sep 2011 18:05:34 +0000 (18:05 +0000)]
Thumb2 parsing and encoding for LDMIA.

Choose 32-bit vs. 16-bit encoding when there's no .w suffix in post-processing
as match classes are insufficient to handle the context-sensitiveness of
the writeback operand's legality for the 16-bit encodings.

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

12 years agoPort more assembler tests over to disassembler tests, and fix a minor logic error...
Owen Anderson [Wed, 7 Sep 2011 17:55:19 +0000 (17:55 +0000)]
Port more assembler tests over to disassembler tests, and fix a minor logic error that exposed.

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

12 years agoRefactor instprinter and mcdisassembler to take a SubtargetInfo. Add -mattr= handling...
James Molloy [Wed, 7 Sep 2011 17:24:38 +0000 (17:24 +0000)]
Refactor instprinter and mcdisassembler to take a SubtargetInfo. Add -mattr= handling to llvm-mc. Reviewed by Owen Anderson.

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

12 years agoWhen inlining exception handling code into another function, ensure that
Duncan Sands [Wed, 7 Sep 2011 16:44:14 +0000 (16:44 +0000)]
When inlining exception handling code into another function, ensure that
duplicate tests are eliminated (for example if the two functions both have
a catch clause catching the same type, ensure the redundant one is removed).
Note that it would probably be safe to say that eh.typeid.for is 'const',
but since two calls to it with the same argument can give different results
(but only if the calls are in different functions), it seems more correct to
mark it only 'pure'; this doesn't get in the way of the optimization.

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

12 years agoThumb2 use 'ldm' as default mnemonic.
Jim Grosbach [Wed, 7 Sep 2011 16:22:42 +0000 (16:22 +0000)]
Thumb2 use 'ldm' as default mnemonic.

Handle explicit 'ia' suffix via a MnemonicAlias (pre-existing).

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

12 years agoDetect attempt to use segmented stacks on non ELF systems and error
Rafael Espindola [Wed, 7 Sep 2011 16:10:57 +0000 (16:10 +0000)]
Detect attempt to use segmented stacks on non ELF systems and error
(not assert) early.

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

12 years agoBetter diagnostic location information for mnemonic suffices.
Jim Grosbach [Wed, 7 Sep 2011 16:06:04 +0000 (16:06 +0000)]
Better diagnostic location information for mnemonic suffices.

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

12 years agoAnother forgotten trampoline testcase.
Duncan Sands [Wed, 7 Sep 2011 10:05:14 +0000 (10:05 +0000)]
Another forgotten trampoline testcase.

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

12 years agoForgot to add this trampoline testcase.
Duncan Sands [Wed, 7 Sep 2011 09:21:38 +0000 (09:21 +0000)]
Forgot to add this trampoline testcase.

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

12 years agoRelax the MemOperands on atomics a bit. Fixes -verify-machineinstrs failures for...
Eli Friedman [Wed, 7 Sep 2011 02:23:42 +0000 (02:23 +0000)]
Relax the MemOperands on atomics a bit.  Fixes -verify-machineinstrs failures for atomic laod/store on ARM.

(The fix for the related failures on x86 is going to be nastier because we actually need Acquire memoperands attached to the atomic load instrs, etc.)

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

12 years agoDependency should be on the output file name, not the dependency file
Joerg Sonnenberger [Wed, 7 Sep 2011 02:12:03 +0000 (02:12 +0000)]
Dependency should be on the output file name, not the dependency file
name.

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

12 years agoWhile sinking machine instructions, sink matching DBG_VALUEs also otherwise live...
Devang Patel [Wed, 7 Sep 2011 00:07:58 +0000 (00:07 +0000)]
While sinking machine instructions, sink matching DBG_VALUEs also otherwise live debug variable pass will drop DBG_VALUEs on the floor.

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

12 years agoReenable compact unwind by default. However, also emit the old version of unwind
Bill Wendling [Tue, 6 Sep 2011 23:47:14 +0000 (23:47 +0000)]
Reenable compact unwind by default. However, also emit the old version of unwind
information for older linkers.

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

12 years agomemset_pattern16 uses a 16 BYTE pattern, not a 16 BIT pattern. Add comments to that...
Owen Anderson [Tue, 6 Sep 2011 23:43:26 +0000 (23:43 +0000)]
memset_pattern16 uses a 16 BYTE pattern, not a 16 BIT pattern.  Add comments to that effect.

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

12 years agoTeach BasicAA about the aliasing properties of memset_pattern16.
Owen Anderson [Tue, 6 Sep 2011 23:33:25 +0000 (23:33 +0000)]
Teach BasicAA about the aliasing properties of memset_pattern16.
Fixes PR10872 and <rdar://problem/10065079>.

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

12 years agoISB is HasDB, not just HasV7.
Jim Grosbach [Tue, 6 Sep 2011 23:09:19 +0000 (23:09 +0000)]
ISB is HasDB, not just HasV7.

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

12 years agoThumb2 parsing and encoding for ISB.
Jim Grosbach [Tue, 6 Sep 2011 22:53:27 +0000 (22:53 +0000)]
Thumb2 parsing and encoding for ISB.

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

12 years agoThumb2 parsing and encoding for EOR.
Jim Grosbach [Tue, 6 Sep 2011 22:44:50 +0000 (22:44 +0000)]
Thumb2 parsing and encoding for EOR.

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

12 years agoThumb2 parsing and encoding for DSB.
Jim Grosbach [Tue, 6 Sep 2011 22:19:40 +0000 (22:19 +0000)]
Thumb2 parsing and encoding for DSB.

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

12 years agoThumb2 parsing and encoding for DMB.
Jim Grosbach [Tue, 6 Sep 2011 22:14:58 +0000 (22:14 +0000)]
Thumb2 parsing and encoding for DMB.

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

12 years agoDisable these tests harder. They're XFAIL'd, but that means they still run, and
Nick Lewycky [Tue, 6 Sep 2011 22:08:18 +0000 (22:08 +0000)]
Disable these tests harder. They're XFAIL'd, but that means they still run, and
these tests all infinitely recurse, bringing my system down into swapping hell.

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

12 years agoThumb2 parsing and encoding for DBG.
Jim Grosbach [Tue, 6 Sep 2011 22:06:40 +0000 (22:06 +0000)]
Thumb2 parsing and encoding for DBG.

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

12 years agoThumb2 parsing and encoding for CMN and CMP.
Jim Grosbach [Tue, 6 Sep 2011 21:44:58 +0000 (21:44 +0000)]
Thumb2 parsing and encoding for CMN and CMP.

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