oota-llvm.git
12 years agoCompress Repeated Byte Output
David Greene [Wed, 31 Aug 2011 17:30:56 +0000 (17:30 +0000)]
Compress Repeated Byte Output

Emit a repeated sequence of bytes using .zero.  This saves an enormous
amount of asm file space for certain programs.

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

12 years agoTweak Thumb1 ADD encoding selection a bit.
Jim Grosbach [Wed, 31 Aug 2011 17:07:33 +0000 (17:07 +0000)]
Tweak Thumb1 ADD encoding selection a bit.

When the destination register of an add immediate instruction is
explicitly specified, encoding T1 is preferred, else encoding T2 is
preferred.

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

12 years agoPut VMOVS widening under a command line option, off by default.
Jakob Stoklund Olesen [Wed, 31 Aug 2011 17:00:02 +0000 (17:00 +0000)]
Put VMOVS widening under a command line option, off by default.

It appears that our use of the imp-use and imp-def flags with
sub-registers is not yet robust enough to support this.

The failing test case is complicated, I am working on a reduction.

<rdar://problem/10044201>

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

12 years agoThis test requires sse, otherwise x87 ops will block tailcall optimization
Benjamin Kramer [Wed, 31 Aug 2011 16:49:05 +0000 (16:49 +0000)]
This test requires sse, otherwise x87 ops will block tailcall optimization

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

12 years agoSpelling and grammar fixes to problems found by Duncan.
Rafael Espindola [Wed, 31 Aug 2011 16:43:33 +0000 (16:43 +0000)]
Spelling and grammar fixes to problems found by Duncan.

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

12 years agoMake sure we don't crash when -miphoneos-version-min is specified on x86. Hopefully...
Eli Friedman [Wed, 31 Aug 2011 16:19:51 +0000 (16:19 +0000)]
Make sure we don't crash when -miphoneos-version-min is specified on x86.  Hopefully this will fix gcc testsuite failures.

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

12 years agoRework this conditional a bit.
Eric Christopher [Wed, 31 Aug 2011 04:17:21 +0000 (04:17 +0000)]
Rework this conditional a bit.

Patch by Sanjoy Das

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

12 years agolit: Normalize pathsep slashes also on %T.
NAKAMURA Takumi [Wed, 31 Aug 2011 03:56:17 +0000 (03:56 +0000)]
lit: Normalize pathsep slashes also on %T.

On Python-w32 with mingw msys bash, %T was replaced to "x:\foo\bar...". msys bash cannot handle DOSish paths.

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

12 years ago- Move all MOVSS and MOVSD patterns close to their definitions
Bruno Cardoso Lopes [Wed, 31 Aug 2011 03:04:20 +0000 (03:04 +0000)]
- Move all MOVSS and MOVSD patterns close to their definitions
- Duplicate some store patterns to their AVX forms!
- Catched a bug while restricting the patterns subtarget, fix it
  and update a testcase to check it properly

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

12 years agoRemove unnecessary AVX checks
Bruno Cardoso Lopes [Wed, 31 Aug 2011 03:04:14 +0000 (03:04 +0000)]
Remove unnecessary AVX checks

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

12 years agoTeach more places to use VMOVAPS,VMOVUPS instead of MOVAPS,MOVUPS,
Bruno Cardoso Lopes [Wed, 31 Aug 2011 03:04:09 +0000 (03:04 +0000)]
Teach more places to use VMOVAPS,VMOVUPS instead of MOVAPS,MOVUPS,
whenever AVX is enabled.

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

12 years agoFix (movhps load) lowering / pattern to match more cases. rdar://10050549
Evan Cheng [Wed, 31 Aug 2011 02:05:24 +0000 (02:05 +0000)]
Fix (movhps load) lowering / pattern to match more cases. rdar://10050549

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

12 years agoSome minor cleanups for r138845.
Eli Friedman [Wed, 31 Aug 2011 00:41:05 +0000 (00:41 +0000)]
Some minor cleanups for r138845.

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

12 years agoSome 64-bit atomic operations on ARM. 64-bit cmpxchg coming next.
Eli Friedman [Wed, 31 Aug 2011 00:31:29 +0000 (00:31 +0000)]
Some 64-bit atomic operations on ARM.  64-bit cmpxchg coming next.

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

12 years agoFix test typo.
Benjamin Kramer [Wed, 31 Aug 2011 00:02:59 +0000 (00:02 +0000)]
Fix test typo.

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

12 years agoRemove the old tail duplication pass. It is not used and is unable to update
Rafael Espindola [Tue, 30 Aug 2011 23:03:45 +0000 (23:03 +0000)]
Remove the old tail duplication pass. It is not used and is unable to update
ssa, so it has to be run really early in the pipeline. Any replacement
should probably use the SSAUpdater.

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

12 years agoFix issues with disassembly of IT instructions involving condition codes other the...
Owen Anderson [Tue, 30 Aug 2011 22:58:27 +0000 (22:58 +0000)]
Fix issues with disassembly of IT instructions involving condition codes other the EQ/NE.  Discovered by roundtrip testing.

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

12 years agoFix encoding of CBZ/CBNZ Thumb2 instructions with immediate offsets rather than labels.
Owen Anderson [Tue, 30 Aug 2011 22:15:17 +0000 (22:15 +0000)]
Fix encoding of CBZ/CBNZ Thumb2 instructions with immediate offsets rather than labels.

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

12 years agoTeach macho-dump to dump the uleb128s referred to by linkedit_data segments.
Benjamin Kramer [Tue, 30 Aug 2011 22:10:58 +0000 (22:10 +0000)]
Teach macho-dump to dump the uleb128s referred to by linkedit_data segments.

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

12 years agoFix encoding of PC-relative Thumb1 LDR's when using immediate offsets instead of...
Owen Anderson [Tue, 30 Aug 2011 22:10:03 +0000 (22:10 +0000)]
Fix encoding of PC-relative Thumb1 LDR's when using immediate offsets instead of labels.

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

12 years agoFix encoding of Thumb1 B instructions with immediate offsets, which is necessary...
Owen Anderson [Tue, 30 Aug 2011 22:03:20 +0000 (22:03 +0000)]
Fix encoding of Thumb1 B instructions with immediate offsets, which is necessary for round-tripping.

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

12 years agoClean up whitespace.
Owen Anderson [Tue, 30 Aug 2011 21:58:18 +0000 (21:58 +0000)]
Clean up whitespace.

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

12 years agoFix off-by-one error Benjamin noticed.
Bill Wendling [Tue, 30 Aug 2011 21:23:24 +0000 (21:23 +0000)]
Fix off-by-one error Benjamin noticed.

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

12 years agoAdd a triple.
Rafael Espindola [Tue, 30 Aug 2011 21:19:37 +0000 (21:19 +0000)]
Add a triple.

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

12 years agoRemove empty file.
Owen Anderson [Tue, 30 Aug 2011 21:17:20 +0000 (21:17 +0000)]
Remove empty file.

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

12 years agoSpeculatively revert r138809 in an attempt to fix DragonEgg.
Owen Anderson [Tue, 30 Aug 2011 21:11:06 +0000 (21:11 +0000)]
Speculatively revert r138809 in an attempt to fix DragonEgg.

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

12 years agoEnable compact unwind info by default. This only applies to Darwin when CFI is
Bill Wendling [Tue, 30 Aug 2011 20:54:11 +0000 (20:54 +0000)]
Enable compact unwind info by default. This only applies to Darwin when CFI is
disabled.

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

12 years agoFix C++0x narrowing errors when char is unsigned.
Jeffrey Yasskin [Tue, 30 Aug 2011 20:53:29 +0000 (20:53 +0000)]
Fix C++0x narrowing errors when char is unsigned.

In the case of EDInstInfo, this would actually cause a bug when -1 became 255
and was then compared >=0 in llvm-mc/Disassembler.cpp.

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

12 years agoPreliminary documentation in docs/SegmentedStacks.html.
Rafael Espindola [Tue, 30 Aug 2011 20:25:49 +0000 (20:25 +0000)]
Preliminary documentation in docs/SegmentedStacks.html.

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

12 years agoPort Thumb2 assembler tests over to disassembler tests.
Owen Anderson [Tue, 30 Aug 2011 20:03:11 +0000 (20:03 +0000)]
Port Thumb2 assembler tests over to disassembler tests.

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

12 years agoSome test code to check if correct code is being generated.
Rafael Espindola [Tue, 30 Aug 2011 19:51:29 +0000 (19:51 +0000)]
Some test code to check if correct code is being generated.
Patch by Sanjoy Das.

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

12 years agoThe code model of JIT should default to JITDefault.
Nicolas Geoffray [Tue, 30 Aug 2011 19:50:33 +0000 (19:50 +0000)]
The code model of JIT should default to JITDefault.

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

12 years agoAdds support for variable sized allocas. For a variable sized alloca,
Rafael Espindola [Tue, 30 Aug 2011 19:47:04 +0000 (19:47 +0000)]
Adds support for variable sized allocas. For a variable sized alloca,
code is inserted to first check if the current stacklet has enough
space. If so, space is allocated by simply decrementing the stack
pointer. Otherwise a runtime routine (__morestack_allocate_stack_space
in libgcc) is called which allocates the required memory from the
heap.

Patch by Sanjoy Das.

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

12 years agoAdds a SelectionDAG node X86SegAlloca which will be custom lowered
Rafael Espindola [Tue, 30 Aug 2011 19:43:21 +0000 (19:43 +0000)]
Adds a SelectionDAG node X86SegAlloca which will be custom lowered
from DYNAMIC_STACKALLOC.

Two new pseudo instructions (SEG_ALLOCA_32 and SEG_ALLOCA_64) which
will match X86SegAlloca (based on word size) are also added.  They
will be custom emitted to inject the actual stack handling code.

Patch by Sanjoy Das.

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

12 years agoEmit segmented-stack specific code into function prologues for
Rafael Espindola [Tue, 30 Aug 2011 19:39:58 +0000 (19:39 +0000)]
Emit segmented-stack specific code into function prologues for
X86. Modify the pass added in the previous patch to call this new
code.

This new prologues generated will call a libgcc routine (__morestack)
to allocate more stack space from the heap when required

Patch by Sanjoy Das.

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

12 years agoCommand line option to enable support for segmented stacks:
Rafael Espindola [Tue, 30 Aug 2011 19:29:02 +0000 (19:29 +0000)]
Command line option to enable support for segmented stacks:
-segmented-stacks.
Patch by Sanjoy Das!

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

12 years agoFollow up to r138791.
Evan Cheng [Tue, 30 Aug 2011 19:09:48 +0000 (19:09 +0000)]
Follow up to r138791.

Add a instruction flag: hasPostISelHook which tells the pre-RA scheduler to
call a target hook to adjust the instruction. For ARM, this is used to
adjust instructions which may be setting the 's' flag. ADC, SBC, RSB, and RSC
instructions have implicit def of CPSR (required since it now uses CPSR physical
register dependency rather than "glue"). If the carry flag is used, then the
target hook will *fill in* the optional operand with CPSR. Otherwise, the hook
will remove the CPSR implicit def from the MachineInstr.

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

12 years agoWhen walking backwards to eliminate final stores to allocas at the end of a function...
Owen Anderson [Tue, 30 Aug 2011 18:51:55 +0000 (18:51 +0000)]
When walking backwards to eliminate final stores to allocas at the end of a function, encountering an unrelated store should not cause us to give up like encountering a load does.

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

12 years agoTeach macho-dump how to dump linkedit_data load commands.
Benjamin Kramer [Tue, 30 Aug 2011 18:33:37 +0000 (18:33 +0000)]
Teach macho-dump how to dump linkedit_data load commands.

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

12 years agoAdd load commands from Lion to Macho.h.
Benjamin Kramer [Tue, 30 Aug 2011 18:33:34 +0000 (18:33 +0000)]
Add load commands from Lion to Macho.h.

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

12 years agoUpdate docs: Bugpoint understands -O[123]
Tobias Grosser [Tue, 30 Aug 2011 18:26:11 +0000 (18:26 +0000)]
Update docs: Bugpoint understands -O[123]

Eli added this in revision 132695.

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

12 years agoLit option for ignoring stderr output.
Andrew Trick [Tue, 30 Aug 2011 17:42:33 +0000 (17:42 +0000)]
Lit option for ignoring stderr output.

This is useful for testing a build a temporarily hand instrumented
build.
Patch by arrowdodger!

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

12 years agoSet CR1EQ only when lowering vararg floating arguments (not any vararg
Roman Divacky [Tue, 30 Aug 2011 17:04:16 +0000 (17:04 +0000)]
Set CR1EQ only when lowering vararg floating arguments (not any vararg
arguments as before), unset CR1EQ otherwise.

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

12 years agoFix typos in SPUMCTargetDesc.h
James Molloy [Tue, 30 Aug 2011 07:27:02 +0000 (07:27 +0000)]
Fix typos in SPUMCTargetDesc.h

Patch supplied by Liu (projlc@gmail.com)

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

12 years agoFix typo in BlackfinFrameLowering.h
James Molloy [Tue, 30 Aug 2011 07:26:11 +0000 (07:26 +0000)]
Fix typo in BlackfinFrameLowering.h

Patch supplied by Liu (projlc@gmail.com)

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

12 years agoFix typo in MSP430MCTargetDesc.h.
James Molloy [Tue, 30 Aug 2011 07:24:47 +0000 (07:24 +0000)]
Fix typo in MSP430MCTargetDesc.h.

Patch supplied by Liu (projlc@gmail.com)

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

12 years agoFix typo in MipsMCTargetDesc.h; Patch supplied by Liu (proljc@gmail.com)
James Molloy [Tue, 30 Aug 2011 07:23:29 +0000 (07:23 +0000)]
Fix typo in MipsMCTargetDesc.h; Patch supplied by Liu (proljc@gmail.com)

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

12 years agoAdd vvvv support to disassembling of instructions with MRMDestMem and MRMDestReg...
Craig Topper [Tue, 30 Aug 2011 07:09:35 +0000 (07:09 +0000)]
Add vvvv support to disassembling of instructions with MRMDestMem and MRMDestReg form. Needed to support mem dest form of vmaskmovps/d. Fixes PR10807.

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

12 years agoDo not try to rematerialize a value from a partial definition.
Bob Wilson [Tue, 30 Aug 2011 05:36:02 +0000 (05:36 +0000)]
Do not try to rematerialize a value from a partial definition.
I don't currently have a good testcase for this; will try to get one
tomorrow.  <rdar://problem/10032939>

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

12 years agoChange ARM / Thumb2 addc / adde and subc / sube modeling to use physical
Evan Cheng [Tue, 30 Aug 2011 01:34:54 +0000 (01:34 +0000)]
Change ARM / Thumb2 addc / adde and subc / sube modeling to use physical
register dependency (rather than glue them together). This is general
goodness as it gives scheduler more freedom. However it is motivated by
a nasty bug in isel.

When a i64 sub is expanded to subc + sube.
  libcall #1
     \
      \        subc
       \       /  \
        \     /    \
         \   /    libcall #2
          sube

If the libcalls are not serialized (i.e. both have chains which are dag
entry), legalizer can serialize them in arbitrary orders. If it's
unlucky, it can force libcall #2 before libcall #1 in the above case.

  subc
   |
  libcall #2
   |
  libcall #1
   |
  sube

However since subc and sube are "glued" together, this ends up being a
cycle when the scheduler combine subc and sube as a single scheduling
unit.

The right solution is to fix LegalizeType too chains the libcalls together.
However, LegalizeType is not processing nodes in order so that's harder than
it should be. For now, the move to physical register dependency will do.

rdar://10019576

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

12 years agoRevert 138781. It's not playing nicely with the immediate forms for ADC.
Jim Grosbach [Mon, 29 Aug 2011 23:24:15 +0000 (23:24 +0000)]
Revert 138781. It's not playing nicely with the immediate forms for ADC.

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

12 years agoThumb2 assembler aliases for ADC/SBC w/o the .w suffix.
Jim Grosbach [Mon, 29 Aug 2011 23:20:54 +0000 (23:20 +0000)]
Thumb2 assembler aliases for ADC/SBC w/o the .w suffix.

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

12 years agoAdd missing encoding information for some of the GPR<->FP register moves.
Owen Anderson [Mon, 29 Aug 2011 23:15:25 +0000 (23:15 +0000)]
Add missing encoding information for some of the GPR<->FP register moves.

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

12 years agoRemove redundant tests from XFAIL'ed test file.
Jim Grosbach [Mon, 29 Aug 2011 23:04:04 +0000 (23:04 +0000)]
Remove redundant tests from XFAIL'ed test file.

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

12 years agoThumb2 assembly parsing and encoding support for ADC(immediate).
Jim Grosbach [Mon, 29 Aug 2011 23:01:38 +0000 (23:01 +0000)]
Thumb2 assembly parsing and encoding support for ADC(immediate).

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

12 years agoRemove test file. Superceded by other more exhaustive tests.
Jim Grosbach [Mon, 29 Aug 2011 23:00:19 +0000 (23:00 +0000)]
Remove test file. Superceded by other more exhaustive tests.

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

12 years agoThumb2 parsing and encoding for IT blocks.
Jim Grosbach [Mon, 29 Aug 2011 22:24:09 +0000 (22:24 +0000)]
Thumb2 parsing and encoding for IT blocks.

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

12 years agoFix the disassembly of the X86 crc32 instruction. Bug 10702 and rdar://8795217
Kevin Enderby [Mon, 29 Aug 2011 22:06:28 +0000 (22:06 +0000)]
Fix the disassembly of the X86 crc32 instruction.  Bug 10702 and rdar://8795217

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

12 years agoExplicitly zero out parts of a vector which are required to be zero by the algorithm...
Eli Friedman [Mon, 29 Aug 2011 21:15:46 +0000 (21:15 +0000)]
Explicitly zero out parts of a vector which are required to be zero by the algorithm in LowerUINT_TO_FP_i32.  This only has a substantial effect on the generated code when the input is extracted from a vector register; other ways of loading an i32 do the appropriate zeroing implicitly.  Fixes PR10802.

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

12 years agoTidy up. Whitespace.
Jim Grosbach [Mon, 29 Aug 2011 21:15:20 +0000 (21:15 +0000)]
Tidy up. Whitespace.

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

12 years agoApply the same fix for the change in LDR_PRE_IMM/LDRB_PRE_IMM operand encodings to...
Owen Anderson [Mon, 29 Aug 2011 21:14:19 +0000 (21:14 +0000)]
Apply the same fix for the change in LDR_PRE_IMM/LDRB_PRE_IMM operand encodings to the load-store optimizer that I applied to the instruction selector in r138758.  Fixes ary3 from the nightly test suite.

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

12 years agoFix grammar, noticed by Duncan.
Bill Wendling [Mon, 29 Aug 2011 21:03:12 +0000 (21:03 +0000)]
Fix grammar, noticed by Duncan.

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

12 years agoSpecify an additional fixed bit in the PLD/PLDW/PLI register-register encoding.
Owen Anderson [Mon, 29 Aug 2011 20:42:00 +0000 (20:42 +0000)]
Specify an additional fixed bit in the PLD/PLDW/PLI register-register encoding.

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

12 years agoUpdate tests to new EH model. Add landingpad instructions to landing pads.
Bill Wendling [Mon, 29 Aug 2011 20:39:23 +0000 (20:39 +0000)]
Update tests to new EH model. Add landingpad instructions to landing pads.

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

12 years agoaddrmode_imm12 and addrmode2_offset encode their immediate values differently. Updat...
Owen Anderson [Mon, 29 Aug 2011 20:16:50 +0000 (20:16 +0000)]
addrmode_imm12 and addrmode2_offset encode their immediate values differently.  Update the manual instruction selection code that was encoding them the addrmode2 way even though LDR_PRE_IMM/LDRB_PRE_IMM had switched to addrmode_imm12.  Should fix a number of nightly test failures.

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

12 years agoFixes following the CR by Chris and Duncan:
Nadav Rotem [Mon, 29 Aug 2011 19:58:36 +0000 (19:58 +0000)]
Fixes following the CR by Chris and Duncan:

Optimize chained bitcasts of the form A->B->A.
Undo r138722 and change isEliminableCastPair to allow this case.

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

12 years agoImprove handling of #-0 offsets for many more pre-indexed addressing modes.
Owen Anderson [Mon, 29 Aug 2011 19:36:44 +0000 (19:36 +0000)]
Improve handling of #-0 offsets for many more pre-indexed addressing modes.

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

12 years agoInitialize CompactUnwindSection so that other targets won't use an uninitialized...
Bill Wendling [Mon, 29 Aug 2011 18:25:59 +0000 (18:25 +0000)]
Initialize CompactUnwindSection so that other targets won't use an uninitialized value.

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

12 years agoExpand ATOMIC_LOAD and ATOMIC_STORE for architectures I don't know well enough to...
Eli Friedman [Mon, 29 Aug 2011 18:23:02 +0000 (18:23 +0000)]
Expand ATOMIC_LOAD and ATOMIC_STORE for architectures I don't know well enough to fix properly.

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

12 years agoTidy up. 80 columns.
Jim Grosbach [Mon, 29 Aug 2011 18:22:04 +0000 (18:22 +0000)]
Tidy up. 80 columns.

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

12 years agoDump with dbgs() instead of printf.
Benjamin Kramer [Mon, 29 Aug 2011 18:14:17 +0000 (18:14 +0000)]
Dump with dbgs() instead of printf.

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

12 years agoMake GCC happy by adding parens.
Benjamin Kramer [Mon, 29 Aug 2011 18:14:15 +0000 (18:14 +0000)]
Make GCC happy by adding parens.

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

12 years agoAdd testcase for r138746.
Owen Anderson [Mon, 29 Aug 2011 18:02:40 +0000 (18:02 +0000)]
Add testcase for r138746.

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

12 years agoUpdate the load-store optimizer for changes to the operands on LDR_PRE_IMM and LDRB_P...
Owen Anderson [Mon, 29 Aug 2011 17:59:41 +0000 (17:59 +0000)]
Update the load-store optimizer for changes to the operands on LDR_PRE_IMM and LDRB_PRE_IMM in r138653.

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

12 years agoFix a test that wasn't testing the right thing.
Matt Beaumont-Gay [Mon, 29 Aug 2011 17:54:20 +0000 (17:54 +0000)]
Fix a test that wasn't testing the right thing.

The APFloat "Zero" test was actually calling the
APFloat(const fltSemantics &, integerPart) constructor, and EXPECT_EQ was
treating 0 and -0 as equal.

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

12 years agoMove non-intruction patterns to a more appropriate place!
Bruno Cardoso Lopes [Mon, 29 Aug 2011 17:51:24 +0000 (17:51 +0000)]
Move non-intruction patterns to a more appropriate place!

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

12 years agoAdd support for parsing #-0 on non-memory-operand immediate values, and add a testcas...
Owen Anderson [Mon, 29 Aug 2011 17:17:09 +0000 (17:17 +0000)]
Add support for parsing #-0 on non-memory-operand immediate values, and add a testcase that necessitates it.

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

12 years agoReapply r138695. Fix PassManager stack depths.
Andrew Trick [Mon, 29 Aug 2011 17:07:00 +0000 (17:07 +0000)]
Reapply r138695. Fix PassManager stack depths.

Patch by Xiaoyi Guo!

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

12 years agoAdd AMDIL as valid target triple to LLVM.
Tobias Grosser [Mon, 29 Aug 2011 15:44:55 +0000 (15:44 +0000)]
Add AMDIL as valid target triple to LLVM.

Submitted by: Villmow, Micah <Micah.Villmow@amd.com>

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

12 years agoRemove premature previous commit.
Nicolas Geoffray [Sun, 28 Aug 2011 14:52:51 +0000 (14:52 +0000)]
Remove premature previous commit.

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

12 years agoFix PR5329: pay attention to constructor/destructor priority
Duncan Sands [Sun, 28 Aug 2011 13:17:22 +0000 (13:17 +0000)]
Fix PR5329: pay attention to constructor/destructor priority
when outputting them.  With this, the entire LLVM testsuite
passes when built with dragonegg.

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

12 years agoEncoding of instructions referencing segments has changed. Do what X86MCCodeEmitter...
Nicolas Geoffray [Sun, 28 Aug 2011 13:07:57 +0000 (13:07 +0000)]
Encoding of instructions referencing segments has changed. Do what X86MCCodeEmitter does.

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

12 years agoBitcasts are transitive. Bitcast-Bitcast-X becomes Bitcast-X.
Nadav Rotem [Sun, 28 Aug 2011 11:51:08 +0000 (11:51 +0000)]
Bitcasts are transitive. Bitcast-Bitcast-X becomes Bitcast-X.

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

12 years agoFix integer overflow bug in raw_ostream::write. This showed up as a
Nick Lewycky [Sun, 28 Aug 2011 03:30:02 +0000 (03:30 +0000)]
Fix integer overflow bug in raw_ostream::write. This showed up as a
non-deterministic crash in the test suite. Fixes PR10055!

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

12 years agoThe 'expected' argument to EXPECT_EQ is actually the first one;
John McCall [Sat, 27 Aug 2011 19:23:22 +0000 (19:23 +0000)]
The 'expected' argument to EXPECT_EQ is actually the first one;
flip these tests around.

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

12 years agoSilence GCC warnings and make an array const.
Benjamin Kramer [Sat, 27 Aug 2011 17:36:14 +0000 (17:36 +0000)]
Silence GCC warnings and make an array const.

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

12 years agoReport failure if there are less bytes than requested in a MemoryObject.
Benjamin Kramer [Sat, 27 Aug 2011 07:45:46 +0000 (07:45 +0000)]
Report failure if there are less bytes than requested in a MemoryObject.

Before we just left the remaining bytes uninitialized. This is another step in making llvm valgrind-clean again.

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

12 years agoReverted r138652, valgrind doesn't understand obj:*/tblgen.
Andrew Trick [Sat, 27 Aug 2011 06:17:30 +0000 (06:17 +0000)]
Reverted r138652, valgrind doesn't understand obj:*/tblgen.

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

12 years agoAuto upgrade the old EH scheme to use the new one. This is on a trial basis. If
Bill Wendling [Sat, 27 Aug 2011 06:11:03 +0000 (06:11 +0000)]
Auto upgrade the old EH scheme to use the new one. This is on a trial basis. If
things to disasterously over night, this can be reverted.

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

12 years agoReverting r138695 to see if it fixes clang self host.
Andrew Trick [Sat, 27 Aug 2011 06:10:16 +0000 (06:10 +0000)]
Reverting r138695 to see if it fixes clang self host.

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

12 years agoOnly delete instructions once.
Bill Wendling [Sat, 27 Aug 2011 06:10:02 +0000 (06:10 +0000)]
Only delete instructions once.

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

12 years agoUpdate to new EH scheme.
Bill Wendling [Sat, 27 Aug 2011 04:53:41 +0000 (04:53 +0000)]
Update to new EH scheme.

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

12 years agoCannot have an llvm.eh.exception call in a non-landing pad block.
Bill Wendling [Sat, 27 Aug 2011 04:53:28 +0000 (04:53 +0000)]
Cannot have an llvm.eh.exception call in a non-landing pad block.

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

12 years agoThese splits should be done whether they are critical edges or not.
Bill Wendling [Sat, 27 Aug 2011 04:40:37 +0000 (04:40 +0000)]
These splits should be done whether they are critical edges or not.

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

12 years agoFix PassManager stack depths.
Andrew Trick [Sat, 27 Aug 2011 02:11:03 +0000 (02:11 +0000)]
Fix PassManager stack depths.

Patch by Xiaoyi Guo!

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

12 years agoExcluding ARM JIT tests until someone can fix this compilation path.
Andrew Trick [Fri, 26 Aug 2011 23:39:30 +0000 (23:39 +0000)]
Excluding ARM JIT tests until someone can fix this compilation path.

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

12 years agoImprove encoding support for BLX with immediat eoperands, and fix a BLX decoding...
Owen Anderson [Fri, 26 Aug 2011 23:32:08 +0000 (23:32 +0000)]
Improve encoding support for BLX with immediat eoperands, and fix a BLX decoding bug this uncovered.

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

12 years agoCorrect encoding of BL with immediate offset.
Owen Anderson [Fri, 26 Aug 2011 22:54:51 +0000 (22:54 +0000)]
Correct encoding of BL with immediate offset.

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

12 years agoARM assembly parsing tweak for pldw.
Jim Grosbach [Fri, 26 Aug 2011 22:21:51 +0000 (22:21 +0000)]
ARM assembly parsing tweak for pldw.

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

12 years agoSpelling fail.
Owen Anderson [Fri, 26 Aug 2011 21:47:57 +0000 (21:47 +0000)]
Spelling fail.

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