oota-llvm.git
14 years agoremove trailing whitespace
Jim Grosbach [Wed, 16 Jun 2010 22:41:09 +0000 (22:41 +0000)]
remove trailing whitespace

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

14 years agoRevert r106117, which was the result of me misreading the C++98/03
Douglas Gregor [Wed, 16 Jun 2010 22:32:18 +0000 (22:32 +0000)]
Revert r106117, which was the result of me misreading the C++98/03
specification.

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

14 years agoDon't attempt preserving conservative kill flags. We were doing it wrong.
Jakob Stoklund Olesen [Wed, 16 Jun 2010 22:11:08 +0000 (22:11 +0000)]
Don't attempt preserving conservative kill flags. We were doing it wrong.
This is before LiveVariables anyway, where these kill flags are recalculated.

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

14 years agoRemove the hidden "neon-reg-sequence" option. The reg sequences are working
Bob Wilson [Wed, 16 Jun 2010 21:34:01 +0000 (21:34 +0000)]
Remove the hidden "neon-reg-sequence" option.  The reg sequences are working
now, so there's no need to disable them.

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

14 years agoIn progress on 32-bit addends.
Eric Christopher [Wed, 16 Jun 2010 21:32:38 +0000 (21:32 +0000)]
In progress on 32-bit addends.

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

14 years agoAllow a register to be redefined multiple times in a basic block.
Jakob Stoklund Olesen [Wed, 16 Jun 2010 21:29:40 +0000 (21:29 +0000)]
Allow a register to be redefined multiple times in a basic block.

LiveVariableAnalysis was a bit picky about a register only being redefined once,
but that really isn't necessary.

Here is an example of chained INSERT_SUBREGs that we can handle now:

68      %reg1040<def> = INSERT_SUBREG %reg1040, %reg1028<kill>, 14
                register: %reg1040 +[70,134:0)
76      %reg1040<def> = INSERT_SUBREG %reg1040, %reg1029<kill>, 13
                register: %reg1040 replace range with [70,78:1) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,134:0)  0@78-(134) 1@70-(78)
84      %reg1040<def> = INSERT_SUBREG %reg1040, %reg1030<kill>, 12
                register: %reg1040 replace range with [78,86:2) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,86:2)[86,134:0)  0@86-(134) 1@70-(78) 2@78-(86)
92      %reg1040<def> = INSERT_SUBREG %reg1040, %reg1031<kill>, 11
                register: %reg1040 replace range with [86,94:3) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,86:2)[86,94:3)[94,134:0)  0@94-(134) 1@70-(78) 2@78-(86) 3@86-(94)

rdar://problem/8096390

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

14 years agoA few more places where SCEVExpander bits need to skip over debug intrinsics
Jim Grosbach [Wed, 16 Jun 2010 21:13:38 +0000 (21:13 +0000)]
A few more places where SCEVExpander bits need to skip over debug intrinsics
when iterating through instructions. Yet more work for rdar://7797940

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

14 years agomodify so the test doesn't drop an output file in the test source directory.
Jim Grosbach [Wed, 16 Jun 2010 21:07:06 +0000 (21:07 +0000)]
modify so the test doesn't drop an output file in the test source directory.

The test should also likely have some FileCheck bits to validate the
output(?).

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

14 years agoMC/Mach-O: Rewrite atom association to be a final pass we do in Finish(), instead...
Daniel Dunbar [Wed, 16 Jun 2010 20:04:32 +0000 (20:04 +0000)]
MC/Mach-O: Rewrite atom association to be a final pass we do in Finish(), instead of tracking as part of emission.
 - This allows sharing more code with the MCObjectStreamer.

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

14 years agoMC: Simplify MCAssembler::isSymbolLinkerVisible to only take an MCSymbol.
Daniel Dunbar [Wed, 16 Jun 2010 20:04:29 +0000 (20:04 +0000)]
MC: Simplify MCAssembler::isSymbolLinkerVisible to only take an MCSymbol.

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

14 years agoMC: Lift SwitchSection() and Finish() into MCObjectStreamer.
Daniel Dunbar [Wed, 16 Jun 2010 20:04:25 +0000 (20:04 +0000)]
MC: Lift SwitchSection() and Finish() into MCObjectStreamer.

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

14 years agoMC: Factor out an MCObjectStreamer class, which will be shared by the concrete
Daniel Dunbar [Wed, 16 Jun 2010 20:04:22 +0000 (20:04 +0000)]
MC: Factor out an MCObjectStreamer class, which will be shared by the concrete
object file format writers.

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

14 years agoBe specific. Use FileCheck.
Devang Patel [Wed, 16 Jun 2010 19:39:45 +0000 (19:39 +0000)]
Be specific. Use FileCheck.

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

14 years agoMake sure that simplify libcalls does not replace a call with one calling
Rafael Espindola [Wed, 16 Jun 2010 19:34:01 +0000 (19:34 +0000)]
Make sure that simplify libcalls does not replace a call with one calling
convention with a new call with a different calling convention.

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

14 years agoadd FIXME
Jim Grosbach [Wed, 16 Jun 2010 18:45:08 +0000 (18:45 +0000)]
add FIXME

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

14 years agoThis requires more investigation. Unblock buildbots for now.
Devang Patel [Wed, 16 Jun 2010 18:19:49 +0000 (18:19 +0000)]
This requires more investigation. Unblock buildbots for now.

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

14 years agoUpdate test to explicitly capture llc output.
Devang Patel [Wed, 16 Jun 2010 18:04:12 +0000 (18:04 +0000)]
Update test to explicitly capture llc output.

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

14 years agoImprove comment to include that the use of a preg is also verboten in this situation.
Bill Wendling [Wed, 16 Jun 2010 18:01:31 +0000 (18:01 +0000)]
Improve comment to include that the use of a preg is also verboten in this situation.

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

14 years agoEliminate a redundant "typename" keyword
Douglas Gregor [Wed, 16 Jun 2010 17:42:01 +0000 (17:42 +0000)]
Eliminate a redundant "typename" keyword

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

14 years agoTODO--
Benjamin Kramer [Wed, 16 Jun 2010 15:47:00 +0000 (15:47 +0000)]
TODO--

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

14 years agosimplify-libcalls: fold strncmp(x, y, 1) -> memcmp(x, y, 1)
Benjamin Kramer [Wed, 16 Jun 2010 10:30:29 +0000 (10:30 +0000)]
simplify-libcalls: fold strncmp(x, y, 1) -> memcmp(x, y, 1)

The memcmp will be optimized further and even the pathological case
'strstr(x, "x") == x' generates optimal code now.

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

14 years agoMake post-ra scheduling, anti-dep breaking, and register scavenger (conservatively...
Evan Cheng [Wed, 16 Jun 2010 07:35:02 +0000 (07:35 +0000)]
Make post-ra scheduling, anti-dep breaking, and register scavenger (conservatively) aware of predicated instructions. This enables ARM to move if-conversion before post-ra scheduler.

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

14 years agoCheck function pointer first, before comparing function names.
Devang Patel [Wed, 16 Jun 2010 06:42:02 +0000 (06:42 +0000)]
Check function pointer first, before comparing function names.

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

14 years agoUse separate named MDNode to hold each function's local variable info.
Devang Patel [Wed, 16 Jun 2010 00:53:55 +0000 (00:53 +0000)]
Use separate named MDNode to hold each function's local variable info.
This speeds up local variable handling in DwarfDebug.

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

14 years agoDon't emit the linkage for initializer label for mach-o tls.
Eric Christopher [Wed, 16 Jun 2010 00:27:30 +0000 (00:27 +0000)]
Don't emit the linkage for initializer label for mach-o tls.

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

14 years agoFix indentation.
Eric Christopher [Wed, 16 Jun 2010 00:26:36 +0000 (00:26 +0000)]
Fix indentation.

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

14 years agoCreate a more targeted fix for not sinking instructions into a range where it
Bill Wendling [Tue, 15 Jun 2010 23:46:31 +0000 (23:46 +0000)]
Create a more targeted fix for not sinking instructions into a range where it
will conflict with another live range. The place which creates this scenerio is
the code in X86 that lowers a select instruction by splitting the MBBs. This
eliminates the need to check from the bottom up in an MBB for live pregs.

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

14 years agoFor 32-bit non-pic tlv mach-o addressing we don't need a pic base or
Eric Christopher [Tue, 15 Jun 2010 23:08:42 +0000 (23:08 +0000)]
For 32-bit non-pic tlv mach-o addressing we don't need a pic base or
a relative address.

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

14 years agoAdded a comment.
Stuart Hastings [Tue, 15 Jun 2010 23:06:30 +0000 (23:06 +0000)]
Added a comment.

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

14 years agoSome more work on mach-o TLV relocations.
Eric Christopher [Tue, 15 Jun 2010 22:59:05 +0000 (22:59 +0000)]
Some more work on mach-o TLV relocations.

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

14 years agoAdd file missing from previous commit.
Dale Johannesen [Tue, 15 Jun 2010 22:24:08 +0000 (22:24 +0000)]
Add file missing from previous commit.

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

14 years agoFix 80col violations, remove trailing whitespace, and clarify a comment.
Bob Wilson [Tue, 15 Jun 2010 22:18:54 +0000 (22:18 +0000)]
Fix 80col violations, remove trailing whitespace, and clarify a comment.

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

14 years agoUpdate test to match recent llvm-gcc change.
Rafael Espindola [Tue, 15 Jun 2010 22:16:40 +0000 (22:16 +0000)]
Update test to match recent llvm-gcc change.

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

14 years agoMake VC++ happy
Nate Begeman [Tue, 15 Jun 2010 22:10:31 +0000 (22:10 +0000)]
Make VC++ happy

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

14 years agoNext round of tail call changes. Register used in a tail
Dale Johannesen [Tue, 15 Jun 2010 22:08:33 +0000 (22:08 +0000)]
Next round of tail call changes.  Register used in a tail
call must not be callee-saved; following x86, add a new
regclass to represent this.  Also fixes a couple of bugs.
Still disabled by default; Thumb doesn't work yet.

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

14 years agoRemove the local register allocator.
Jakob Stoklund Olesen [Tue, 15 Jun 2010 21:58:33 +0000 (21:58 +0000)]
Remove the local register allocator.
Please use the fast allocator instead.

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

14 years agoReapply 105986 with fix for bug pointed out by Jakob:
Dale Johannesen [Tue, 15 Jun 2010 21:36:43 +0000 (21:36 +0000)]
Reapply 105986 with fix for bug pointed out by Jakob:
flag argument to addReg is not the same format as flags attached
to MachineOperand, although both have the same info.  I don't
think this actually mattered; the bootstrap failure did not
reproduce on the next run anyway.

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

14 years agofix PR7380: use 'test' instead of shell builtins. This improves
Chris Lattner [Tue, 15 Jun 2010 21:35:22 +0000 (21:35 +0000)]
fix PR7380: use 'test' instead of shell builtins.  This improves
portability to Solaris 10, which apparently doesn't support
[ foo -ot bar ]

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

14 years agosimplify-libcalls: fold strstr(a, b) == a -> strncmp(a, b, strlen(b)) == 0
Benjamin Kramer [Tue, 15 Jun 2010 21:34:25 +0000 (21:34 +0000)]
simplify-libcalls: fold strstr(a, b) == a -> strncmp(a, b, strlen(b)) == 0

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

14 years agoSet the mtriple in some tests so that they use AAPCS.
Rafael Espindola [Tue, 15 Jun 2010 20:42:00 +0000 (20:42 +0000)]
Set the mtriple in some tests so that they use AAPCS.

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

14 years agoFixed vector widening of binary instructions that can trap. Patch by Visa Putkinen!
Mon P Wang [Tue, 15 Jun 2010 20:29:05 +0000 (20:29 +0000)]
Fixed vector widening of binary instructions that can trap. Patch by Visa Putkinen!

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

14 years agofpcmp: Fix bug where fpcmp wouldn't early exit when files obviously differ and
Daniel Dunbar [Tue, 15 Jun 2010 19:20:30 +0000 (19:20 +0000)]
fpcmp: Fix bug where fpcmp wouldn't early exit when files obviously differ and
no tolerance is set.

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

14 years agofpcmp: Fix a possible infinite loop when comparing something like:
Daniel Dunbar [Tue, 15 Jun 2010 19:20:28 +0000 (19:20 +0000)]
fpcmp: Fix a possible infinite loop when comparing something like:
  1..19 ok
to
  1..20 o k
(yes, the odd space is necessary).

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

14 years agofix fastisel to handle GS and FS relative pointers. Patch by
Chris Lattner [Tue, 15 Jun 2010 19:08:40 +0000 (19:08 +0000)]
fix fastisel to handle GS and FS relative pointers.  Patch by
Nelson Elhage!

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

14 years agoAdd basic support for NEON modified immediates besides VMOV.
Bob Wilson [Tue, 15 Jun 2010 19:05:35 +0000 (19:05 +0000)]
Add basic support for NEON modified immediates besides VMOV.

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

14 years agoRemove the arm_aapcscc marker from the tests. It is the default
Rafael Espindola [Tue, 15 Jun 2010 19:04:29 +0000 (19:04 +0000)]
Remove the arm_aapcscc marker from the tests. It is the default
for the linux targets.

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

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