oota-llvm.git
13 years agoindvars test only relevant for -enable-iv-rewrite.
Andrew Trick [Mon, 12 Sep 2011 22:59:00 +0000 (22:59 +0000)]
indvars test only relevant for -enable-iv-rewrite.

Otherwise this case is now covered by no-iv-rewrite.ll.

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

13 years agoFix a failing ELF Thumb test. I _think_ this is right, but it's not totally clear...
Owen Anderson [Mon, 12 Sep 2011 22:40:31 +0000 (22:40 +0000)]
Fix a failing ELF Thumb test.  I _think_ this is right, but it's not totally clear to me what this test is doing.  Could someone on an ELF platform check?

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

13 years agoIntroduce a bit of a hack.
Bill Wendling [Mon, 12 Sep 2011 21:56:59 +0000 (21:56 +0000)]
Introduce a bit of a hack.

Splitting a landing pad takes considerable care because of PHIs and other
nasties. The problem is that the jump table needs to jump to the landing pad
block. However, the landing pad block can be jumped to only by an invoke
instruction. So we clone the landingpad instruction into its own basic block,
have the invoke jump to there. The landingpad instruction's basic block's
successor is now the target for the jump table.

But because of PHI nodes, we need to create another basic block for the jump
table to jump to. This is definitely a hack, because the values for the PHI
nodes may not be defined on the edge from the jump table. But that's okay,
because the jump table is simply a construct to mimic what is happening in the
CFG. So the values are mysteriously there, even though there is no value for the
PHI from the jump table's edge (hence calling this a hack).

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

13 years agogold plugin: don't report error on non-bitcode (e.g. ELF) files.
Ivan Krasin [Mon, 12 Sep 2011 21:47:50 +0000 (21:47 +0000)]
gold plugin: don't report error on non-bitcode (e.g. ELF) files.

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

13 years agoThumb2 POP's don't allow the PC as an operand, and PUSH's don't allow the SP either.
Owen Anderson [Mon, 12 Sep 2011 21:28:46 +0000 (21:28 +0000)]
Thumb2 POP's don't allow the PC as an operand, and PUSH's don't allow the SP either.

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

13 years agoRevert the wrong part of r139528, and fix testcases.
Bruno Cardoso Lopes [Mon, 12 Sep 2011 21:24:07 +0000 (21:24 +0000)]
Revert the wrong part of r139528, and fix testcases.

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

13 years agoFix encoding of PC-relative LDRSHW with an immediate offset.
Owen Anderson [Mon, 12 Sep 2011 20:36:51 +0000 (20:36 +0000)]
Fix encoding of PC-relative LDRSHW with an immediate offset.

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

13 years agoConditionalize indvars tests that rely on SCEV expansion of geps,
Andrew Trick [Mon, 12 Sep 2011 20:26:34 +0000 (20:26 +0000)]
Conditionalize indvars tests that rely on SCEV expansion of geps,
which is relevant with canonical IVs. Anything else being checked by
these tests is already covered by early CSE.

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

13 years agoChange a bunch of isVolatile() checks to check for atomic load/store as well.
Eli Friedman [Mon, 12 Sep 2011 20:23:13 +0000 (20:23 +0000)]
Change a bunch of isVolatile() checks to check for atomic load/store as well.

No tests; these changes aren't really interesting in the sense that the logic is the same for volatile and atomic.

I believe this completes all of the changes necessary for the optimizer to handle loads and stores correctly.  I'm going to try and come up with some additional testing, though.

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

13 years agoThere's no need to add additional predicate operands when converting a tB to a tBfar...
Owen Anderson [Mon, 12 Sep 2011 20:07:22 +0000 (20:07 +0000)]
There's no need to add additional predicate operands when converting a tB to a tBfar now.  Fixes nightly test failures on armv6 Thumb.  <rdar://problem/10110404>

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

13 years agoFix typo.
Eric Christopher [Mon, 12 Sep 2011 19:58:22 +0000 (19:58 +0000)]
Fix typo.

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

13 years agoNot sure how CMPPS and CMPPD had already ever worked, I guess it didn't.
Bruno Cardoso Lopes [Mon, 12 Sep 2011 19:30:40 +0000 (19:30 +0000)]
Not sure how CMPPS and CMPPD had already ever worked, I guess it didn't.
However with this fix it does now.

Basically the operand order for the x86 target specific node
is not the same as the instruction, but since the intrinsic need that
specific order at the instruction definition, just change the order
during legalization. Also, there were some wrong invertions of condition
codes, such as GE => LE, GT => LT, fix that too. Fix PR10907.

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

13 years agoOrganize a bit the operand names for CMPPS and CMPPD
Bruno Cardoso Lopes [Mon, 12 Sep 2011 19:30:36 +0000 (19:30 +0000)]
Organize a bit the operand names for CMPPS and CMPPD

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

13 years agoRealign BLEND patterns to match the general style for patterns in .td file.
Bruno Cardoso Lopes [Mon, 12 Sep 2011 19:30:33 +0000 (19:30 +0000)]
Realign BLEND patterns to match the general style for patterns in .td file.

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

13 years agoFix 80-columns
Bruno Cardoso Lopes [Mon, 12 Sep 2011 19:30:29 +0000 (19:30 +0000)]
Fix 80-columns

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

13 years agoPort more encoding tests to decoding tests, and correct an improper Thumb2 pre-indexe...
Owen Anderson [Mon, 12 Sep 2011 18:56:30 +0000 (18:56 +0000)]
Port more encoding tests to decoding tests, and correct an improper Thumb2 pre-indexed load decoding this uncovered.

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

13 years agoRemoving indvars tests that directly test canonical IVs and nothing else.
Andrew Trick [Mon, 12 Sep 2011 18:33:08 +0000 (18:33 +0000)]
Removing indvars tests that directly test canonical IVs and nothing else.

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

13 years agoRename -disable-iv-rewrite to -enable-iv-rewrite=false in preparation for default...
Andrew Trick [Mon, 12 Sep 2011 18:28:44 +0000 (18:28 +0000)]
Rename -disable-iv-rewrite to -enable-iv-rewrite=false in preparation for default change.

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

13 years agoAdd asserts to keep front-ends honest while encoding debug info into LLVM IR using...
Devang Patel [Mon, 12 Sep 2011 18:26:08 +0000 (18:26 +0000)]
Add asserts to keep front-ends honest while encoding debug info into LLVM IR using DIBuilder.

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

13 years agoFix mistake in test runline.
Eli Friedman [Mon, 12 Sep 2011 17:32:58 +0000 (17:32 +0000)]
Fix mistake in test runline.

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

13 years agoTest case for r139453, WidenIV::GetExtendedOperandRecurrence.
Andrew Trick [Mon, 12 Sep 2011 17:20:57 +0000 (17:20 +0000)]
Test case for r139453, WidenIV::GetExtendedOperandRecurrence.

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

13 years agoAdd DW_ATE_UTF, which clang started using in my previous commit!
Devang Patel [Mon, 12 Sep 2011 17:18:20 +0000 (17:18 +0000)]
Add DW_ATE_UTF, which clang started using in my previous commit!

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

13 years agoRemove the -compact-regions flag.
Jakob Stoklund Olesen [Mon, 12 Sep 2011 16:54:42 +0000 (16:54 +0000)]
Remove the -compact-regions flag.

It has been enabled by default for a while, it was only there to allow
performance comparisons.

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

13 years agoAdd an interface for SplitKit complement spill modes.
Jakob Stoklund Olesen [Mon, 12 Sep 2011 16:49:21 +0000 (16:49 +0000)]
Add an interface for SplitKit complement spill modes.

SplitKit always computes a complement live range to cover the places
where the original live range was live, but no explicit region has been
allocated.

Currently, the complement live range is created to be as small as
possible - it never overlaps any of the regions.  This minimizes
register pressure, but if the complement is going to be spilled anyway,
that is not very important.  The spiller will eliminate redundant
spills, and hoist others by making the spill slot live range overlap
some of the regions created by splitting.  Stack slots are cheap.

This patch adds the interface to enable spill modes in SplitKit.  In
spill mode, SplitKit will assume that the complement is going to spill,
so it will allow it to overlap regions in order to avoid back-copies.
By doing some of the spiller's work early, the complement live range
becomes simpler.  In some cases, it can become much simpler because no
extra PHI-defs are required.  This will speed up both splitting and
spilling.

This is only the interface to enable spill modes, no implementation yet.

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

13 years agoUpdate comments to reflect some (not so) recent changes.
Jakob Stoklund Olesen [Mon, 12 Sep 2011 16:03:26 +0000 (16:03 +0000)]
Update comments to reflect some (not so) recent changes.

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

13 years agoAssociate a MemOperand with LDWCP nodes introduced during ISel.
Richard Osborne [Mon, 12 Sep 2011 14:43:23 +0000 (14:43 +0000)]
Associate a MemOperand with LDWCP nodes introduced during ISel.

This information is required if we want LDWCP to be hoisted out of loops.

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

13 years agoMark LDWCP as having no side effects.
Richard Osborne [Mon, 12 Sep 2011 14:41:31 +0000 (14:41 +0000)]
Mark LDWCP as having no side effects.

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

13 years agoFormat patterns, remove unused X86blend patterns
Nadav Rotem [Mon, 12 Sep 2011 08:41:50 +0000 (08:41 +0000)]
Format patterns, remove unused X86blend patterns

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

13 years agoFix disassembling of one of the register/register forms of MOVUPS/MOVUPD/MOVAPS/MOVAP...
Craig Topper [Sun, 11 Sep 2011 23:19:54 +0000 (23:19 +0000)]
Fix disassembling of one of the register/register forms of MOVUPS/MOVUPD/MOVAPS/MOVAPD/MOVSS/MOVSD and their VEX equivalents. Fixes PR10877.

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

13 years agoFix disassembling of reverse register/register forms of ADD/SUB/XOR/OR/AND/SBB/ADC...
Craig Topper [Sun, 11 Sep 2011 21:41:45 +0000 (21:41 +0000)]
Fix disassembling of reverse register/register forms of ADD/SUB/XOR/OR/AND/SBB/ADC/CMP/MOV.

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

13 years agoFix disassembling of PAUSE instruction. Fixes PR10900. Also fixed NOP disassembling...
Craig Topper [Sun, 11 Sep 2011 20:23:20 +0000 (20:23 +0000)]
Fix disassembling of PAUSE instruction. Fixes PR10900. Also fixed NOP disassembling to ignore OpSize and REX.W.

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

13 years agos/SequeuentiallyConsistent/SequentiallyConsistent/g
Nick Lewycky [Sun, 11 Sep 2011 15:50:05 +0000 (15:50 +0000)]
s/SequeuentiallyConsistent/SequentiallyConsistent/g

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

13 years agoFix verb tense agreement.
Nick Lewycky [Sun, 11 Sep 2011 15:30:08 +0000 (15:30 +0000)]
Fix verb tense agreement.

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

13 years agoCR fixes per Bruno's request.
Nadav Rotem [Sun, 11 Sep 2011 15:02:23 +0000 (15:02 +0000)]
CR fixes per Bruno's request.

Undo the changes from r139285 which added custom lowering to vselect.
Add tablegen lowering for vselect.

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

13 years agoReally un-XFAIL the testcase, like I said I would in r139458.
Eli Friedman [Sat, 10 Sep 2011 02:02:27 +0000 (02:02 +0000)]
Really un-XFAIL the testcase, like I said I would in r139458.

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

13 years agor139454 activates an assert in a case where we were doing the right thing anyway...
Eli Friedman [Sat, 10 Sep 2011 02:01:42 +0000 (02:01 +0000)]
r139454 activates an assert in a case where we were doing the right thing anyway.  Make that explicit, and un-XFAIL the testcase.

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

13 years agoFix the asserts in lib/Target/X86/X86ELFWriterInfo.cpp and
Richard Trieu [Sat, 10 Sep 2011 01:42:07 +0000 (01:42 +0000)]
Fix the asserts in lib/Target/X86/X86ELFWriterInfo.cpp and
lib/ExecutionEngine/MCJIT/MCJIT.cpp from:

  assert("error");

to:

  assert(0 && "error");

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

13 years agoFixed an assert from:
Richard Trieu [Sat, 10 Sep 2011 01:26:21 +0000 (01:26 +0000)]
Fixed an assert from:

  assert("not implemented for target shuffle node");

to:

  assert(0 && "not implemented for target shuffle node");

This causes a test failure in CodeGen/X86/palignr.ll which has
been marked as XFAIL for the time being.
Test failure filed at PR10901.

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

13 years ago[disable-iv-rewrite] Allow WidenIV to handle NSW/NUW operations
Andrew Trick [Sat, 10 Sep 2011 01:24:17 +0000 (01:24 +0000)]
[disable-iv-rewrite] Allow WidenIV to handle NSW/NUW operations
better.

Don't immediately give up when an add operation can't be trivially
sign/zero-extended within a loop. If it has NSW/NUW flags, generate a
new expression with sign extended (non-recurrent) operand. As before,
if SCEV says that all sign extends are loop invariant, then we can
widen the operation.

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

13 years agoSet NSW/NUW flags on SCEVAddExpr when the operation is flagged as
Andrew Trick [Sat, 10 Sep 2011 01:09:50 +0000 (01:09 +0000)]
Set NSW/NUW flags on SCEVAddExpr when the operation is flagged as
such.

I'm doing this now for completeness because I can't think of/remember
any reason that it was left out. I'm not sure it will help anything,
but if we don't do it we need to explain why in comments.

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

13 years agoFix asserts in CodeGen from:
Richard Trieu [Sat, 10 Sep 2011 01:07:54 +0000 (01:07 +0000)]
Fix asserts in CodeGen from:

  assert("error");

to:

  assert(0 && "error");

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

13 years agoThumb2 parsing and encoding for MOV(immediate).
Jim Grosbach [Sat, 10 Sep 2011 00:15:36 +0000 (00:15 +0000)]
Thumb2 parsing and encoding for MOV(immediate).

Some aliases for MOV(register) also to keep existing T1 tests happy when
run in thumbv7 mode.

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

13 years agoFix test cases.
Akira Hatanaka [Fri, 9 Sep 2011 23:14:58 +0000 (23:14 +0000)]
Fix test cases.
Generate code for Mips32r1 unless a Mips32r2 feature is tested.

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

13 years agoLDM writeback is not allowed if Rn is in the target register list.
Owen Anderson [Fri, 9 Sep 2011 23:13:33 +0000 (23:13 +0000)]
LDM writeback is not allowed if Rn is in the target register list.

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

13 years agoFix an ambiguously nested if.
Owen Anderson [Fri, 9 Sep 2011 23:13:02 +0000 (23:13 +0000)]
Fix an ambiguously nested if.

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

13 years agoFix buildbot breakage caused by r139415. I missed one instance of a manually create...
Owen Anderson [Fri, 9 Sep 2011 23:05:14 +0000 (23:05 +0000)]
Fix buildbot breakage caused by r139415.  I missed one instance of a manually create ARM::tB.

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

13 years agoFix assembly/disassembly of Thumb2 ADR instructions with immediate operands.
Owen Anderson [Fri, 9 Sep 2011 22:24:36 +0000 (22:24 +0000)]
Fix assembly/disassembly of Thumb2 ADR instructions with immediate operands.

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

13 years agoO64 will not be supported.
Akira Hatanaka [Fri, 9 Sep 2011 22:22:48 +0000 (22:22 +0000)]
O64 will not be supported.

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

13 years agoMake F31 and D15 non-reserved registers.
Akira Hatanaka [Fri, 9 Sep 2011 22:11:26 +0000 (22:11 +0000)]
Make F31 and D15 non-reserved registers.

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

13 years agotidy up a bit
Chris Lattner [Fri, 9 Sep 2011 22:06:59 +0000 (22:06 +0000)]
tidy up a bit

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

13 years agoThumb unconditional branches are allowed in IT blocks, and therefore should have...
Owen Anderson [Fri, 9 Sep 2011 21:48:23 +0000 (21:48 +0000)]
Thumb unconditional branches are allowed in IT blocks, and therefore should have a predicate operand, unlike conditional branches.

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

13 years agoUpdate Clang AST attribute reader tblgen generation to match with ASTReader change
Douglas Gregor [Fri, 9 Sep 2011 21:37:29 +0000 (21:37 +0000)]
Update Clang AST attribute reader tblgen generation to match with ASTReader change

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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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