oota-llvm.git
13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 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

13 years agotrailing whitespace
Jim Grosbach [Thu, 2 Sep 2010 19:52:39 +0000 (19:52 +0000)]
trailing whitespace

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

13 years agoFix typo. I accidentally edited the wrong file before my last commit.
Owen Anderson [Thu, 2 Sep 2010 19:52:06 +0000 (19:52 +0000)]
Fix typo.  I accidentally edited the wrong file before my last commit.

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

13 years agoAdd AsmParser support for the ELF .previous directive. Patch by Roman Divacky.
Benjamin Kramer [Thu, 2 Sep 2010 18:53:37 +0000 (18:53 +0000)]
Add AsmParser support for the ELF .previous directive. Patch by Roman Divacky.

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

13 years agoremove trailing whitespace
Jim Grosbach [Thu, 2 Sep 2010 18:44:51 +0000 (18:44 +0000)]
remove trailing whitespace

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

13 years agoMove x86 specific shuffle mask decoding to its own header, it's also going to be...
Bruno Cardoso Lopes [Thu, 2 Sep 2010 18:40:13 +0000 (18:40 +0000)]
Move x86 specific shuffle mask decoding to its own header, it's also going to be used elsewhere. Also trim trailing whitespaces

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

13 years agoThe scavenger should just use getAllocatableSet() rather than reinventing it
Jim Grosbach [Thu, 2 Sep 2010 18:29:04 +0000 (18:29 +0000)]
The scavenger should just use getAllocatableSet() rather than reinventing it
locally.

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

13 years agoApply a patch from Kees van Reeuwijk to add support for Minix.
Dan Gohman [Thu, 2 Sep 2010 18:24:46 +0000 (18:24 +0000)]
Apply a patch from Kees van Reeuwijk to add support for Minix.

Minix apparently doesn't like double-slash separators, and there's
no apparent need for them here.

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

13 years agoFix a bug in LazyValueInfo that CorrelatedValuePropagation exposed: In the LVI lattic...
Owen Anderson [Thu, 2 Sep 2010 18:23:58 +0000 (18:23 +0000)]
Fix a bug in LazyValueInfo that CorrelatedValuePropagation exposed: In the LVI lattice, undef and the full set ConstantRange should not
be treated as equivalent.

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

13 years agohandle case where a register class is specified
Jim Grosbach [Thu, 2 Sep 2010 18:18:52 +0000 (18:18 +0000)]
handle case where a register class is specified

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

13 years agoNow that register allocation properly considers reserved regs, simplify the
Jim Grosbach [Thu, 2 Sep 2010 18:14:29 +0000 (18:14 +0000)]
Now that register allocation properly considers reserved regs, simplify the
ARM register class allocation order functions to take advantage of that.

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

13 years agoAdd a comment.
Dan Gohman [Thu, 2 Sep 2010 17:35:10 +0000 (17:35 +0000)]
Add a comment.

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

13 years agoAllow MCSA_WeakRef in ELF. Patch by Roman Divacky.
Benjamin Kramer [Thu, 2 Sep 2010 17:18:32 +0000 (17:18 +0000)]
Allow MCSA_WeakRef in ELF. Patch by Roman Divacky.

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

13 years agoAnti-dependency breaking needs to be careful not to use reserved regs
Jim Grosbach [Thu, 2 Sep 2010 17:12:55 +0000 (17:12 +0000)]
Anti-dependency breaking needs to be careful not to use reserved regs

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

13 years agoFix .debug_range for linux. Patch by Krister Wombell.
Devang Patel [Thu, 2 Sep 2010 16:43:44 +0000 (16:43 +0000)]
Fix .debug_range for linux. Patch by Krister Wombell.

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

13 years agoMask out reserved registers when constructing the set of allocatable regs.
Jim Grosbach [Thu, 2 Sep 2010 16:31:21 +0000 (16:31 +0000)]
Mask out reserved registers when constructing the set of allocatable regs.

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

13 years agoFill in a missing comment.
Bob Wilson [Thu, 2 Sep 2010 16:17:29 +0000 (16:17 +0000)]
Fill in a missing comment.

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

13 years agoConvert VLD1 and VLD2 instructions to use pseudo-instructions until
Bob Wilson [Thu, 2 Sep 2010 16:00:54 +0000 (16:00 +0000)]
Convert VLD1 and VLD2 instructions to use pseudo-instructions until
after regalloc.

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

13 years agollvmc: .dylib support.
Mikhail Glushenkov [Thu, 2 Sep 2010 14:06:21 +0000 (14:06 +0000)]
llvmc: .dylib support.

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

13 years agoPrint the number of uses of a function in the .ll since it can be informative
Duncan Sands [Thu, 2 Sep 2010 08:52:23 +0000 (08:52 +0000)]
Print the number of uses of a function in the .ll since it can be informative
and there seems to be no reason not to.

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

13 years agoAdded support for register allocators to record which intervals are spill intervals...
Lang Hames [Thu, 2 Sep 2010 08:27:00 +0000 (08:27 +0000)]
Added support for register allocators to record which intervals are spill intervals, and where the uses and defs of the original intervals were in the original code.

Spill intervals can be hidden using the "-rmf-intervals=virt-nospills*" option.

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

13 years agoReapply commit 112699, speculatively reverted by echristo, since
Duncan Sands [Thu, 2 Sep 2010 08:14:03 +0000 (08:14 +0000)]
Reapply commit 112699, speculatively reverted by echristo, since
I'm sure it is harmless.  Original commit message:
If PrototypeValue is erased in the middle of using the SSAUpdator
then the SSAUpdator may access freed memory.  Instead, simply pass
in the type and name explicitly, which is all that was used anyway.

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

13 years agoSilence an ambiguous else warning from GCC.
Chandler Carruth [Thu, 2 Sep 2010 07:08:05 +0000 (07:08 +0000)]
Silence an ambiguous else warning from GCC.

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

13 years agoFix compile errors.
Nick Lewycky [Thu, 2 Sep 2010 05:44:31 +0000 (05:44 +0000)]
Fix compile errors.

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

13 years agoAdded counters for PBQP reduction rules.
Lang Hames [Thu, 2 Sep 2010 05:37:52 +0000 (05:37 +0000)]
Added counters for PBQP reduction rules.

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

13 years agoReplace unpckl_undef and unpckh_undef matching with target specific opcodes
Bruno Cardoso Lopes [Thu, 2 Sep 2010 05:23:12 +0000 (05:23 +0000)]
Replace unpckl_undef and unpckh_undef matching with target specific opcodes

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

13 years agoMove condition out to prepare for more matching
Bruno Cardoso Lopes [Thu, 2 Sep 2010 04:20:26 +0000 (04:20 +0000)]
Move condition out to prepare for more matching

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

13 years agoRemove checking for isUNPCKL_v_undef_Mask, the specific node is already emitted for it
Bruno Cardoso Lopes [Thu, 2 Sep 2010 03:57:58 +0000 (03:57 +0000)]
Remove checking for isUNPCKL_v_undef_Mask, the specific node is already emitted for it

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

13 years agollvm::FindExecutable(): Retrieve the name with suffix.exe, if available.
NAKAMURA Takumi [Thu, 2 Sep 2010 03:46:04 +0000 (03:46 +0000)]
llvm::FindExecutable(): Retrieve the name with suffix.exe, if available.

bugpoint uses it.

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

13 years agotest/loop-strength-reduce4: Add explicit triplet for Win32 host.
NAKAMURA Takumi [Thu, 2 Sep 2010 03:45:58 +0000 (03:45 +0000)]
test/loop-strength-reduce4: Add explicit triplet for Win32 host.

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

13 years agotest/twoaddr-coalesce: Do not use @main.
NAKAMURA Takumi [Thu, 2 Sep 2010 03:45:51 +0000 (03:45 +0000)]
test/twoaddr-coalesce: Do not use @main.
Win32 codegen emits implicit invoking __main into, to fail.

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

13 years agobecome more strict about when it's safe to use X86ISD::MOVLPS
Bruno Cardoso Lopes [Thu, 2 Sep 2010 02:35:51 +0000 (02:35 +0000)]
become more strict about when it's safe to use X86ISD::MOVLPS

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

13 years agoClang's -ccc-host-triple was ignoring the arch specifier on my triple,
Eric Christopher [Thu, 2 Sep 2010 02:30:46 +0000 (02:30 +0000)]
Clang's -ccc-host-triple was ignoring the arch specifier on my triple,
I don't need to implement this quite yet - and not for ConstantInt anyhow.

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

13 years agoThis should be TargetMaterializeConstant instead.
Eric Christopher [Thu, 2 Sep 2010 01:48:11 +0000 (01:48 +0000)]
This should be TargetMaterializeConstant instead.

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

13 years agoOne definition of isThumb is plenty, thanks.
Eric Christopher [Thu, 2 Sep 2010 01:39:14 +0000 (01:39 +0000)]
One definition of isThumb is plenty, thanks.

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

13 years agoRemove trailing whitespace
Jim Grosbach [Thu, 2 Sep 2010 01:02:06 +0000 (01:02 +0000)]
Remove trailing whitespace

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

13 years agoRework arm fast-isel load and store handling. Move offset computation
Eric Christopher [Thu, 2 Sep 2010 00:53:56 +0000 (00:53 +0000)]
Rework arm fast-isel load and store handling.  Move offset computation
into the "address selection" routine and handle constant materialization
for stores.

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

13 years agoAdd a bit of debug output for register scavenging
Jim Grosbach [Thu, 2 Sep 2010 00:51:37 +0000 (00:51 +0000)]
Add a bit of debug output for register scavenging

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

13 years agoupdates to make it clear that this applies to clang and other llvm subprojects.
Chris Lattner [Thu, 2 Sep 2010 00:09:17 +0000 (00:09 +0000)]
updates to make it clear that this applies to clang and other llvm subprojects.

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

13 years agotrivial cleanup
Jim Grosbach [Thu, 2 Sep 2010 00:02:26 +0000 (00:02 +0000)]
trivial cleanup

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

13 years agoSimplify the tGPR register class now that the register allocators know not
Jim Grosbach [Wed, 1 Sep 2010 23:50:23 +0000 (23:50 +0000)]
Simplify the tGPR register class now that the register allocators know not
to try to allocate reserved registers.

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

13 years agoRemove NEON vmull, vmlal, and vmlsl intrinsics, replacing them with multiply,
Bob Wilson [Wed, 1 Sep 2010 23:50:19 +0000 (23:50 +0000)]
Remove NEON vmull, vmlal, and vmlsl intrinsics, replacing them with multiply,
add, and subtract operations with zero-extended or sign-extended vectors.
Update tests.  Add auto-upgrade support for the old intrinsics.

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

13 years agoReword this comment. Don't mention outs(), as that's not what
Dan Gohman [Wed, 1 Sep 2010 23:33:02 +0000 (23:33 +0000)]
Reword this comment. Don't mention outs(), as that's not what
this code is actually testing for.

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

13 years agodeepen my MMX/SRoA hack to avoid hurting non-x86 codegen.
Chris Lattner [Wed, 1 Sep 2010 23:09:27 +0000 (23:09 +0000)]
deepen my MMX/SRoA hack to avoid hurting non-x86 codegen.

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

13 years agoRevert r112689, avoid those kind of checks cause they mess up with mmx
Bruno Cardoso Lopes [Wed, 1 Sep 2010 22:59:03 +0000 (22:59 +0000)]
Revert r112689, avoid those kind of checks cause they mess up with mmx

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

13 years agoTweak to ignoring reserved regs. The allocator was occasionally still looking
Jim Grosbach [Wed, 1 Sep 2010 22:48:34 +0000 (22:48 +0000)]
Tweak to ignoring reserved regs. The allocator was occasionally still looking
at them since they'd end up in the register weights list. Tell it to stop
doing that.

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

13 years agoRecommit with changes. Comment out palignr for the
Dale Johannesen [Wed, 1 Sep 2010 22:43:48 +0000 (22:43 +0000)]
Recommit with changes.  Comment out palignr for the
moment, as there's a testcase that uses it and expects it
to be subject to optimizations; we won't be doing that.
Some adjustments based on feedback from Bill.

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

13 years agoUsing target specific nodes for shuffle nodes makes the mask
Bruno Cardoso Lopes [Wed, 1 Sep 2010 22:33:20 +0000 (22:33 +0000)]
Using target specific nodes for shuffle nodes makes the mask
check more strict, breaking some cases not checked in the
testsuite, but also exposes some foldings not done before,
as this example:

  movaps  (%rdi), %xmm0
  movaps  (%rax), %xmm1
  movaps  %xmm0, %xmm2
  movss %xmm1, %xmm2
  shufps  $36, %xmm2, %xmm0

now is generated as:

  movaps  (%rdi), %xmm0
  movaps  %xmm0, %xmm1
  movlps  (%rax), %xmm1
  shufps  $36, %xmm1, %xmm0

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

13 years agoSome basic store support.
Eric Christopher [Wed, 1 Sep 2010 22:16:27 +0000 (22:16 +0000)]
Some basic store support.

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

13 years agoTeach RemoveCopyByCommutingDef to check all aliases, not just subregisters.
Jakob Stoklund Olesen [Wed, 1 Sep 2010 22:15:35 +0000 (22:15 +0000)]
Teach RemoveCopyByCommutingDef to check all aliases, not just subregisters.

This caused a miscompilation in WebKit where %RAX had conflicting defs when
RemoveCopyByCommutingDef was commuting a %EAX use.

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

13 years agoApparently only Darwin passes long double misaligned. Compensate.
Dale Johannesen [Wed, 1 Sep 2010 21:57:20 +0000 (21:57 +0000)]
Apparently only Darwin passes long double misaligned.  Compensate.

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

13 years agotidy up trailing whitespace and an 80 column violation.
Jim Grosbach [Wed, 1 Sep 2010 21:48:06 +0000 (21:48 +0000)]
tidy up trailing whitespace and an 80 column violation.

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

13 years agoFix loop unswitching's assumption that a code path which either
Dan Gohman [Wed, 1 Sep 2010 21:46:45 +0000 (21:46 +0000)]
Fix loop unswitching's assumption that a code path which either
infinite loops or exits will eventually exit. This fixes PR5373.

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

13 years agoRevert 112740, it broke some clang tests somehow...
Dale Johannesen [Wed, 1 Sep 2010 21:36:44 +0000 (21:36 +0000)]
Revert 112740, it broke some clang tests somehow...

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

13 years agocleanup per feedback. use a helper function for getting the first non-reserved
Jim Grosbach [Wed, 1 Sep 2010 21:34:41 +0000 (21:34 +0000)]
cleanup per feedback. use a helper function for getting the first non-reserved
physical register in a register class. Make sure to assert if the register
class is empty.

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

13 years agoThe register allocator shouldn't consider allocating reserved registers. PBQP version.
Jim Grosbach [Wed, 1 Sep 2010 21:23:03 +0000 (21:23 +0000)]
The register allocator shouldn't consider allocating reserved registers. PBQP version.

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