oota-llvm.git
14 years agodisable SmallVectorImpl's copy constructor. This prevents a class
Chris Lattner [Tue, 15 Jun 2010 18:59:43 +0000 (18:59 +0000)]
disable SmallVectorImpl's copy constructor.  This prevents a class
of base class slicing bugs reported on irc

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

14 years agoIfConversion's AnalyzeBlocks method always returns false; clean it up.
Bob Wilson [Tue, 15 Jun 2010 18:57:15 +0000 (18:57 +0000)]
IfConversion's AnalyzeBlocks method always returns false; clean it up.

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

14 years agofix naming
Jim Grosbach [Tue, 15 Jun 2010 18:53:34 +0000 (18:53 +0000)]
fix naming

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

14 years agoFix an exotic bug that only showed up in an internal test case.
Jakob Stoklund Olesen [Tue, 15 Jun 2010 18:49:14 +0000 (18:49 +0000)]
Fix an exotic bug that only showed up in an internal test case.

SimpleRegisterCoalescing::JoinIntervals() uses CoalescerPair to determine if a
copy is coalescable, and in very rare cases it can return true where LHS is not
live - the coalescable copy can come from an alias of the physreg in LHS.

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

14 years agoFix a comment typo.
Bob Wilson [Tue, 15 Jun 2010 18:19:27 +0000 (18:19 +0000)]
Fix a comment typo.

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

14 years agoRemove stray semi-colon.
Daniel Dunbar [Tue, 15 Jun 2010 17:47:24 +0000 (17:47 +0000)]
Remove stray semi-colon.

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

14 years agoAdd some missing checks for the case where the extract_subregs are
Bob Wilson [Tue, 15 Jun 2010 17:27:54 +0000 (17:27 +0000)]
Add some missing checks for the case where the extract_subregs are
combined to an insert_subreg, i.e., where the destination register is larger
than the source.  We need to check that the subregs can be composed for that
case in a symmetrical way to the case when the destination is smaller.

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

14 years agoAvoid processing early clobbers twice in RegAllocFast.
Jakob Stoklund Olesen [Tue, 15 Jun 2010 16:20:57 +0000 (16:20 +0000)]
Avoid processing early clobbers twice in RegAllocFast.

Early clobbers defining a virtual register were first alocated to a physreg and
then processed as a physreg EC, spilling the virtreg.

This fixes PR7382.

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

14 years agoAdd CoalescerPair helper class.
Jakob Stoklund Olesen [Tue, 15 Jun 2010 16:04:21 +0000 (16:04 +0000)]
Add CoalescerPair helper class.

Given a copy instruction, CoalescerPair can determine which registers to
coalesce in order to eliminate the copy. It deals with all the subreg fun to
determine a tuple (DstReg, SrcReg, SubIdx) such that:

- SrcReg is a virtual register that will disappear after coalescing.
- DstReg is a virtual or physical register whose live range will be extended.
- SubIdx is 0 when DstReg is a physical register.
- SrcReg can be joined with DstReg:SubIdx.

CoalescerPair::isCoalescable() determines if another copy instruction is
compatible with the same tuple. This fixes some NEON miscompilations where
shuffles are getting coalesced as if they were copies.

The CoalescerPair class will replace a lot of the spaghetti logic in JoinCopy
later.

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

14 years agoAdd <cstddef> include to get ptrdiff_t, for gcc-4.6; patch by Dimitry Andric.
Daniel Dunbar [Tue, 15 Jun 2010 14:50:42 +0000 (14:50 +0000)]
Add <cstddef> include to get ptrdiff_t, for gcc-4.6; patch by Dimitry Andric.

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

14 years agoGeneralize the pre-coalescing of extract_subregs feeding reg_sequences,
Bob Wilson [Tue, 15 Jun 2010 05:56:31 +0000 (05:56 +0000)]
Generalize the pre-coalescing of extract_subregs feeding reg_sequences,
replacing the overly conservative checks that I had introduced recently to
deal with correctness issues.  This makes a pretty noticable difference
in our testcases where reg_sequences are used.  I've updated one test to
check that we no longer emit the unnecessary subreg moves.

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

14 years agoVMOVQQ and VMOVQQQQ are pseudo instructions and not predicable.
Bob Wilson [Tue, 15 Jun 2010 05:51:27 +0000 (05:51 +0000)]
VMOVQQ and VMOVQQQQ are pseudo instructions and not predicable.

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

14 years agoRevert 105986; looks like I'd better try bootstrapping.
Dale Johannesen [Tue, 15 Jun 2010 04:55:06 +0000 (04:55 +0000)]
Revert 105986; looks like I'd better try bootstrapping.

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

14 years agoUpdate CMake build.
Ted Kremenek [Tue, 15 Jun 2010 04:08:14 +0000 (04:08 +0000)]
Update CMake build.

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

14 years agoThe form of BuildMI used for TAILJMPr was changing the register
Dale Johannesen [Tue, 15 Jun 2010 03:13:49 +0000 (03:13 +0000)]
The form of BuildMI used for TAILJMPr was changing the register
containing the target address, an input, into an output.  I don't
think this actually broke anything on x86 (it does on ARM), but
it's wrong.

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

14 years agoMake sure to skip dbg_value instructions when finding an insertion point for
Jim Grosbach [Tue, 15 Jun 2010 00:41:09 +0000 (00:41 +0000)]
Make sure to skip dbg_value instructions when finding an insertion point for
the combined load/store instruction. rdar://7797940

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

14 years agoAdd missing include to unbreak the build.
Sean Hunt [Mon, 14 Jun 2010 22:44:26 +0000 (22:44 +0000)]
Add missing include to unbreak the build.

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

14 years agogenerate better code in CheckComplexPattern
Chris Lattner [Mon, 14 Jun 2010 22:33:34 +0000 (22:33 +0000)]
generate better code in CheckComplexPattern

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

14 years agoRename functions referring to VMOV immediates to refer to NEON "modified
Bob Wilson [Mon, 14 Jun 2010 22:19:57 +0000 (22:19 +0000)]
Rename functions referring to VMOV immediates to refer to NEON "modified
immediate" operands.  These functions have so far only been used for VMOV
but they also apply to other NEON instructions with modified immediate
operands.  No functional changes.

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

14 years agoMore dbg_value cleanup so the presence of debug info doesn't affect code-gen.
Jim Grosbach [Mon, 14 Jun 2010 21:30:32 +0000 (21:30 +0000)]
More dbg_value cleanup so the presence of debug info doesn't affect code-gen.
Make sure to skip the dbg_value instructions when moving dups out of the
diamond. rdar://7797940

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

14 years agoDon't produce output only if *all* files are unused.
Rafael Espindola [Mon, 14 Jun 2010 21:20:52 +0000 (21:20 +0000)]
Don't produce output only if *all* files are unused.

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

14 years ago- Do away with SimpleHazardRecognizer.h. It's not used and offers little value.
Evan Cheng [Mon, 14 Jun 2010 21:06:53 +0000 (21:06 +0000)]
- Do away with SimpleHazardRecognizer.h. It's not used and offers little value.
- Rename ExactHazardRecognizer to PostRAHazardRecognizer and move its header to include to allow targets to extend it.

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

14 years agoapparently lots of dupes.
Chris Lattner [Mon, 14 Jun 2010 20:19:03 +0000 (20:19 +0000)]
apparently lots of dupes.

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

14 years agoAvoid uncessary array copying.
Evan Cheng [Mon, 14 Jun 2010 20:18:40 +0000 (20:18 +0000)]
Avoid uncessary array copying.

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

14 years agofix a nasty bug where we were not treating available_externally
Chris Lattner [Mon, 14 Jun 2010 20:11:56 +0000 (20:11 +0000)]
fix a nasty bug where we were not treating available_externally
symbols as declarations in the X86 backend.  This would manifest
on darwin x86-32 as errors like this with -fvisibility=hidden:

symbol '__ZNSbIcED1Ev' can not be undefined in a subtraction expression

This fixes PR7353.

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

14 years agoremove old test.
Chris Lattner [Mon, 14 Jun 2010 20:07:43 +0000 (20:07 +0000)]
remove old test.

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

14 years agorename test
Chris Lattner [Mon, 14 Jun 2010 20:07:34 +0000 (20:07 +0000)]
rename test

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

14 years agojump threading can't split a critical edge from an indirectbr. This
Chris Lattner [Mon, 14 Jun 2010 19:45:43 +0000 (19:45 +0000)]
jump threading can't split a critical edge from an indirectbr.  This
fixes PR7356.

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

14 years agoTest case for Radar 8004649.
Stuart Hastings [Mon, 14 Jun 2010 18:37:04 +0000 (18:37 +0000)]
Test case for Radar 8004649.

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

14 years agoFix a comment typo.
Bob Wilson [Mon, 14 Jun 2010 18:29:23 +0000 (18:29 +0000)]
Fix a comment typo.

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

14 years agofix a -Wbool-conversions warning from clang.
Chris Lattner [Mon, 14 Jun 2010 18:28:57 +0000 (18:28 +0000)]
fix a -Wbool-conversions warning from clang.

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

14 years agofix a -Wbool-conversions warning from clang.
Chris Lattner [Mon, 14 Jun 2010 18:28:34 +0000 (18:28 +0000)]
fix a -Wbool-conversions warning from clang.

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

14 years agoHonor the SDKROOT setting when building llvm.
Bob Wilson [Mon, 14 Jun 2010 17:56:25 +0000 (17:56 +0000)]
Honor the SDKROOT setting when building llvm.
Radar 7894069.

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

14 years agoAdd back some possible optimizations for va_arg, with wording that makes it
Eli Friedman [Mon, 14 Jun 2010 07:03:30 +0000 (07:03 +0000)]
Add back some possible optimizations for va_arg, with wording that makes it
more clear what exactly is missing.

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

14 years agoUpdate html tutorial docs to match api changes.
Eric Christopher [Mon, 14 Jun 2010 06:09:39 +0000 (06:09 +0000)]
Update html tutorial docs to match api changes.

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

14 years agoMake kaleidoscope use fp add/sub/mul.
Eric Christopher [Mon, 14 Jun 2010 06:03:16 +0000 (06:03 +0000)]
Make kaleidoscope use fp add/sub/mul.

Patch by Patrick Flannery!

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

14 years agoAdd the last of the SemaChecking-gen code.
Nate Begeman [Mon, 14 Jun 2010 05:17:23 +0000 (05:17 +0000)]
Add the last of the SemaChecking-gen code.

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

14 years agoTest case for r105914.
Benjamin Kramer [Sun, 13 Jun 2010 16:16:54 +0000 (16:16 +0000)]
Test case for r105914.

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

14 years agoSimplifyCFG: don't turn volatile stores to null/undef into unreachable. Fixes PR7369.
Benjamin Kramer [Sun, 13 Jun 2010 14:35:54 +0000 (14:35 +0000)]
SimplifyCFG: don't turn volatile stores to null/undef into unreachable. Fixes PR7369.

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

14 years agoLet SmallVector take advantage of LiveRange's podness.
Benjamin Kramer [Sun, 13 Jun 2010 12:52:38 +0000 (12:52 +0000)]
Let SmallVector take advantage of LiveRange's podness.

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

14 years agoAdd a helping of comments
Nate Begeman [Sun, 13 Jun 2010 04:47:03 +0000 (04:47 +0000)]
Add a helping of comments
Add code for generating bits of semachecking

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

14 years agoMerge getStoreRegOpcode and getLoadRegOpcode.
Rafael Espindola [Sat, 12 Jun 2010 20:13:29 +0000 (20:13 +0000)]
Merge getStoreRegOpcode and getLoadRegOpcode.

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

14 years agotests: Run macho-dump with binary unbuffered streams on Windows, I can't find a Pytho...
Daniel Dunbar [Sat, 12 Jun 2010 17:05:28 +0000 (17:05 +0000)]
tests: Run macho-dump with binary unbuffered streams on Windows, I can't find a Python 2.6 way to change stdin to binary.

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

14 years agotests: Make macho-dump.bat actually work.
Daniel Dunbar [Sat, 12 Jun 2010 16:21:54 +0000 (16:21 +0000)]
tests: Make macho-dump.bat actually work.

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

14 years agotests: Propogate LLVM_SRC_ROOT and PYTHON_EXECUTABLE environment variables to tests.
Daniel Dunbar [Sat, 12 Jun 2010 16:21:19 +0000 (16:21 +0000)]
tests: Propogate LLVM_SRC_ROOT and PYTHON_EXECUTABLE environment variables to tests.

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

14 years agolit: Replace /dev/null in scripts with temporary files on Windows.
Daniel Dunbar [Sat, 12 Jun 2010 16:00:10 +0000 (16:00 +0000)]
lit: Replace /dev/null in scripts with temporary files on Windows.

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

14 years agoimprove verifier error about unterminated block to include
Chris Lattner [Sat, 12 Jun 2010 15:50:24 +0000 (15:50 +0000)]
improve verifier error about unterminated block to include
function name, patch by Yuri

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

14 years agodeclare a class with 'class' instead of struct to avoid tag mismatch
Chris Lattner [Sat, 12 Jun 2010 15:46:56 +0000 (15:46 +0000)]
declare a class with 'class' instead of struct to avoid tag mismatch
warnings, and don't shift by a bool.  Patch by Rizky Herucakra!

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

14 years agoAdd README entry; based on testcase from Bill Hart.
Eli Friedman [Sat, 12 Jun 2010 05:54:27 +0000 (05:54 +0000)]
Add README entry; based on testcase from Bill Hart.

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

14 years agomake the avx intrinsics 3 address
Bruno Cardoso Lopes [Sat, 12 Jun 2010 03:12:14 +0000 (03:12 +0000)]
make the avx intrinsics 3 address

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

14 years agoAdd generic vector support for bitselect & element byteswap
Nate Begeman [Sat, 12 Jun 2010 03:09:49 +0000 (03:09 +0000)]
Add generic vector support for bitselect & element byteswap

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

14 years agoAdd some basic fp intrinsics for AVX
Bruno Cardoso Lopes [Sat, 12 Jun 2010 02:38:32 +0000 (02:38 +0000)]
Add some basic fp intrinsics for AVX

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

14 years agoWhen performing the Horrible Hack(tm-Duncan) on the EH code to convert a
Bill Wendling [Sat, 12 Jun 2010 02:34:29 +0000 (02:34 +0000)]
When performing the Horrible Hack(tm-Duncan) on the EH code to convert a
clean-up to a catch-all after inlining, take into account that there could be
filter IDs as well. The presence of filters don't mean that the selector catches
anything. It's just metadata information.

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

14 years agoMore AVX: {ADD,SUB,MUL,DIV}{PD,PS}rm
Bruno Cardoso Lopes [Sat, 12 Jun 2010 01:53:48 +0000 (01:53 +0000)]
More AVX: {ADD,SUB,MUL,DIV}{PD,PS}rm

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

14 years agoMore AVX: {ADD,SUB,MUL,DIV}{PD,PS}rr
Bruno Cardoso Lopes [Sat, 12 Jun 2010 01:23:26 +0000 (01:23 +0000)]
More AVX: {ADD,SUB,MUL,DIV}{PD,PS}rr
Handle OpSize TSFlag for AVX

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

14 years agoAllow target to provide its own hazard recognizer to post-ra scheduler.
Evan Cheng [Sat, 12 Jun 2010 00:12:18 +0000 (00:12 +0000)]
Allow target to provide its own hazard recognizer to post-ra scheduler.

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

14 years agoCode formatting.
Evan Cheng [Sat, 12 Jun 2010 00:11:53 +0000 (00:11 +0000)]
Code formatting.

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

14 years agoAdd some comments about REX fields
Bruno Cardoso Lopes [Sat, 12 Jun 2010 00:03:52 +0000 (00:03 +0000)]
Add some comments about REX fields

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

14 years agoMore AVX instructions ({ADD,SUB,MUL,DIV}{SS,SD}rm)
Bruno Cardoso Lopes [Fri, 11 Jun 2010 23:50:47 +0000 (23:50 +0000)]
More AVX instructions ({ADD,SUB,MUL,DIV}{SS,SD}rm)
Introduce the VEX_X field

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

14 years agolit: Add a forgotten default argument.
Daniel Dunbar [Fri, 11 Jun 2010 23:47:36 +0000 (23:47 +0000)]
lit: Add a forgotten default argument.

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

14 years agotests: Add wrapper script for calling macho-dump on Win32.
Daniel Dunbar [Fri, 11 Jun 2010 23:29:48 +0000 (23:29 +0000)]
tests: Add wrapper script for calling macho-dump on Win32.

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

14 years agolit: When running Tcl style tests on Windows, substitute slashes to avoid Tcl
Daniel Dunbar [Fri, 11 Jun 2010 23:27:45 +0000 (23:27 +0000)]
lit: When running Tcl style tests on Windows, substitute slashes to avoid Tcl
quoting problems. Not particularly ideal, but should work ok. Based on a patch by
Michael Spencer!

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

14 years agoAdd a missing bitcast. This code used to only handle conversions between
Bob Wilson [Fri, 11 Jun 2010 22:45:25 +0000 (22:45 +0000)]
Add a missing bitcast.  This code used to only handle conversions between
i64 and f64 types, but now it also handle Neon vector types, so the f64 result
of VMOVDRR may need to be converted to a Neon type.  Radar 8084742.

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

14 years agollvm-mc: Don't set NO_INSTALL on llvm-mc.
Daniel Dunbar [Fri, 11 Jun 2010 22:00:08 +0000 (22:00 +0000)]
llvm-mc: Don't set NO_INSTALL on llvm-mc.

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

14 years agoAdd instruction encoding for the Neon VMOV immediate instruction. This changes
Bob Wilson [Fri, 11 Jun 2010 21:34:50 +0000 (21:34 +0000)]
Add instruction encoding for the Neon VMOV immediate instruction.  This changes
the machine instruction representation of the immediate value to be encoded
into an integer with similar fields as the actual VMOV instruction.  This makes
things easier for the disassembler, since it can just stuff the bits into the
immediate operand, but harder for the asm printer since it has to decode the
value to be printed.  Testcase for the encoding will follow later when MC has
more support for ARM.

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

14 years agoSupport for nested functions/classes in debug output. (Again.) Radar 7424645.
Stuart Hastings [Fri, 11 Jun 2010 20:08:44 +0000 (20:08 +0000)]
Support for nested functions/classes in debug output.  (Again.)  Radar 7424645.

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

14 years agoDelete duplicate function.
Stuart Hastings [Fri, 11 Jun 2010 20:05:01 +0000 (20:05 +0000)]
Delete duplicate function.

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

14 years agoDefine ContextualFoldingSet, which stores a context parameter to pass down to
John McCall [Fri, 11 Jun 2010 11:06:44 +0000 (11:06 +0000)]
Define ContextualFoldingSet, which stores a context parameter to pass down to
the Profile method.  Currently this only works with the default FoldingSetTraits
implementation.

The point of this is to allow nodes to not store context values which are only
used during profiling.  A better solution would thread this value through the
folding algorithms, but then those would need to be (1) templated and
(2) non-opaque.

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

14 years agoAdd support for polynomial type, for polynomial multiply
Nate Begeman [Thu, 10 Jun 2010 18:06:07 +0000 (18:06 +0000)]
Add support for polynomial type, for polynomial multiply

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

14 years agoAvoid "variable 'bits' set but not used [-Wunused-but-set-variable]"
Duncan Sands [Thu, 10 Jun 2010 16:23:15 +0000 (16:23 +0000)]
Avoid "variable 'bits' set but not used [-Wunused-but-set-variable]"
warnings with gcc-4.6, by not setting bits when the result is not
used.

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

14 years agoAvoid many "variable 'Sub' set but not used [-Wunused-but-set-variable]" warnings
Duncan Sands [Thu, 10 Jun 2010 15:06:05 +0000 (15:06 +0000)]
Avoid many "variable 'Sub' set but not used [-Wunused-but-set-variable]" warnings
with gcc-4.6.  The warning is wrong, since Sub *is* used (perhaps gcc is confused
because the use of Sub is constant folded away?), but since it is trivial to avoid,
and massively reduces the amount of warning spew, just workaround the wrong warning.

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

14 years agoAdd includes to get ptrdiff_t. This is needed by gcc-4.6 which has
Duncan Sands [Thu, 10 Jun 2010 10:13:58 +0000 (10:13 +0000)]
Add includes to get ptrdiff_t.  This is needed by gcc-4.6 which has
done some more header trimming, resulting in cstdef being included
by less header files.

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

14 years agoTeach tablegen to allow "let" expressions inside multiclasses,
Bruno Cardoso Lopes [Thu, 10 Jun 2010 02:42:59 +0000 (02:42 +0000)]
Teach tablegen to allow "let" expressions inside multiclasses,
providing more ways to factor out commonality from the records.

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

14 years agoCode refactoring, no functionality changes.
Evan Cheng [Thu, 10 Jun 2010 02:09:31 +0000 (02:09 +0000)]
Code refactoring, no functionality changes.

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

14 years agoDelete code that's not safe.
Evan Cheng [Thu, 10 Jun 2010 02:08:20 +0000 (02:08 +0000)]
Delete code that's not safe.

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

14 years agoNEON support for _lane ops, and multiplies by scalar.
Nate Begeman [Thu, 10 Jun 2010 00:16:56 +0000 (00:16 +0000)]
NEON support for _lane ops, and multiplies by scalar.

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

14 years agobe slightly more subtle about skipping dbg_value instructions; otherwise, if a
Jim Grosbach [Wed, 9 Jun 2010 22:21:24 +0000 (22:21 +0000)]
be slightly more subtle about skipping dbg_value instructions; otherwise, if a
dbg_value immediately follows a sequence of ldr/str instructions that should
be combined into an ldm/stm and is the last instruction in the block, then
combine may end up being skipped.

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

14 years agoTestcase for r105741.
Bill Wendling [Wed, 9 Jun 2010 20:30:22 +0000 (20:30 +0000)]
Testcase for r105741.

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

14 years agoMark physregs defined by inline asm as implicit.
Jakob Stoklund Olesen [Wed, 9 Jun 2010 20:05:00 +0000 (20:05 +0000)]
Mark physregs defined by inline asm as implicit.

This is a bit of a hack to make inline asm look more like call instructions.
It would be better to produce correct dead flags during isel.

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

14 years agoAllow target to place 2-address pass inserted copies in better spots. Thumb2 will...
Evan Cheng [Wed, 9 Jun 2010 19:26:01 +0000 (19:26 +0000)]
Allow target to place 2-address pass inserted copies in better spots. Thumb2 will use this to try to avoid breaking up IT blocks.

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

14 years agoIt's an error to translate this:
Bill Wendling [Wed, 9 Jun 2010 19:00:55 +0000 (19:00 +0000)]
It's an error to translate this:

   %reg1025 = <sext> %reg1024
    ...
   %reg1026 = SUBREG_TO_REG 0, %reg1024, 4

into this:

   %reg1025 = <sext> %reg1024
    ...
   %reg1027 = EXTRACT_SUBREG %reg1025, 4
   %reg1026 = SUBREG_TO_REG 0, %reg1027, 4

The problem here is that SUBREG_TO_REG is there to assert that an implicit zext
occurs. It doesn't insert a zext instruction. If we allow the EXTRACT_SUBREG
here, it will give us the value after the <sext>, not the original value of
%reg1024 before <sext>.

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

14 years agoRevert 105540, 105542, 105544, 105546, and 105548 to unbreak bootstrapping.
Evan Cheng [Wed, 9 Jun 2010 18:59:43 +0000 (18:59 +0000)]
Revert 105540, 105542, 105544, 105546, and 105548 to unbreak bootstrapping.

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

14 years ago- Fix description of SUBREG_TO_REG. It's not going to generate a zext. But it
Bill Wendling [Wed, 9 Jun 2010 18:15:36 +0000 (18:15 +0000)]
- Fix description of SUBREG_TO_REG. It's not going to generate a zext. But it
  is used to assert that an *implicit* zext is performed.

- Fix grammar-o in INSERT_SUBREG. (required reformatting)

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

14 years agoFurther refine types for operations which take scalars.
Nate Begeman [Wed, 9 Jun 2010 18:02:26 +0000 (18:02 +0000)]
Further refine types for operations which take scalars.
This will be used primarily by NEON shift intrinsics.

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

14 years agoWorkaround SCEV non-determinism on this test, for now, to get buildbots back to
Daniel Dunbar [Wed, 9 Jun 2010 17:54:40 +0000 (17:54 +0000)]
Workaround SCEV non-determinism on this test, for now, to get buildbots back to
green. Dan, please revert this once the real problem is fixed.

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

14 years agoChange another reference to the "indirect callgraph node" to
Duncan Sands [Wed, 9 Jun 2010 17:39:05 +0000 (17:39 +0000)]
Change another reference to the "indirect callgraph node" to
refer to the "external node" instead.

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

14 years agoOutput "external node" rather than "Indirect CallGraph node" when printing
Duncan Sands [Wed, 9 Jun 2010 17:35:00 +0000 (17:35 +0000)]
Output "external node" rather than "Indirect CallGraph node" when printing
callgraph SCC's.  This makes it match what the node itself would print.  Also,
"indirect callgraph node" doesn't make sense - it has nothing particularly to
do with indirect calls.

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

14 years agoHow about ULL...
Eric Christopher [Wed, 9 Jun 2010 16:16:48 +0000 (16:16 +0000)]
How about ULL...

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

14 years agoPulled CodeMetrics out of InlineCost.h and made it a bit more general, so it can...
Kenneth Uildriks [Wed, 9 Jun 2010 15:11:37 +0000 (15:11 +0000)]
Pulled CodeMetrics out of InlineCost.h and made it a bit more general, so it can be reused from PartialSpecializationCost

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

14 years agoFix SPU to cope with vector insertelement to an undef position.
Kalle Raiskila [Wed, 9 Jun 2010 09:58:17 +0000 (09:58 +0000)]
Fix SPU to cope with vector insertelement to an undef position.
We default to inserting to lane 0.

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

14 years agoHandle loading from/storing to undef pointers on SPU by inserting a
Kalle Raiskila [Wed, 9 Jun 2010 08:29:41 +0000 (08:29 +0000)]
Handle loading from/storing to undef pointers on SPU by inserting a
random load/store, rather than crashing llc.

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

14 years agoSpecialize I-Class instructions better so that we have less work to do in codegen.
Nate Begeman [Wed, 9 Jun 2010 05:11:55 +0000 (05:11 +0000)]
Specialize I-Class instructions better so that we have less work to do in codegen.
Parenthesize macro args

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

14 years agoTypo.
Evan Cheng [Wed, 9 Jun 2010 03:49:12 +0000 (03:49 +0000)]
Typo.

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

14 years agoFix a gcc warning:
Rafael Espindola [Wed, 9 Jun 2010 03:00:05 +0000 (03:00 +0000)]
Fix a gcc warning:

'class llvm::DAGDeltaAlgorithm' has virtual functions and accessible non-virtual destructor

Not sure if this is the best solution, but this class has state and some of the
classes that inherit from it also do, so it looks appropriate.

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

14 years agoA few new x86-64 specific README entries.
Eli Friedman [Wed, 9 Jun 2010 02:43:17 +0000 (02:43 +0000)]
A few new x86-64 specific README entries.

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

14 years agoThumb2 IT blocks are fairly expensive. When there are multiple selects using
Evan Cheng [Wed, 9 Jun 2010 01:46:50 +0000 (01:46 +0000)]
Thumb2 IT blocks are fairly expensive. When there are multiple selects using
the same condition, it's important to make sure they are scheduled together
to avoid forming multiple IT blocks. I'm adding a pre-regalloc pass that forms
IT blocks early (by re-scheduling instructions and split basic blocks) to
attempt to fix this. This is not turned on by default since I am not sure this
is the right fix.

Another issue is llvm selects are modeled as two-address conditional moves.
This can be very bad when the copies before the conditional moves are not
coalesced away. Teach IT formation pass to move the copies above the IT block
(when legal) to avoid breaking the IT block.

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

14 years agoHandle instructions which need to be #defines for the purpose of capturing constant...
Nate Begeman [Wed, 9 Jun 2010 01:09:00 +0000 (01:09 +0000)]
Handle instructions which need to be #defines for the purpose of capturing constant arguments
Handle extract hi/lo with common code

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

14 years agoAdd argument name comments.
Jakob Stoklund Olesen [Wed, 9 Jun 2010 00:40:31 +0000 (00:40 +0000)]
Add argument name comments.

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

14 years agoIncremental improvement to the handling of the x86 "Jump if rCX Zero"
Kevin Enderby [Tue, 8 Jun 2010 23:48:44 +0000 (23:48 +0000)]
Incremental improvement to the handling of the x86 "Jump if rCX Zero"
instruction.  Added the 64-bit version "jrcxz" so it is recognized and also
added the checks for incorrect uses of "jcxz" in 64-bit mode and "jrcxz" in
32-bit mode.  Still to do is to correctly handle the encoding of the
instruction adding the Address-size override prefix byte, 0x67, when the width
of the count register is not the same as the mode the machine is running in.
Which for example means the encoding of "jecxz" depends if you are assembling
as a 32-bit target or a 64-bit target.

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

14 years agoSplit out these asserts so it's more apparent why we're not assembling
Eric Christopher [Tue, 8 Jun 2010 22:57:33 +0000 (22:57 +0000)]
Split out these asserts so it's more apparent why we're not assembling
that rip-relative address when executing in 32-bit mode.

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