oota-llvm.git
12 years agoFix a corner case in updating LoopInfo after fully unrolling an outer loop.
Andrew Trick [Fri, 18 Nov 2011 03:42:41 +0000 (03:42 +0000)]
Fix a corner case in updating LoopInfo after fully unrolling an outer loop.

The loop tree's inclusive block lists are painful and expensive to
update. (I have no idea why they're inclusive). The design was
supposed to handle this case but the implementation missed it and my
unit tests weren't thorough enough.

Fixes PR11335: loop unroll update.

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

12 years agoAdd AVX2 vpbroadcast support
Nadav Rotem [Fri, 18 Nov 2011 02:49:55 +0000 (02:49 +0000)]
Add AVX2 vpbroadcast support

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

12 years ago[asan] workaround for reg alloc bug 11395: don't instrument functions with large...
Kostya Serebryany [Fri, 18 Nov 2011 01:41:06 +0000 (01:41 +0000)]
[asan] workaround for reg alloc bug 11395: don't instrument functions with large chunks of inline assembler

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

12 years agoGuard call to getRegForValue with isTypeLegal check to avoid unnecessary work/dead...
Chad Rosier [Fri, 18 Nov 2011 01:17:34 +0000 (01:17 +0000)]
Guard call to getRegForValue with isTypeLegal check to avoid unnecessary work/dead code.

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

12 years agoDISubrange supports unsigned lower/upper array bounds, so let's not fake it in the...
Devang Patel [Thu, 17 Nov 2011 23:43:15 +0000 (23:43 +0000)]
DISubrange supports unsigned lower/upper array bounds, so let's not fake it in the end while emitting DWARF. If a FE needs to encode signed lower/upper array bounds then we need to extend DISubrange or ad DISignedSubrange.

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

12 years agoquick fix: remove GlobalVariable::GlobalVariable mistakenly commited at r144933....
Kostya Serebryany [Thu, 17 Nov 2011 23:37:53 +0000 (23:37 +0000)]
quick fix: remove GlobalVariable::GlobalVariable mistakenly commited at r144933. For some reason this compiles on linux

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

12 years agoFix an overly general check in SimplifyIndvar to handle useless phi cycles.
Andrew Trick [Thu, 17 Nov 2011 23:36:35 +0000 (23:36 +0000)]
Fix an overly general check in SimplifyIndvar to handle useless phi cycles.

The right way to check for a binary operation is
cast<BinaryOperator>. The original check: cast<Instruction> &&
numOperands() == 2 would match phi "instructions", leading to an
infinite loop in extreme corner case: a useless phi with operands
[self, constant] that prior optimization passes failed to remove,
being used in the loop by another useless phi, in turn being used by an
lshr or udiv.

Fixes PR11350: runaway iteration assertion.

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

12 years agofall back to explicit list of allowed linkages when instrumenting globals in asan...
Kostya Serebryany [Thu, 17 Nov 2011 23:14:59 +0000 (23:14 +0000)]
fall back to explicit list of allowed linkages when instrumenting globals in asan; add a test check that asan does not touch linkonce_odr

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

12 years agoFix bug in RefCountedBase/RefCountedBaseVPTR where the reference count was accidental...
Ted Kremenek [Thu, 17 Nov 2011 23:02:14 +0000 (23:02 +0000)]
Fix bug in RefCountedBase/RefCountedBaseVPTR where the reference count was accidentally copied as part of the copy constructor.  This could result in objects getting leaked because there reference count was too high.

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

12 years agoAdd TODO comment.
Chad Rosier [Thu, 17 Nov 2011 21:46:13 +0000 (21:46 +0000)]
Add TODO comment.

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

12 years agoFix SSE/AVX integer comparison patterns to understand that all integer vector loads...
Craig Topper [Thu, 17 Nov 2011 07:49:38 +0000 (07:49 +0000)]
Fix SSE/AVX integer comparison patterns to understand that all integer vector loads are promoted to i64 vector loads so patterns need a bitconvert. Also slightly simplify the AVX2 variable shift patterns by using the predefined bitconvert pattern fragments.

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

12 years agoDead code.
Chad Rosier [Thu, 17 Nov 2011 07:24:49 +0000 (07:24 +0000)]
Dead code.

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

12 years agoWhen fast iseling a GEP, accumulate the offset rather than emitting a series of
Chad Rosier [Thu, 17 Nov 2011 07:15:58 +0000 (07:15 +0000)]
When fast iseling a GEP, accumulate the offset rather than emitting a series of
ADDs.  MaxOffs is used as a threshold to limit the size of the offset. Tradeoffs
being: (1) If we can't materialize the large constant then we'll cause fast-isel
to bail. (2) Too large of an offset can't be directly encoded in the ADD
resulting in a MOV+ADD.  Generally not a bad thing because otherwise we would
have had ADD+ADD, but on Thumb this turns into a MOVS+MOVT+ADD. Working on a fix
for that. (3) Conversely, too low of a threshold we'll miss opportunities to
coalesce ADDs.
rdar://10412592

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

12 years agoRemove seemingly unnecessary duplicate VROUND definitions.
Craig Topper [Thu, 17 Nov 2011 07:04:00 +0000 (07:04 +0000)]
Remove seemingly unnecessary duplicate VROUND definitions.

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

12 years agox86/windows issues fixed.
Chris Lattner [Thu, 17 Nov 2011 01:42:23 +0000 (01:42 +0000)]
x86/windows issues fixed.

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

12 years agoAdd support for custom names for library functions in TargetLibraryInfo. Add a custo...
Eli Friedman [Thu, 17 Nov 2011 01:27:36 +0000 (01:27 +0000)]
Add support for custom names for library functions in TargetLibraryInfo.  Add a custom name for fwrite and fputs on x86-32 OSX.  Make SimplifyLibCalls honor the custom
names for fwrite and fputs.

Fixes <rdar://problem/9815881>.

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

12 years agollvm-build: Attempt to work around a CMake Makefile generator bug that doesn't
Daniel Dunbar [Thu, 17 Nov 2011 01:19:53 +0000 (01:19 +0000)]
llvm-build: Attempt to work around a CMake Makefile generator bug that doesn't
properly quote strings when writing the CMakeFiles/Makefile.cmake output file
(which lists the dependencies). This shows up when using CMake + MSYS Makefile
generator.

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

12 years agoDon't unconditionally set the kill flag.
Chad Rosier [Thu, 17 Nov 2011 01:16:53 +0000 (01:16 +0000)]
Don't unconditionally set the kill flag.
rdar://10456186

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

12 years agoTurn on vzeroupper insertion on call boundaries for AVX; it works as far as I know...
Eli Friedman [Thu, 17 Nov 2011 00:21:52 +0000 (00:21 +0000)]
Turn on vzeroupper insertion on call boundaries for AVX; it works as far as I know, and I'd like to see wider testing.

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

12 years agobuild/make/test: Get rid of unused BUGPOINT_TOPTS variable.
Daniel Dunbar [Wed, 16 Nov 2011 23:56:03 +0000 (23:56 +0000)]
build/make/test: Get rid of unused BUGPOINT_TOPTS variable.

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

12 years agoMake sure to replace the chain properly when DAGCombining a LOAD+EXTRACT_VECTOR_ELT...
Eli Friedman [Wed, 16 Nov 2011 23:50:22 +0000 (23:50 +0000)]
Make sure to replace the chain properly when DAGCombining a LOAD+EXTRACT_VECTOR_ELT into a single LOAD.  Fixes PR10747/PR11393.

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

12 years agoObject/COFF: Support common symbols.
Michael J. Spencer [Wed, 16 Nov 2011 23:36:12 +0000 (23:36 +0000)]
Object/COFF: Support common symbols.

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

12 years agoRemove obsolete test.
Jim Grosbach [Wed, 16 Nov 2011 22:50:38 +0000 (22:50 +0000)]
Remove obsolete test.

The PLD encoding is checked via the .s file now.

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

12 years agoGeneralize the fixup info for ARM mode.
Jim Grosbach [Wed, 16 Nov 2011 22:48:37 +0000 (22:48 +0000)]
Generalize the fixup info for ARM mode.

We don't (yet) have the granularity in the fixups to be specific about which
bitranges are affected. That's a future cleanup, but we're not there yet.

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

12 years agoUpdate test for r144842.
Jim Grosbach [Wed, 16 Nov 2011 22:46:27 +0000 (22:46 +0000)]
Update test for r144842.

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

12 years agoLower 64-bit constant pool node.
Akira Hatanaka [Wed, 16 Nov 2011 22:44:38 +0000 (22:44 +0000)]
Lower 64-bit constant pool node.

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

12 years agoLower 64-bit block address.
Akira Hatanaka [Wed, 16 Nov 2011 22:42:10 +0000 (22:42 +0000)]
Lower 64-bit block address.

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

12 years agoFix encoding of NOP used for padding in ARM mode .align.
Jim Grosbach [Wed, 16 Nov 2011 22:40:25 +0000 (22:40 +0000)]
Fix encoding of NOP used for padding in ARM mode .align.

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

12 years agoAdd patterns for 64-bit tglobaladdr, tblockaddress, tjumptable and tconstpool
Akira Hatanaka [Wed, 16 Nov 2011 22:39:56 +0000 (22:39 +0000)]
Add patterns for 64-bit tglobaladdr, tblockaddress, tjumptable and tconstpool
nodes.

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

12 years ago64-bit jump register instruction.
Akira Hatanaka [Wed, 16 Nov 2011 22:36:01 +0000 (22:36 +0000)]
64-bit jump register instruction.

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

12 years agoAnother missing X86ISD::MOVLPD pattern. rdar://10450317
Evan Cheng [Wed, 16 Nov 2011 22:24:44 +0000 (22:24 +0000)]
Another missing X86ISD::MOVLPD pattern. rdar://10450317

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

12 years agoARM assembly parsing for shifted register operands for MOV instruction.
Jim Grosbach [Wed, 16 Nov 2011 21:50:05 +0000 (21:50 +0000)]
ARM assembly parsing for shifted register operands for MOV instruction.

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

12 years agoClean up debug printing of ARM shifted operands.
Jim Grosbach [Wed, 16 Nov 2011 21:46:50 +0000 (21:46 +0000)]
Clean up debug printing of ARM shifted operands.

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

12 years agoAdd fast-isel stats to determine who's doing all the work, the
Chad Rosier [Wed, 16 Nov 2011 21:05:28 +0000 (21:05 +0000)]
Add fast-isel stats to determine who's doing all the work, the
target-independent selector or the target-specific selector.

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

12 years agoFix the stats collection for fast-isel. The failed count was only accounting
Chad Rosier [Wed, 16 Nov 2011 21:02:08 +0000 (21:02 +0000)]
Fix the stats collection for fast-isel.  The failed count was only accounting
for a single miss and not all predecessor instructions that get selected by
the selection DAG instruction selector.  This is still not exact (e.g., over
states misses when folded/dead instructions are present), but it is a step in
the right direction.

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

12 years agoThere are already problems with building LLVM under VS2005, and it's
Chandler Carruth [Wed, 16 Nov 2011 19:52:13 +0000 (19:52 +0000)]
There are already problems with building LLVM under VS2005, and it's
quite old now. Update the documentation to reflect this, and direct
people to use VS2008 or newer.

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

12 years agoARM assmebly two operand forms for LSR, ASR, LSL, ROR register.
Jim Grosbach [Wed, 16 Nov 2011 19:12:24 +0000 (19:12 +0000)]
ARM assmebly two operand forms for LSR, ASR, LSL, ROR register.

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

12 years agoARM assembly parsing for RRX mnemonic.
Jim Grosbach [Wed, 16 Nov 2011 19:05:59 +0000 (19:05 +0000)]
ARM assembly parsing for RRX mnemonic.

rdar://9704684

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

12 years agoAdded missing comment about new custom lowering of DEC64
Pete Cooper [Wed, 16 Nov 2011 19:03:23 +0000 (19:03 +0000)]
Added missing comment about new custom lowering of DEC64

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

13 years agoDisable expensive two-address optimizations at -O0. rdar://10453055
Evan Cheng [Wed, 16 Nov 2011 18:44:48 +0000 (18:44 +0000)]
Disable expensive two-address optimizations at -O0. rdar://10453055

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

13 years agoCheck to make sure we can select the instruction before trying to put the
Chad Rosier [Wed, 16 Nov 2011 18:39:44 +0000 (18:39 +0000)]
Check to make sure we can select the instruction before trying to put the
operands into a register.  Otherwise, we may materialize dead code.

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

13 years agoDisable the assertion again. Looks like fastisel is still generating bad kill markers.
Evan Cheng [Wed, 16 Nov 2011 18:32:14 +0000 (18:32 +0000)]
Disable the assertion again. Looks like fastisel is still generating bad kill markers.

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

13 years agoARM mode aliases for bitwise instructions w/ register operands.
Jim Grosbach [Wed, 16 Nov 2011 18:31:45 +0000 (18:31 +0000)]
ARM mode aliases for bitwise instructions w/ register operands.

rdar://9704684

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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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