oota-llvm.git
14 years agoimplement rdar://6653118 - fastisel should fold loads where possible.
Chris Lattner [Sun, 5 Sep 2010 02:18:34 +0000 (02:18 +0000)]
implement rdar://6653118 - fastisel should fold loads where possible.

Since mem2reg isn't run at -O0, we get a ton of reloads from the stack,
for example, before, this code:

int foo(int x, int y, int z) {
  return x+y+z;
}

used to compile into:

_foo:                                   ## @foo
subq $12, %rsp
movl %edi, 8(%rsp)
movl %esi, 4(%rsp)
movl %edx, (%rsp)
movl 8(%rsp), %edx
movl 4(%rsp), %esi
addl %edx, %esi
movl (%rsp), %edx
addl %esi, %edx
movl %edx, %eax
addq $12, %rsp
ret

Now we produce:

_foo:                                   ## @foo
subq $12, %rsp
movl %edi, 8(%rsp)
movl %esi, 4(%rsp)
movl %edx, (%rsp)
movl 8(%rsp), %edx
addl 4(%rsp), %edx    ## Folded load
addl (%rsp), %edx     ## Folded load
movl %edx, %eax
addq $12, %rsp
ret

Fewer instructions and less register use = faster compiles.

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

14 years agoRemove dead code.
Jakob Stoklund Olesen [Sat, 4 Sep 2010 21:09:33 +0000 (21:09 +0000)]
Remove dead code.

Clobber ranges are no longer used when joining physical registers.
Instead, all aliases are checked for interference.

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

14 years agofix this to work with allocators that have reference type with compilers
Chris Lattner [Sat, 4 Sep 2010 18:45:02 +0000 (18:45 +0000)]
fix this to work with allocators that have reference type with compilers
that diagnose invalid references to references.

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

14 years agodead method.
Chris Lattner [Sat, 4 Sep 2010 18:19:16 +0000 (18:19 +0000)]
dead method.

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

14 years agodelete dead code.
Chris Lattner [Sat, 4 Sep 2010 18:17:16 +0000 (18:17 +0000)]
delete dead code.

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

14 years agozap dead code.
Chris Lattner [Sat, 4 Sep 2010 18:12:00 +0000 (18:12 +0000)]
zap dead code.

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

14 years agoremove dead code, mblaze uses SelectAddrRegImm/SelectAddrRegReg,
Chris Lattner [Sat, 4 Sep 2010 18:02:47 +0000 (18:02 +0000)]
remove dead code, mblaze uses SelectAddrRegImm/SelectAddrRegReg,
not SelectAddr

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

14 years agozap dead code.
Chris Lattner [Sat, 4 Sep 2010 17:45:58 +0000 (17:45 +0000)]
zap dead code.

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

14 years agoRemove the last bit of isShuffleMaskLegal checks and improve the comment regarding...
Bruno Cardoso Lopes [Sat, 4 Sep 2010 02:58:56 +0000 (02:58 +0000)]
Remove the last bit of isShuffleMaskLegal checks and improve the comment regarding mmx shuffles

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

14 years agomake explicit that we not handle several mmx shuffles
Bruno Cardoso Lopes [Sat, 4 Sep 2010 02:50:13 +0000 (02:50 +0000)]
make explicit that we not handle several mmx shuffles

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

14 years agoFix LoopSimplify to notify ScalarEvolution when splitting a loop backedge
Dan Gohman [Sat, 4 Sep 2010 02:42:48 +0000 (02:42 +0000)]
Fix LoopSimplify to notify ScalarEvolution when splitting a loop backedge
into an inner loop, as the new loop iteration may differ substantially.
This fixes PR8078.

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

14 years agoEmit target specific nodes to handle palignr. Do not touch it for MMX versions yet.
Bruno Cardoso Lopes [Sat, 4 Sep 2010 02:36:07 +0000 (02:36 +0000)]
Emit target specific nodes to handle palignr. Do not touch it for MMX versions yet.

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

14 years agoEmit target specific nodes to handle splats starting at zero indicies
Bruno Cardoso Lopes [Sat, 4 Sep 2010 02:02:14 +0000 (02:02 +0000)]
Emit target specific nodes to handle splats starting at zero indicies

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

14 years agoEmit target specific nodes for isPSHUFHWMask and isPSHUFLWMask
Bruno Cardoso Lopes [Sat, 4 Sep 2010 01:36:45 +0000 (01:36 +0000)]
Emit target specific nodes for isPSHUFHWMask and isPSHUFLWMask

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

14 years agoEmit target specific nodes for isSHUFPMask
Bruno Cardoso Lopes [Sat, 4 Sep 2010 01:22:57 +0000 (01:22 +0000)]
Emit target specific nodes for isSHUFPMask

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

14 years agoPrevious isMOVLMask matching already emits targets nodes, remove check
Bruno Cardoso Lopes [Sat, 4 Sep 2010 00:50:08 +0000 (00:50 +0000)]
Previous isMOVLMask matching already emits targets nodes, remove check

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

14 years agoOne more check from the original isShuffleMaskLegal goes away
Bruno Cardoso Lopes [Sat, 4 Sep 2010 00:46:16 +0000 (00:46 +0000)]
One more check from the original isShuffleMaskLegal goes away

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

14 years agoRemove a duplicated but useless check that i've inserted in the previous commit.
Bruno Cardoso Lopes [Sat, 4 Sep 2010 00:43:12 +0000 (00:43 +0000)]
Remove a duplicated but useless check that i've inserted in the previous commit.

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

14 years agoRefactor some code and remove the extra checks for unpckl_undef and unpckh_undef
Bruno Cardoso Lopes [Sat, 4 Sep 2010 00:39:43 +0000 (00:39 +0000)]
Refactor some code and remove the extra checks for unpckl_undef and unpckh_undef

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

14 years agofix a bug in my licm rewrite when a load from the promoted memory
Chris Lattner [Sat, 4 Sep 2010 00:12:30 +0000 (00:12 +0000)]
fix a bug in my licm rewrite when a load from the promoted memory
location is being re-stored to the memory location.  We would get
a dangling pointer from the SSAUpdate data structure and miss a
use.  This fixes PR8068

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

14 years agoRemove check for unpckh mask
Bruno Cardoso Lopes [Fri, 3 Sep 2010 23:32:47 +0000 (23:32 +0000)]
Remove check for unpckh mask

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

14 years agoRemove check for unpckl mask
Bruno Cardoso Lopes [Fri, 3 Sep 2010 23:31:50 +0000 (23:31 +0000)]
Remove check for unpckl mask

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

14 years agoInline isShuffleMaskLegal into LowerVECTOR_SHUFFLE, so we can start
Bruno Cardoso Lopes [Fri, 3 Sep 2010 23:24:06 +0000 (23:24 +0000)]
Inline isShuffleMaskLegal into LowerVECTOR_SHUFFLE, so we can start
checking each standalone condition and decide whether emit target
specific nodes or remove the condition if it's already matched before.

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

14 years agoPropagate non-local comparisons. Fixes PR1757.
Owen Anderson [Fri, 3 Sep 2010 22:47:08 +0000 (22:47 +0000)]
Propagate non-local comparisons.  Fixes PR1757.

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

14 years agoReapply this increase to the number of virtual registers. All of the
Eric Christopher [Fri, 3 Sep 2010 22:46:31 +0000 (22:46 +0000)]
Reapply this increase to the number of virtual registers. All of the
various breakages appear to be dealt with.

Patch by Pekka Jääskeläinen.

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

14 years agoDisable the asserts that check that normalization is perfectly
Dan Gohman [Fri, 3 Sep 2010 22:12:56 +0000 (22:12 +0000)]
Disable the asserts that check that normalization is perfectly
invertible. ScalarEvolution's folding routines don't always succeed
in canonicalizing equal expressions to a single canonical form, and
this can cause these asserts to fail, even though there's no actual
correctness problem. This fixes PR8066.

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

14 years agoReapply considered harmfull part of rr112934 and r112942.
Bruno Cardoso Lopes [Fri, 3 Sep 2010 22:09:41 +0000 (22:09 +0000)]
Reapply considered harmfull part of rr112934 and r112942.
"Use target specific nodes instead of relying in unpckl and
unpckh pattern fragments during isel time. Also place a
depth limit in getShuffleScalarElt.

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

14 years agoprevious patch was a little too tricky for its own good. Don't try to
Jim Grosbach [Fri, 3 Sep 2010 21:45:15 +0000 (21:45 +0000)]
previous patch was a little too tricky for its own good. Don't try to
overload UserInInstr. Explicitly check Allocatable. The early exit in the
condition will mean the performance impact of the extra test should be
minimal.

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

14 years agoRemove the rest of the nonexistent 64-bit AVX instructions.
Dale Johannesen [Fri, 3 Sep 2010 21:23:00 +0000 (21:23 +0000)]
Remove the rest of the nonexistent 64-bit AVX instructions.
Bruno, please review.

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

14 years agoGeneralize getFieldType to work on all TypedInits. Add a couple of testcases from
David Greene [Fri, 3 Sep 2010 21:00:49 +0000 (21:00 +0000)]
Generalize getFieldType to work on all TypedInits.  Add a couple of testcases from
Amaury Pouly.

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

14 years agoReapply last harmless part of r112934, the pattern fragment to match X86Unpcklpd
Bruno Cardoso Lopes [Fri, 3 Sep 2010 20:44:26 +0000 (20:44 +0000)]
Reapply last harmless part of r112934, the pattern fragment to match X86Unpcklpd

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

14 years agoReintroduce a simple function refactoring done in r112934, also without any functiona...
Bruno Cardoso Lopes [Fri, 3 Sep 2010 20:20:02 +0000 (20:20 +0000)]
Reintroduce a simple function refactoring done in r112934, also without any functionality changes

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

14 years agoReapply piecies of r112942 and r112934 which don't do
Bruno Cardoso Lopes [Fri, 3 Sep 2010 20:10:35 +0000 (20:10 +0000)]
Reapply piecies of r112942 and r112934 which don't do
functional changes

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

14 years agoReapply Fix comment
Bruno Cardoso Lopes [Fri, 3 Sep 2010 19:55:05 +0000 (19:55 +0000)]
Reapply Fix comment

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

14 years agoRevert r112934, "- Use specific nodes to match unpckl masks.", which introduced
Daniel Dunbar [Fri, 3 Sep 2010 19:38:11 +0000 (19:38 +0000)]
Revert r112934, "- Use specific nodes to match unpckl masks.", which introduced
some infinite loop and select failures.
 - Apologies for eager reverting, but its branch day.

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

14 years agoRevert r112938 "Fix comment", which depends on r112934, which introduced some
Daniel Dunbar [Fri, 3 Sep 2010 19:38:08 +0000 (19:38 +0000)]
Revert r112938 "Fix comment", which depends on r112934, which introduced some
infinite loop and select failures.

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

14 years agoRevert r112942, "Use punpckh and unpckh family of nodes instead of using unpckh
Daniel Dunbar [Fri, 3 Sep 2010 19:38:05 +0000 (19:38 +0000)]
Revert r112942, "Use punpckh and unpckh family of nodes instead of using unpckh
mask pattern fragment", which depends on r112934, which introduced some infinite
loop and select failures.

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

14 years agoAdd a missing check when legalizing a vector extending load. This doesn't
Bob Wilson [Fri, 3 Sep 2010 19:20:37 +0000 (19:20 +0000)]
Add a missing check when legalizing a vector extending load.  This doesn't
solve the root problem, but it corrects the bug in the code I added to
support legalizing in the case where the non-extended type is also legal.

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

14 years agoGet rid of "passing signed into unsigned parameter" warning on PPC.
Bill Wendling [Fri, 3 Sep 2010 19:09:46 +0000 (19:09 +0000)]
Get rid of "passing signed into unsigned parameter" warning on PPC.

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

14 years agoAdd support for simplifying a load from a computed value to a load from a global...
Owen Anderson [Fri, 3 Sep 2010 19:08:37 +0000 (19:08 +0000)]
Add support for simplifying a load from a computed value to a load from a global when it
is provable that they're equivalent.  This fixes PR4855.

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

14 years agoQuiesce warning about non-virtual d'tor in virtual class.
Bill Wendling [Fri, 3 Sep 2010 18:41:20 +0000 (18:41 +0000)]
Quiesce warning about non-virtual d'tor in virtual class.

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

14 years agoRe-apply r112883:
Jim Grosbach [Fri, 3 Sep 2010 18:37:12 +0000 (18:37 +0000)]
Re-apply r112883:
"For ARM stack frames that utilize variable sized objects and have either
large local stack areas or require dynamic stack realignment, allocate a
base register via which to access the local frame. This allows efficient
access to frame indices not accessible via the FP (either due to being out
of range or due to dynamic realignment) or the SP (due to variable sized
object allocation). In particular, this greatly improves efficiency of access
to spill slots in Thumb functions which contain VLAs."

r112986 fixed a latent bug exposed by the above.

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

14 years agoVirtRegRewriter checks for early clobbers before it reuses an available stack
Jakob Stoklund Olesen [Fri, 3 Sep 2010 18:36:56 +0000 (18:36 +0000)]
VirtRegRewriter checks for early clobbers before it reuses an available stack
slot.

Teach it to also check for early clobbered aliases, and early clobber operands
following the current operand.

This fixes the miscompilation in PR8044 where EC registers eax and ecx were
being used for inputs.

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

14 years agoAdd a test for PR4413, which was apparently fixed at some point in the past.
Owen Anderson [Fri, 3 Sep 2010 18:33:08 +0000 (18:33 +0000)]
Add a test for PR4413, which was apparently fixed at some point in the past.

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

14 years agoCheck the local frame alignment for determining whether dynamic stack
Jim Grosbach [Fri, 3 Sep 2010 18:28:19 +0000 (18:28 +0000)]
Check the local frame alignment for determining whether dynamic stack
alignment should be performed. Otherwise dynamic realignment may trigger
when the register allocator has already used the frame pointer as a general
purpose register. That is, we need to make sure that the list of reserved
registers doesn't change after register allocation.

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

14 years agoAdd 'const' to getter function.
Jim Grosbach [Fri, 3 Sep 2010 18:17:16 +0000 (18:17 +0000)]
Add 'const' to getter function.

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

14 years agoFinish converting the rest of the NEON VLD instructions to use pseudo-
Bob Wilson [Fri, 3 Sep 2010 18:16:02 +0000 (18:16 +0000)]
Finish converting the rest of the NEON VLD instructions to use pseudo-
instructions prior to regalloc.  Since it's getting a little close to
the 2.8 branch deadline, I'll have to leave the rest of the instructions
handled by the NEONPreAllocPass for now, but I didn't want to leave half
of the VLD instructions converted and the other half not.

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

14 years agoRemove a TODO comment; this is now filed in bugzilla (PR8005).
Dan Gohman [Fri, 3 Sep 2010 18:06:11 +0000 (18:06 +0000)]
Remove a TODO comment; this is now filed in bugzilla (PR8005).

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

14 years agoFix Windows stuff to follow the existing source organization.
Dan Gohman [Fri, 3 Sep 2010 17:29:33 +0000 (17:29 +0000)]
Fix Windows stuff to follow the existing source organization.

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

14 years agoAdd PR number to test.
Owen Anderson [Fri, 3 Sep 2010 16:58:25 +0000 (16:58 +0000)]
Add PR number to test.

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

14 years agoRename 'libprofile/exported_symbols.lst' to 'libprofile/libprofile.exports'.
Mikhail Glushenkov [Fri, 3 Sep 2010 15:42:45 +0000 (15:42 +0000)]
Rename 'libprofile/exported_symbols.lst' to 'libprofile/libprofile.exports'.

Makefile.rules assumes that all EXPORTED_SYMBOL_FILEs have the .exports
extension.

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

14 years agoRevert "Rules for win32 ld shouldn't fire when cross-compiling."
Mikhail Glushenkov [Fri, 3 Sep 2010 15:42:38 +0000 (15:42 +0000)]
Revert "Rules for win32 ld shouldn't fire when cross-compiling."

This reverts commit 012b374e5b46fe93a8fdf605f5929fa8239e0960.

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

14 years agoRevert "For ARM stack frames that utilize variable sized objects and have either...
Daniel Dunbar [Fri, 3 Sep 2010 15:26:42 +0000 (15:26 +0000)]
Revert "For ARM stack frames that utilize variable sized objects and have either", it is breaking oggenc with Clang for ARMv6.

This reverts commit 8d6e29cfda270be483abf638850311670829ee65.

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

14 years agoZap dead code.
Benjamin Kramer [Fri, 3 Sep 2010 12:13:18 +0000 (12:13 +0000)]
Zap dead code.

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

14 years agoRules for win32 ld shouldn't fire when cross-compiling.
Mikhail Glushenkov [Fri, 3 Sep 2010 09:57:52 +0000 (09:57 +0000)]
Rules for win32 ld shouldn't fire when cross-compiling.

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

14 years agoReapply commit 112702 which was speculatively reverted by echristo.
Duncan Sands [Fri, 3 Sep 2010 08:31:48 +0000 (08:31 +0000)]
Reapply commit 112702 which was speculatively reverted by echristo.
Original commit message:
Use the SSAUpdator to turn calls to eh.exception that are not in a
landing pad into uses of registers rather than loads from a stack
slot.  Doesn't touch the 'orrible hack code - Bill needs to persuade
me harder :)

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

14 years agoRe-enable CorrelatedValuePropagation. I've tested nightly tests, llvm-gcc
Owen Anderson [Fri, 3 Sep 2010 04:16:28 +0000 (04:16 +0000)]
Re-enable CorrelatedValuePropagation.  I've tested nightly tests, llvm-gcc
bootstrap, and clang self-host.

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

14 years agotest/CodeGen/X86: Add explicit -mtriple=(i686|x86_64)-linux for Win32 host.
NAKAMURA Takumi [Fri, 3 Sep 2010 03:24:08 +0000 (03:24 +0000)]
test/CodeGen/X86: Add explicit -mtriple=(i686|x86_64)-linux for Win32 host.

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

14 years agoFix cmake build without native target selected.
Oscar Fuentes [Fri, 3 Sep 2010 02:22:23 +0000 (02:22 +0000)]
Fix cmake build without native target selected.

The cmake (+ MSVC) build is broken if you don't select your native
target.

e.g. 'cmake -D LLVM_TARGETS_TO_BUILD="MyNonNativeTarget" .'

This is because cmake currently sets the LLVM_NATIVE_* definitions
regardless of whether the native target is selected (causing build
errors).

Patch by Mike Gist!

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

14 years agoAVX doesn't support mm operations neither its instrinsics.
Bruno Cardoso Lopes [Fri, 3 Sep 2010 02:08:45 +0000 (02:08 +0000)]
AVX doesn't support mm operations neither its instrinsics.
The AVX versions of PALIGN and PABS* should only exist for
128-bit. Remove the unnecessary stuff.

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

14 years agoUse punpckh and unpckh family of nodes instead of using unpckh mask pattern fragment
Bruno Cardoso Lopes [Fri, 3 Sep 2010 01:39:08 +0000 (01:39 +0000)]
Use punpckh and unpckh family of nodes instead of using unpckh mask pattern fragment

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

14 years agoReplace NEON vabdl, vaba, and vabal intrinsics with combinations of the
Bob Wilson [Fri, 3 Sep 2010 01:35:08 +0000 (01:35 +0000)]
Replace NEON vabdl, vaba, and vabal intrinsics with combinations of the
vabd intrinsic and add and/or zext operations.  In the case of vaba, this
also avoids the need for a DAG combine pattern to combine vabd with add.
Update tests.  Auto-upgrade the old intrinsics.

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

14 years agoFix comment
Bruno Cardoso Lopes [Fri, 3 Sep 2010 01:28:51 +0000 (01:28 +0000)]
Fix comment

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

14 years ago- Use specific nodes to match unpckl masks.
Bruno Cardoso Lopes [Fri, 3 Sep 2010 01:24:00 +0000 (01:24 +0000)]
- Use specific nodes to match unpckl masks.
- Teach getShuffleScalarElt how to handle more target
specific nodes, so the DAGCombine can make use of it.
- Add another hack to avoid the node update problem
during legalization. More description on the comments

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

14 years agoStop emitting predicate functions. They are no longer used.
Jakob Stoklund Olesen [Fri, 3 Sep 2010 00:39:50 +0000 (00:39 +0000)]
Stop emitting predicate functions. They are no longer used.

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

14 years agoSimple branch instruction support.
Eric Christopher [Fri, 3 Sep 2010 00:35:47 +0000 (00:35 +0000)]
Simple branch instruction support.

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

14 years agoDon't call Predicate_* from X86 target.
Jakob Stoklund Olesen [Fri, 3 Sep 2010 00:35:18 +0000 (00:35 +0000)]
Don't call Predicate_* from X86 target.

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

14 years agoRemove Predicate_* calls from MBlaze and XCore
Jakob Stoklund Olesen [Fri, 3 Sep 2010 00:35:16 +0000 (00:35 +0000)]
Remove Predicate_* calls from MBlaze and XCore

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

14 years agoRemove Predicate_* calls from Mips
Jakob Stoklund Olesen [Fri, 3 Sep 2010 00:35:13 +0000 (00:35 +0000)]
Remove Predicate_* calls from Mips

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

14 years agoAdd basic support for materializing constants (including fp) and
Eric Christopher [Thu, 2 Sep 2010 23:43:26 +0000 (23:43 +0000)]
Add basic support for materializing constants (including fp) and
stores.

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

14 years agoupdate one more test
Chris Lattner [Thu, 2 Sep 2010 23:32:55 +0000 (23:32 +0000)]
update one more test

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

14 years agothis is a release note worthy change.
Chris Lattner [Thu, 2 Sep 2010 23:22:50 +0000 (23:22 +0000)]
this is a release note worthy change.

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

14 years agoadd a new "llvm-dis -show-annotations" option, which causes it to print
Chris Lattner [Thu, 2 Sep 2010 23:21:44 +0000 (23:21 +0000)]
add a new "llvm-dis -show-annotations" option, which causes it to print
#uses comments, with a testcase.

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

14 years agolets get crazy and name the header file the exact class name,
Chris Lattner [Thu, 2 Sep 2010 23:09:42 +0000 (23:09 +0000)]
lets get crazy and name the header file the exact class name,
not a scrunched version of it.

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

14 years agoAsmPrinter has a formatted stream, pass it down through AsmAnnotationWriter
Chris Lattner [Thu, 2 Sep 2010 23:07:12 +0000 (23:07 +0000)]
AsmPrinter has a formatted stream, pass it down through AsmAnnotationWriter

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

14 years agoProperly emit __chkstk call instead of __alloca on non-mingw windows targets.
Anton Korobeynikov [Thu, 2 Sep 2010 23:03:46 +0000 (23:03 +0000)]
Properly emit __chkstk call instead of __alloca on non-mingw windows targets.
Patch by Cameron Esfahani!

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

14 years agostop forcing a noop AssemblyAnnotationWriter to silence #uses
Chris Lattner [Thu, 2 Sep 2010 23:03:10 +0000 (23:03 +0000)]
stop forcing a noop AssemblyAnnotationWriter to silence #uses
comments, these don't happen anymore.

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

14 years agoThere is no need to use .set here.
Devang Patel [Thu, 2 Sep 2010 23:01:10 +0000 (23:01 +0000)]
There is no need to use .set here.
Thanks Chris!

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

14 years agoreapply 112894:
Chris Lattner [Thu, 2 Sep 2010 22:52:10 +0000 (22:52 +0000)]
reapply 112894:

Remove #uses comments from functions: they we're padded out to column 50
and were potentially confusing for externally visible functions.

going further, remove the "<i8**> [#uses=3]" comments entirely. They
add a lot of noise, confuse people about what the IR is, and don't add
any particular value.  When the types are long it makes it really really
hard to read IR.

If someone is interested in this sort of thing, the right way to do this
is to implement an AsmAnnotationWriter that produces the same output, and
add a flag to llvm-dis (only) to produce this output.

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

14 years agoMove insertps mask decoding to header file
Bruno Cardoso Lopes [Thu, 2 Sep 2010 22:43:39 +0000 (22:43 +0000)]
Move insertps mask decoding to header file

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

14 years agorevert patch, need to update clang tests too
Chris Lattner [Thu, 2 Sep 2010 22:42:07 +0000 (22:42 +0000)]
revert patch, need to update clang tests too

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

14 years agoRemove #uses comments from functions: they we're padded out to column 50
Chris Lattner [Thu, 2 Sep 2010 22:41:24 +0000 (22:41 +0000)]
Remove #uses comments from functions: they we're padded out to column 50
and were potentially confusing for externally visible functions.

going further, remove the "<i8**> [#uses=3]" comments entirely. They
add a lot of noise, confuse people about what the IR is, and don't add
any particular value.  When the types are long it makes it really really
hard to read IR.

If someone is interested in this sort of thing, the right way to do this
is to implement an AsmAnnotationWriter that produces the same output, and
add a flag to llvm-dis (only) to produce this output.

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

14 years agomore test cleanup
Chris Lattner [Thu, 2 Sep 2010 22:38:56 +0000 (22:38 +0000)]
more test cleanup

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

14 years agoremove some noise from tests.
Chris Lattner [Thu, 2 Sep 2010 22:35:33 +0000 (22:35 +0000)]
remove some noise from tests.

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

14 years agoUse the FindProgramByName fallback only with known absolute paths.
Dan Gohman [Thu, 2 Sep 2010 22:32:38 +0000 (22:32 +0000)]
Use the FindProgramByName fallback only with known absolute paths.
I wasn't able to convince myself that all GetMainExecutable
implementations always return absolute paths; this prevents
unexpected behavior in case they ever don't.

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

14 years agowe are past the point where these tests are useful.
Chris Lattner [Thu, 2 Sep 2010 22:32:02 +0000 (22:32 +0000)]
we are past the point where these tests are useful.

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

14 years agoRevert int_x86_mmx_palignr_b intrinsic to match llvm-gcc's version.
Bill Wendling [Thu, 2 Sep 2010 22:31:53 +0000 (22:31 +0000)]
Revert int_x86_mmx_palignr_b intrinsic to match llvm-gcc's version.

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

14 years agoRevert win64 changes. They seem to be incomplete
Anton Korobeynikov [Thu, 2 Sep 2010 22:31:32 +0000 (22:31 +0000)]
Revert win64 changes. They seem to be incomplete

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

14 years agoFor ARM stack frames that utilize variable sized objects and have either
Jim Grosbach [Thu, 2 Sep 2010 22:29:01 +0000 (22:29 +0000)]
For ARM stack frames that utilize variable sized objects and have either
large local stack areas or require dynamic stack realignment, allocate a
base register via which to access the local frame. This allows efficient
access to frame indices not accessible via the FP (either due to being out
of range or due to dynamic realignment) or the SP (due to variable sized
object allocation). In particular, this greatly improves efficiency of access
to spill slots in Thumb functions which contain VLAs.

rdar://7352504
rdar://8374540
rdar://8355680

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

14 years ago- Change __builtin_ia32_palignr intrinsic type to match the pattern in clang.
Bill Wendling [Thu, 2 Sep 2010 22:26:35 +0000 (22:26 +0000)]
- Change __builtin_ia32_palignr intrinsic type to match the pattern in clang.

- Add patterns to match the following MMX builtins:

   * __builtin_ia32_vec_init_v8qi
   * __builtin_ia32_vec_init_v4hi
   * __builtin_ia32_vec_init_v2si
   * __builtin_ia32_vec_ext_v2si

  These builtins do not correspond to a single MMX instruction. They will have
  to be lowered -- most likely in the back-end.

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

14 years agofix more AST updating bugs, correcting miscompilation in PR8041
Chris Lattner [Thu, 2 Sep 2010 22:19:10 +0000 (22:19 +0000)]
fix more AST updating bugs, correcting miscompilation in PR8041

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

14 years agoRemove incorrect and poorly tested code for trying to reason about values on default...
Owen Anderson [Thu, 2 Sep 2010 22:16:52 +0000 (22:16 +0000)]
Remove incorrect and poorly tested code for trying to reason about values on default edges of
switches.  Just return the conservatively correct answer.

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

14 years agoProperly allocate win64 shadow reg area.
Anton Korobeynikov [Thu, 2 Sep 2010 22:16:28 +0000 (22:16 +0000)]
Properly allocate win64 shadow reg area.
Patch by Jan Sjodin!

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

14 years agoRemove obsolete comments about throwing exceptions.
Dan Gohman [Thu, 2 Sep 2010 22:14:51 +0000 (22:14 +0000)]
Remove obsolete comments about throwing exceptions.

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

14 years agoAfter some discussion with djg, teach SmallVector to grow from a zero
John McCall [Thu, 2 Sep 2010 21:55:03 +0000 (21:55 +0000)]
After some discussion with djg, teach SmallVector to grow from a zero
capacity and remove the workaround in SmallVector<T,0>.  There are some
theoretical benefits to a N->2N+1 growth policy anyway.

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

14 years agoMove decoding of insertps back to avoid unused warnings in x86 isel lowering, and...
Bruno Cardoso Lopes [Thu, 2 Sep 2010 21:51:11 +0000 (21:51 +0000)]
Move decoding of insertps back to avoid unused warnings in x86 isel lowering, and fix movlhps/movhlps to decode 4 elements shuffles

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

14 years agoDetect undef value early and save unnecessary NodeMap query.
Devang Patel [Thu, 2 Sep 2010 21:29:42 +0000 (21:29 +0000)]
Detect undef value early and save unnecessary NodeMap query.

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

14 years agoDon't narrow the load and store in a load+twiddle+store sequence unless
Dan Gohman [Thu, 2 Sep 2010 21:18:42 +0000 (21:18 +0000)]
Don't narrow the load and store in a load+twiddle+store sequence unless
there are clearly no stores between the load and the store. This fixes
this miscompile reported as PR7833.

This breaks the test/CodeGen/X86/narrow_op-2.ll optimization, which is
safe, but awkward to prove safe. Move it to X86's README.txt.

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

14 years agoTidy up.
Devang Patel [Thu, 2 Sep 2010 21:02:27 +0000 (21:02 +0000)]
Tidy up.

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

14 years agoFix an unnecessary XFAIL
Sandeep Patel [Thu, 2 Sep 2010 20:19:24 +0000 (20:19 +0000)]
Fix an unnecessary XFAIL

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