oota-llvm.git
12 years agoFix tablegen warning: hasSideEffects is inferred for eh_sjlj_dispatchsetup.
Bob Wilson [Wed, 16 Nov 2011 17:09:59 +0000 (17:09 +0000)]
Fix tablegen warning: hasSideEffects is inferred for eh_sjlj_dispatchsetup.

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

12 years agolib/Target/ARM/CMakeLists.txt: Disable optimization in ARMISelLowering.cpp also on...
NAKAMURA Takumi [Wed, 16 Nov 2011 09:18:28 +0000 (09:18 +0000)]
lib/Target/ARM/CMakeLists.txt: Disable optimization in ARMISelLowering.cpp also on MSC15(aka VS9). Seems miscompiled.

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

12 years agoSink codegen optimization level into MCCodeGenInfo along side relocation model
Evan Cheng [Wed, 16 Nov 2011 08:38:26 +0000 (08:38 +0000)]
Sink codegen optimization level into MCCodeGenInfo along side relocation model
and code model. This eliminates the need to pass OptLevel flag all over the
place and makes it possible for any codegen pass to use this information.

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

12 years agoRecord landing pads with a SmallSetVector to avoid multiple entries.
Bob Wilson [Wed, 16 Nov 2011 07:57:21 +0000 (07:57 +0000)]
Record landing pads with a SmallSetVector to avoid multiple entries.

There may be many invokes that share one landing pad, and the previous code
would record the landing pad once for each invoke.  Besides the wasted
effort, a pair of volatile loads gets inserted every time the landing pad is
processed.  The rest of the code can get optimized away when a landing pad
is processed repeatedly, but the volatile loads remain, resulting in code like:

LBB35_18:
Ltmp483:
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r2, [r7, #-72]
        ldr     r2, [r7, #-68]
        ldr     r4, [r7, #-72]
        ldr     r2, [r7, #-68]

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

12 years agoFix the execution domain on a bunch of SSE/AVX instructions.
Craig Topper [Wed, 16 Nov 2011 07:30:46 +0000 (07:30 +0000)]
Fix the execution domain on a bunch of SSE/AVX instructions.

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

12 years agoUpdate the SP in the SjLj jmpbuf whenever it changes. <rdar://problem/10444602>
Bob Wilson [Wed, 16 Nov 2011 07:12:00 +0000 (07:12 +0000)]
Update the SP in the SjLj jmpbuf whenever it changes.  <rdar://problem/10444602>

This same basic code was in the older version of the SjLj exception handling,
but it was removed in the recent revisions to that code.  It needs to be there.

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

12 years agoFix ARM SjLj-EH dispatch setup code. <rdar://problem/10444602>
Bob Wilson [Wed, 16 Nov 2011 07:11:57 +0000 (07:11 +0000)]
Fix ARM SjLj-EH dispatch setup code. <rdar://problem/10444602>

The EmitBasePointerRecalculation function has 2 problems, one minor and one
fatal.  The minor problem is that it inserts the code at the setjmp
instead of in the dispatch block.  The fatal problem is that at the point
where this code runs, we don't know whether there will be a base pointer,
so the entire function is a no-op.  The base pointer recalculation needs to
be handled as it was before, by inserting a pseudo instruction that gets
expanded late.

Most of the support for the old approach is still here, but it no longer
has any connection to the eh_sjlj_dispatchsetup intrinsic.  Clean up the
parts related to the intrinsic and just generate the pseudo instruction
directly.

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

12 years agoRemove code to enable execution dependency fix pass on VR256. VR128 is sufficient...
Craig Topper [Wed, 16 Nov 2011 05:02:04 +0000 (05:02 +0000)]
Remove code to enable execution dependency fix pass on VR256. VR128 is sufficient after r144636.

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

12 years agoRevert r144568 now that r144730 has fixed the fast-isel kill marker bug.
Evan Cheng [Wed, 16 Nov 2011 04:55:01 +0000 (04:55 +0000)]
Revert r144568 now that r144730 has fixed the fast-isel kill marker bug.

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

12 years agoFix typo in test.
Nick Lewycky [Wed, 16 Nov 2011 03:56:38 +0000 (03:56 +0000)]
Fix typo in test.

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

12 years agoMerge isObjectPointerWithTrustworthySize with getPointerSize. Use it when
Nick Lewycky [Wed, 16 Nov 2011 03:49:48 +0000 (03:49 +0000)]
Merge isObjectPointerWithTrustworthySize with getPointerSize. Use it when
looking at the size of the pointee. Fixes PR11390!

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

12 years agoIf the 2addr instruction has other kills, don't move it below any other uses since...
Evan Cheng [Wed, 16 Nov 2011 03:47:42 +0000 (03:47 +0000)]
If the 2addr instruction has other kills, don't move it below any other uses since we don't want to extend other live ranges.

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

12 years agoRescheduleKillAboveMI() must backtrack to before the rescheduled DBG_VALUE instructio...
Evan Cheng [Wed, 16 Nov 2011 03:33:08 +0000 (03:33 +0000)]
RescheduleKillAboveMI() must backtrack to before the rescheduled DBG_VALUE instructions. rdar://10451185

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

12 years agoProcess all uses first before defs to accurately capture register liveness. rdar...
Evan Cheng [Wed, 16 Nov 2011 03:05:12 +0000 (03:05 +0000)]
Process all uses first before defs to accurately capture register liveness. rdar://10449480

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

12 years agoFix testcase.
Eli Friedman [Wed, 16 Nov 2011 03:03:52 +0000 (03:03 +0000)]
Fix testcase.

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

12 years agoCONCAT_VECTORS can have more than two operands. PR11389.
Eli Friedman [Wed, 16 Nov 2011 02:52:39 +0000 (02:52 +0000)]
CONCAT_VECTORS can have more than two operands.  PR11389.

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

12 years agoAdd a couple asserts so it will be easier to debug if we accidentally pass indexed...
Eli Friedman [Wed, 16 Nov 2011 02:43:15 +0000 (02:43 +0000)]
Add a couple asserts so it will be easier to debug if we accidentally pass indexed loads/stores to the legalizer.

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

12 years agoRemove extra ,.
Michael J. Spencer [Wed, 16 Nov 2011 01:36:50 +0000 (01:36 +0000)]
Remove extra ,.

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

12 years agoAddressSanitizer, first commit (compiler module only)
Kostya Serebryany [Wed, 16 Nov 2011 01:35:23 +0000 (01:35 +0000)]
AddressSanitizer, first commit (compiler module only)

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

12 years agoObject/Archive: Give Child a operator < for map.
Michael J. Spencer [Wed, 16 Nov 2011 01:25:13 +0000 (01:25 +0000)]
Object/Archive: Give Child a operator < for map.

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

12 years agoSupport/COFF: Add structs and enums from the standard for image files.
Michael J. Spencer [Wed, 16 Nov 2011 01:24:57 +0000 (01:24 +0000)]
Support/COFF: Add structs and enums from the standard for image files.

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

12 years agollvm-objdump: Ignore non-objects in archives.
Michael J. Spencer [Wed, 16 Nov 2011 01:24:41 +0000 (01:24 +0000)]
llvm-objdump: Ignore non-objects in archives.

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

12 years agotest commit to verify that commit access works (added blank line)
Kostya Serebryany [Wed, 16 Nov 2011 01:14:38 +0000 (01:14 +0000)]
test commit to verify that commit access works (added blank line)

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

12 years agoRename MVT::untyped to MVT::Untyped to match similar nomenclature.
Owen Anderson [Wed, 16 Nov 2011 01:02:57 +0000 (01:02 +0000)]
Rename MVT::untyped to MVT::Untyped to match similar nomenclature.

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

12 years agoFix SCEV overly optimistic back edge taken count for multi-exit loops.
Andrew Trick [Wed, 16 Nov 2011 00:52:40 +0000 (00:52 +0000)]
Fix SCEV overly optimistic back edge taken count for multi-exit loops.

Fixes PR11375: Different results for 'clang++ huh.cpp'...

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

12 years agoAdd FIXME comment.
Chad Rosier [Wed, 16 Nov 2011 00:32:20 +0000 (00:32 +0000)]
Add FIXME comment.

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

12 years agoEnable -widen-vmovs by default.
Jakob Stoklund Olesen [Tue, 15 Nov 2011 23:53:18 +0000 (23:53 +0000)]
Enable -widen-vmovs by default.

This will widen 32-bit register vmov instructions to 64-bit when
possible.  The 64-bit vmovd instructions can then be translated to NEON
vorr instructions by the execution dependency fix pass.

The copies are only widened if they are marked as clobbering the whole
D-register.

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

12 years agoStabilize the output of the dwarf accelerator tables. Fixes a comparison
Eric Christopher [Tue, 15 Nov 2011 23:37:17 +0000 (23:37 +0000)]
Stabilize the output of the dwarf accelerator tables. Fixes a comparison
failure during bootstrap with it turned on.

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

12 years agoGEPs with all zero indices are trivially coalesced by fast-isel. For example,
Chad Rosier [Tue, 15 Nov 2011 23:34:05 +0000 (23:34 +0000)]
GEPs with all zero indices are trivially coalesced by fast-isel.  For example,

%arrayidx135 = getelementptr inbounds [4 x [4 x [4 x [4 x i32]]]]* %M0, i32 0, i64 0
%arrayidx136 = getelementptr inbounds [4 x [4 x [4 x i32]]]* %arrayidx135, i32 0, i64 %idxprom134

Prior to this commit, the GEP instruction that defines %arrayidx136 thought that
%arrayidx135 was a trivial kill.  The GEP that defines %arrayidx135 doesn't
generate any code and thus %M0 gets folded into the second GEP.  Thus, we need
to look through GEPs with all zero indices.
rdar://10443319

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

12 years agoARM assembly parsing for register range syntax for VLD/VST register lists.
Jim Grosbach [Tue, 15 Nov 2011 23:19:15 +0000 (23:19 +0000)]
ARM assembly parsing for register range syntax for VLD/VST register lists.

For example,
vld1.f64 {d2-d5}, [r2,:128]!

Should be equivalent to:
vld1.f64 {d2,d3,d4,d5}, [r2,:128]!

It's not documented syntax in the ARM ARM, but it is consistent with what's
accepted for VLDM/VSTM and is unambiguous in meaning, so it's a good thing to
support.

rdar://10451128

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

12 years agoMerge ObjCPropertyDebugInfo.html into SourceLevelDebugging.html
Devang Patel [Tue, 15 Nov 2011 22:59:54 +0000 (22:59 +0000)]
Merge ObjCPropertyDebugInfo.html  into SourceLevelDebugging.html

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

12 years agoARM assembly parsing for data type suffices on NEON VMOV aliases.
Jim Grosbach [Tue, 15 Nov 2011 22:54:42 +0000 (22:54 +0000)]
ARM assembly parsing for data type suffices on NEON VMOV aliases.

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

12 years agoFix MSVC warnings by adding a cast.
Nadav Rotem [Tue, 15 Nov 2011 22:54:21 +0000 (22:54 +0000)]
Fix MSVC warnings by adding a cast.

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

12 years agoAVX: Add support for vbroadcast from BUILD_VECTOR and refactor some of the vbroadcast...
Nadav Rotem [Tue, 15 Nov 2011 22:50:37 +0000 (22:50 +0000)]
AVX: Add support for vbroadcast from BUILD_VECTOR and refactor some of the vbroadcast code.

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

12 years agojakob fixed X87 inline asm!
Chris Lattner [Tue, 15 Nov 2011 22:48:24 +0000 (22:48 +0000)]
jakob fixed X87 inline asm!

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

12 years agoadd ImmutableSet/Map dox, patch by Caitlin Sadowski!
Chris Lattner [Tue, 15 Nov 2011 22:40:14 +0000 (22:40 +0000)]
add ImmutableSet/Map dox, patch by Caitlin Sadowski!

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

12 years agotest/CodeGen/X86/dec-eflags-lower.ll: Relax expression for win32 x64.
NAKAMURA Takumi [Tue, 15 Nov 2011 22:30:37 +0000 (22:30 +0000)]
test/CodeGen/X86/dec-eflags-lower.ll: Relax expression for win32 x64.

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

12 years agoARM assembly parsing two operand forms for shift instructions.
Jim Grosbach [Tue, 15 Nov 2011 22:27:54 +0000 (22:27 +0000)]
ARM assembly parsing two operand forms for shift instructions.

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

12 years agoadd PTX backend info
Chris Lattner [Tue, 15 Nov 2011 22:23:46 +0000 (22:23 +0000)]
add PTX backend info

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

12 years agoARM VFP assembly parsing for VADD and VSUB two-operand forms.
Jim Grosbach [Tue, 15 Nov 2011 22:15:10 +0000 (22:15 +0000)]
ARM VFP assembly parsing for VADD and VSUB two-operand forms.

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

12 years agoARM accept an immediate offset in memory operands w/o the '#'.
Jim Grosbach [Tue, 15 Nov 2011 22:14:41 +0000 (22:14 +0000)]
ARM accept an immediate offset in memory operands w/o the '#'.

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

12 years agosome notes.
Chris Lattner [Tue, 15 Nov 2011 22:13:27 +0000 (22:13 +0000)]
some notes.

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

12 years agoAdded custom lowering for load->dec->store sequence in x86 when the EFLAGS registers...
Pete Cooper [Tue, 15 Nov 2011 21:57:53 +0000 (21:57 +0000)]
Added custom lowering for load->dec->store sequence in x86 when the EFLAGS registers is used
by later instructions.

Only done for DEC64m right now.

Fixes <rdar://problem/6172640>

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

12 years agoARM enclosing curly braces optional on one-register VLD/VST instruction lists.
Jim Grosbach [Tue, 15 Nov 2011 21:45:55 +0000 (21:45 +0000)]
ARM enclosing curly braces optional on one-register VLD/VST instruction lists.

'vld1.f32 d4, [r7]' should be parsed as equivalent to 'vld1.f32 {d4}, [r7]'

rdar://10450488.

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

12 years agoUpdate section "MIPS Target Improvements" in the llvm 3.0 release notes.
Akira Hatanaka [Tue, 15 Nov 2011 21:33:05 +0000 (21:33 +0000)]
Update section "MIPS Target Improvements" in the llvm 3.0 release notes.

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

12 years agoARM size suffix on VFP single-precision 'vmov' is optional.
Jim Grosbach [Tue, 15 Nov 2011 21:18:35 +0000 (21:18 +0000)]
ARM size suffix on VFP single-precision 'vmov' is optional.

rdar://10435114

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

12 years agoInsert modified DBG_VALUE into LiveDbgValueMap.
Devang Patel [Tue, 15 Nov 2011 21:03:58 +0000 (21:03 +0000)]
Insert modified DBG_VALUE into LiveDbgValueMap.

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

12 years agoFix typo.
Jim Grosbach [Tue, 15 Nov 2011 21:01:30 +0000 (21:01 +0000)]
Fix typo.

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

12 years agoARM alternate size suffices for VTRN instructions.
Jim Grosbach [Tue, 15 Nov 2011 20:49:46 +0000 (20:49 +0000)]
ARM alternate size suffices for VTRN instructions.

rdar://10435076

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

12 years agoFix a misplaced paren bug.
Owen Anderson [Tue, 15 Nov 2011 20:30:41 +0000 (20:30 +0000)]
Fix a misplaced paren bug.

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

12 years agoARM assembly parsing for optional datatype suffix on VFP VMOV GPR<->VFP insns.
Jim Grosbach [Tue, 15 Nov 2011 20:29:42 +0000 (20:29 +0000)]
ARM assembly parsing for optional datatype suffix on VFP VMOV GPR<->VFP insns.

Yet more of rdar://10435076.

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

12 years agoARM assembly parsing for two-operand form of 'mul' instruction.
Jim Grosbach [Tue, 15 Nov 2011 20:14:51 +0000 (20:14 +0000)]
ARM assembly parsing for two-operand form of 'mul' instruction.

rdar://10449856.

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

12 years agoARM assembly parsing for two-operand form of 'mul' instruction.
Jim Grosbach [Tue, 15 Nov 2011 20:02:06 +0000 (20:02 +0000)]
ARM assembly parsing for two-operand form of 'mul' instruction.

Ongoing rdar://10435114.

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

12 years agoTestcase for r144684.
Jim Grosbach [Tue, 15 Nov 2011 19:56:17 +0000 (19:56 +0000)]
Testcase for r144684.

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

12 years agoThumb2 two-operand 'mul' instruction wide encoding parsing.
Jim Grosbach [Tue, 15 Nov 2011 19:55:16 +0000 (19:55 +0000)]
Thumb2 two-operand 'mul' instruction wide encoding parsing.

rdar://10449724

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

12 years agoFix an ambiguous decoding where we failed to properly decode VMOVv2f32 and VMOVv4f32.
Owen Anderson [Tue, 15 Nov 2011 19:55:00 +0000 (19:55 +0000)]
Fix an ambiguous decoding where we failed to properly decode VMOVv2f32 and VMOVv4f32.

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

12 years agoThumb2 assembly parsing for mul.w in IT block fix.
Jim Grosbach [Tue, 15 Nov 2011 19:29:45 +0000 (19:29 +0000)]
Thumb2 assembly parsing for mul.w in IT block fix.

When the 3rd operand is not a low-register, and the first two operands are
the same low register, the parser was incorrectly trying to use the 16-bit
instruction encoding.

rdar://10449281

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

12 years agoStringRefize and simplify.
Benjamin Kramer [Tue, 15 Nov 2011 19:12:09 +0000 (19:12 +0000)]
StringRefize and simplify.

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

12 years agoWe currently use a callback to handle an IL pass deleting a BB that still
Rafael Espindola [Tue, 15 Nov 2011 19:08:46 +0000 (19:08 +0000)]
We currently use a callback to handle an IL pass deleting a BB that still
has a reference to it. Unfortunately, that doesn't work for codegen passes
since we don't get notified of MBB's being deleted (the original BB stays).

Use that fact to our advantage and after printing a function, check if
any of the IL BBs corresponds to a symbol that was not printed. This fixes
pr11202.

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

12 years agoFix functions in MipsFrameLowering.cpp and MipsRegisterInfo.cpp. Use 64-bit
Akira Hatanaka [Tue, 15 Nov 2011 18:53:55 +0000 (18:53 +0000)]
Fix functions in MipsFrameLowering.cpp and MipsRegisterInfo.cpp. Use 64-bit
registers and instructions when ABI is N64.

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

12 years agoSet nomacro before emitting the sequence of instructions that set global pointer
Akira Hatanaka [Tue, 15 Nov 2011 18:44:44 +0000 (18:44 +0000)]
Set nomacro before emitting the sequence of instructions that set global pointer
register.

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

12 years agoSimplify function PassByValArg64.
Akira Hatanaka [Tue, 15 Nov 2011 18:42:25 +0000 (18:42 +0000)]
Simplify function PassByValArg64.

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

12 years agoRemove function printMipsSymbolRef.
Akira Hatanaka [Tue, 15 Nov 2011 18:38:35 +0000 (18:38 +0000)]
Remove function printMipsSymbolRef.

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

12 years agoRemove Value::getNameStr. It has been deprecated for a while and provides no addition...
Benjamin Kramer [Tue, 15 Nov 2011 18:30:12 +0000 (18:30 +0000)]
Remove Value::getNameStr. It has been deprecated for a while and provides no additional value over getName().

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

12 years agoMissed some users of Value::getNameStr.
Benjamin Kramer [Tue, 15 Nov 2011 18:30:06 +0000 (18:30 +0000)]
Missed some users of Value::getNameStr.

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

12 years agoDelete files.
Akira Hatanaka [Tue, 15 Nov 2011 18:22:48 +0000 (18:22 +0000)]
Delete files.

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

12 years agoRemove MipsMCSymbolRefExpr.
Akira Hatanaka [Tue, 15 Nov 2011 18:20:08 +0000 (18:20 +0000)]
Remove MipsMCSymbolRefExpr.

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

12 years agoARM parsing datatype suffix variants for register-writeback VLD1/VST1 instructions.
Jim Grosbach [Tue, 15 Nov 2011 17:49:59 +0000 (17:49 +0000)]
ARM parsing datatype suffix variants for register-writeback VLD1/VST1 instructions.

rdar://10435076

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

12 years agoTidy up. 80 columns.
Jim Grosbach [Tue, 15 Nov 2011 16:46:22 +0000 (16:46 +0000)]
Tidy up. 80 columns.

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

12 years agoRemove all remaining uses of Value::getNameStr().
Benjamin Kramer [Tue, 15 Nov 2011 16:27:03 +0000 (16:27 +0000)]
Remove all remaining uses of Value::getNameStr().

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

12 years agoTwinify GraphWriter a little bit.
Benjamin Kramer [Tue, 15 Nov 2011 16:26:38 +0000 (16:26 +0000)]
Twinify GraphWriter a little bit.

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

12 years agoCheck all overlaps when looking for used registers.
Jakob Stoklund Olesen [Tue, 15 Nov 2011 08:20:43 +0000 (08:20 +0000)]
Check all overlaps when looking for used registers.

A function using any RC alias is enough to enable the ExeDepsFix pass.

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

12 years agoMake use of MachinePointerInfo::getFixedStack.
Jay Foad [Tue, 15 Nov 2011 07:51:13 +0000 (07:51 +0000)]
Make use of MachinePointerInfo::getFixedStack.

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

12 years agoRemove some unnecessary includes of PseudoSourceValue.h.
Jay Foad [Tue, 15 Nov 2011 07:50:46 +0000 (07:50 +0000)]
Remove some unnecessary includes of PseudoSourceValue.h.

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

12 years agoFix typo in comment.
Jay Foad [Tue, 15 Nov 2011 07:50:05 +0000 (07:50 +0000)]
Fix typo in comment.

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

12 years agoMake use of MachinePointerInfo::getFixedStack. This removes all mention
Jay Foad [Tue, 15 Nov 2011 07:34:52 +0000 (07:34 +0000)]
Make use of MachinePointerInfo::getFixedStack. This removes all mention
of PseudoSourceValue from lib/Target/.

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

12 years agoRemove some unnecessary includes of PseudoSourceValue.h.
Jay Foad [Tue, 15 Nov 2011 07:24:32 +0000 (07:24 +0000)]
Remove some unnecessary includes of PseudoSourceValue.h.

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

12 years agoRevert r144611 and r144613.
Jakob Stoklund Olesen [Tue, 15 Nov 2011 07:13:03 +0000 (07:13 +0000)]
Revert r144611 and r144613.

These tests are actually correct, clang was miscompiling ExeDepsFix::processUses.

Evan fixed the miscompilation in r144628.

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

12 years agoFix PR11370 for real. Prevents converting 256-bit FP instruction to AVX2 256-bit...
Craig Topper [Tue, 15 Nov 2011 06:39:01 +0000 (06:39 +0000)]
Fix PR11370 for real. Prevents converting 256-bit FP instruction to AVX2 256-bit integer instructions when AVX2 isn't enabled.

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

12 years agoSet SeenStore to true to prevent loads from being moved; also eliminates a non-determ...
Evan Cheng [Tue, 15 Nov 2011 06:26:51 +0000 (06:26 +0000)]
Set SeenStore to true to prevent loads from being moved; also eliminates a non-deterministic behavior.

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

12 years agoRather than trying to use the loop block sequence *or* the function
Chandler Carruth [Tue, 15 Nov 2011 06:26:43 +0000 (06:26 +0000)]
Rather than trying to use the loop block sequence *or* the function
block sequence when recovering from unanalyzable control flow
constructs, *always* use the function sequence. I'm not sure why I ever
went down the path of trying to use the loop sequence, it is
fundamentally not the correct sequence to use. We're trying to preserve
the incoming layout in the cases of unreasonable control flow, and that
is only encoded at the function level. We already have a filter to
select *exactly* the sub-set of blocks within the function that we're
trying to form into a chain.

The resulting code layout is also significantly better because of this.
In several places we were ending up with completely unreasonable control
flow constructs due to the ordering chosen by the loop structure for its
internal storage. This change removes a completely wasteful vector of
basic blocks, saving memory allocation in the common case even though it
costs us CPU in the fairly rare case of unnatural loops. Finally, it
fixes the latest crasher reduced out of GCC's single source. Thanks
again to Benjamin Kramer for the reduction, my bugpoint skills failed at
it.

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

12 years agoProperly qualify AVX2 specific parts of execution dependency table. Also enable conve...
Craig Topper [Tue, 15 Nov 2011 05:55:35 +0000 (05:55 +0000)]
Properly qualify AVX2 specific parts of execution dependency table. Also enable converting between 256-bit PS/PD operations when AVX1 is enabled. Fixes PR11370.

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

12 years agoinclude/llvm/Support/Compiler.h: Invalidate LLVM_ATTRIBUTE_WEAK on cygming for now.
NAKAMURA Takumi [Tue, 15 Nov 2011 05:24:26 +0000 (05:24 +0000)]
include/llvm/Support/Compiler.h: Invalidate LLVM_ATTRIBUTE_WEAK on cygming for now.

It triggers generating insane executables with both binutils-2.19.1(msysgit) and 2.22.51.20111013(cygwin).

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

12 years agoReally fix test.
Jakob Stoklund Olesen [Tue, 15 Nov 2011 03:17:01 +0000 (03:17 +0000)]
Really fix test.

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

12 years agoAllow for depencendy-breaking instructions before cvt*.
Jakob Stoklund Olesen [Tue, 15 Nov 2011 02:29:48 +0000 (02:29 +0000)]
Allow for depencendy-breaking instructions before cvt*.

This should unbreak clang-x86_64-darwin10-RA, but I can't actually
reproduce the failure.

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

12 years agoAdd vmov.f32 to materialize f32 immediate splats which cannot be handled by
Evan Cheng [Tue, 15 Nov 2011 02:12:34 +0000 (02:12 +0000)]
Add vmov.f32 to materialize f32 immediate splats which cannot be handled by
integer variants. rdar://10437054

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

12 years agoARM parsing datatype suffix variants for fixed-writeback VLD1/VST1 instructions.
Jim Grosbach [Tue, 15 Nov 2011 01:46:57 +0000 (01:46 +0000)]
ARM parsing datatype suffix variants for fixed-writeback VLD1/VST1 instructions.

rdar://10435076

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

12 years agoMove WEAK marking to the declaration.
Nick Lewycky [Tue, 15 Nov 2011 01:23:22 +0000 (01:23 +0000)]
Move WEAK marking to the declaration.

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

12 years agoBreak false dependencies before partial register updates.
Jakob Stoklund Olesen [Tue, 15 Nov 2011 01:15:30 +0000 (01:15 +0000)]
Break false dependencies before partial register updates.

Two new TargetInstrInfo hooks lets the target tell ExecutionDepsFix
about instructions with partial register updates causing false unwanted
dependencies.

The ExecutionDepsFix pass will break the false dependencies if the
updated register was written in the previoius N instructions.

The small loop added to sse-domains.ll runs twice as fast with
dependency-breaking instructions inserted.

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

12 years agoTrack register ages more accurately.
Jakob Stoklund Olesen [Tue, 15 Nov 2011 01:15:25 +0000 (01:15 +0000)]
Track register ages more accurately.

Keep track of the last instruction to define each register individually
instead of per DomainValue.  This lets us track more accurately when a
register was last written.

Also track register ages across basic blocks.  When entering a new
basic block, use the least stale predecessor def as a worst case
estimate for register age.

The register age is used to arbitrate between conflicting domains. The
most recently defined register wins.

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

12 years agoAdd ObjCPropertyDebugInfo.html
Devang Patel [Tue, 15 Nov 2011 01:14:37 +0000 (01:14 +0000)]
Add ObjCPropertyDebugInfo.html

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

12 years agoDocument debug info support for objective-c properties.
Devang Patel [Tue, 15 Nov 2011 01:11:58 +0000 (01:11 +0000)]
Document debug info support  for objective-c properties.

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

12 years agoTidy up. Formatting.
Jim Grosbach [Tue, 15 Nov 2011 01:05:12 +0000 (01:05 +0000)]
Tidy up. Formatting.

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

12 years agoFix linking for some users who already have tsan enabled code and are trying to
Nick Lewycky [Tue, 15 Nov 2011 00:14:04 +0000 (00:14 +0000)]
Fix linking for some users who already have tsan enabled code and are trying to
link it against llvm code, by making our definitions weak. "Some users."

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

12 years agoARM parsing datatype suffix variants for non-writeback VST1 instructions.
Jim Grosbach [Mon, 14 Nov 2011 23:43:46 +0000 (23:43 +0000)]
ARM parsing datatype suffix variants for non-writeback VST1 instructions.

rdar://10435076

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

12 years agoARM parsing datatype suffix variants for non-writeback VLD1 instructions.
Jim Grosbach [Mon, 14 Nov 2011 23:32:59 +0000 (23:32 +0000)]
ARM parsing datatype suffix variants for non-writeback VLD1 instructions.

rdar://10435076

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

12 years agoAdd explanatory comment.
Jim Grosbach [Mon, 14 Nov 2011 23:21:09 +0000 (23:21 +0000)]
Add explanatory comment.

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

12 years agoSplit out the plain '.{8|16|32|64}' suffix handling.
Jim Grosbach [Mon, 14 Nov 2011 23:20:14 +0000 (23:20 +0000)]
Split out the plain '.{8|16|32|64}' suffix handling.

Make it easier to deal with aliases for instructions that do require a suffix
but accept more specific variants of the same size.

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

12 years agoARM parsing optional datatype suffix for VAND/VEOR/VORR instructions.
Jim Grosbach [Mon, 14 Nov 2011 23:11:19 +0000 (23:11 +0000)]
ARM parsing optional datatype suffix for VAND/VEOR/VORR instructions.

rdar://10435076

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

12 years agoSupporting inline memmove isn't going to be worthwhile. The only way to avoid
Chad Rosier [Mon, 14 Nov 2011 23:04:09 +0000 (23:04 +0000)]
Supporting inline memmove isn't going to be worthwhile.  The only way to avoid
violating a dependency is to emit all loads prior to stores.  This would likely
cause a great deal of spillage offsetting any potential gains.

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