oota-llvm.git
14 years agoStart TargetRegisterClass indices at 0 instead of 1, so that
Dan Gohman [Fri, 18 Jun 2010 18:13:55 +0000 (18:13 +0000)]
Start TargetRegisterClass indices at 0 instead of 1, so that
MachineRegisterInfo doesn't have to confusingly allocate an extra
entry.

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

14 years agoLast round of changes for ARM tail calls.
Dale Johannesen [Fri, 18 Jun 2010 18:13:11 +0000 (18:13 +0000)]
Last round of changes for ARM tail calls.
Not turning them on yet.

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

14 years agoGrammar.
Jim Grosbach [Fri, 18 Jun 2010 17:40:42 +0000 (17:40 +0000)]
Grammar.

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

14 years agoFix PR7372: Conditional branches (at least on ARM) are treated as predicated,
Bob Wilson [Fri, 18 Jun 2010 17:07:23 +0000 (17:07 +0000)]
Fix PR7372: Conditional branches (at least on ARM) are treated as predicated,
so when IfConverter::CopyAndPredicateBlock checks to see if it should ignore
an instruction because it is a branch, it should not check if the branch is
predicated.

This case (when IgnoreBr is true) is only relevant from IfConvertTriangle,
where new branches are inserted after the block has been copied and predicated.
If the original branch is not removed, we end up with multiple conditional
branches (possibly conflicting) at the end of the block.  Aside from any
immediate errors resulting from that, this confuses the AnalyzeBranch functions
so that the branches are not analyzable.  That in turn causes the IfConverter to
think that the "Simple" pattern can be applied, and things go downhill fast
because the "Simple" pattern does _not_ apply if the block can fall through.

This is pretty fragile.  If there are other degenerate cases where AnalyzeBranch
fails, but where the block may still fall through, the IfConverter should not
perform its "Simple" if-conversion.  But, I don't know how to do that with the
current AnalyzeBranch interface, so for now, the best thing seems to be to
avoid creating branches that AnalyzeBranch cannot handle.

Evan, please review!

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

14 years agoTreat the ARM inline asm {cc} constraint as a physreg (%CPSR), just like X86
Jakob Stoklund Olesen [Fri, 18 Jun 2010 16:49:33 +0000 (16:49 +0000)]
Treat the ARM inline asm {cc} constraint as a physreg (%CPSR), just like X86
does for {flags}. If we create virtual registers of the CCR class, RegAllocFast
may try to spill them, and we can't do that.

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

14 years agoDon't bother calling releaseMemory before destroying the DominatorTreeBase.
Dan Gohman [Fri, 18 Jun 2010 16:09:11 +0000 (16:09 +0000)]
Don't bother calling releaseMemory before destroying the DominatorTreeBase.

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

14 years agoMinor code simplifications.
Dan Gohman [Fri, 18 Jun 2010 16:00:29 +0000 (16:00 +0000)]
Minor code simplifications.

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

14 years agoGive NamedRegionTimer an Enabled flag, allowing all its clients to
Dan Gohman [Fri, 18 Jun 2010 15:56:31 +0000 (15:56 +0000)]
Give NamedRegionTimer an Enabled flag, allowing all its clients to
switch from this:

  if (TimePassesIsEnabled) {
    NamedRegionTimer T(Name, GroupName);
    do_something();
  } else {
    do_something(); // duplicate the code, this time without a timer!
  }

to this:

  {
    NamedRegionTimer T(Name, GroupName, TimePassesIsEnabled);
    do_something();
  }

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

14 years agoDon't replace the old Ordering object with a new one; just clear()
Dan Gohman [Fri, 18 Jun 2010 15:40:58 +0000 (15:40 +0000)]
Don't replace the old Ordering object with a new one; just clear()
the old one.

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

14 years agoDon't call clear() on DbgInfo when it's going to be deleted anyway.
Dan Gohman [Fri, 18 Jun 2010 15:36:18 +0000 (15:36 +0000)]
Don't call clear() on DbgInfo when it's going to be deleted anyway.

Don't replace the old DbgInfo with a new one when clear() on the
old one is sufficient.

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

14 years agoChange UpdateNodeOperands' operand and return value from SDValue to
Dan Gohman [Fri, 18 Jun 2010 15:30:29 +0000 (15:30 +0000)]
Change UpdateNodeOperands' operand and return value from SDValue to
SDNode *, since it doesn't care about the ResNo value.

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

14 years agoRemove getIntegerSCEV; it's redundant with getConstant, and getConstant
Dan Gohman [Fri, 18 Jun 2010 14:33:50 +0000 (14:33 +0000)]
Remove getIntegerSCEV; it's redundant with getConstant, and getConstant
is more consistent with the ConstantInt API.

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

14 years agoDelete unused variables.
Dan Gohman [Fri, 18 Jun 2010 14:32:32 +0000 (14:32 +0000)]
Delete unused variables.

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

14 years agoEliminate unnecessary uses of getZExtValue().
Dan Gohman [Fri, 18 Jun 2010 14:22:04 +0000 (14:22 +0000)]
Eliminate unnecessary uses of getZExtValue().

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

14 years agoisValueValidForType can be a static member function.
Dan Gohman [Fri, 18 Jun 2010 14:01:07 +0000 (14:01 +0000)]
isValueValidForType can be a static member function.

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

14 years agoSome assorted isTwoAddress -> Constraints cleanup.
Eric Christopher [Fri, 18 Jun 2010 02:41:19 +0000 (02:41 +0000)]
Some assorted isTwoAddress -> Constraints cleanup.

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

14 years agoHandle execution entrypoints with non-integer return types.
Dan Gohman [Fri, 18 Jun 2010 02:01:10 +0000 (02:01 +0000)]
Handle execution entrypoints with non-integer return types.
Fix from Russel Power in PR7284.

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

14 years agoDon't write a file named "&1".
Dan Gohman [Fri, 18 Jun 2010 01:49:17 +0000 (01:49 +0000)]
Don't write a file named "&1".

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

14 years agoDisable indvars on loops when LoopSimplify form is not available.
Dan Gohman [Fri, 18 Jun 2010 01:35:11 +0000 (01:35 +0000)]
Disable indvars on loops when LoopSimplify form is not available.
This fixes PR7333.

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

14 years agoDon't maintain a set of deleted nodes; instead, use a HandleSDNode
Dan Gohman [Fri, 18 Jun 2010 01:24:29 +0000 (01:24 +0000)]
Don't maintain a set of deleted nodes; instead, use a HandleSDNode
to track a node over CSE events. This fixes PR7368.

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

14 years agoAdd {mix,max}{ss,sd}{rr,rm} AVX forms.
Bruno Cardoso Lopes [Fri, 18 Jun 2010 01:12:56 +0000 (01:12 +0000)]
Add {mix,max}{ss,sd}{rr,rm} AVX forms.

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

14 years agoFold the ShrinkDemandedOps pass into the regular DAGCombiner pass,
Dan Gohman [Fri, 18 Jun 2010 01:05:21 +0000 (01:05 +0000)]
Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass,
which is faster, simpler, and less surprising.

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

14 years agoFix a typo in a comment.
Dan Gohman [Fri, 18 Jun 2010 00:53:08 +0000 (00:53 +0000)]
Fix a typo in a comment.

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

14 years agoimprove portability to solaris 10, PR7380, patch by Simon Billingsley!
Chris Lattner [Fri, 18 Jun 2010 00:35:32 +0000 (00:35 +0000)]
improve portability to solaris 10, PR7380, patch by Simon Billingsley!

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

14 years agoHandle ext(ext(x)) -> ext(x) immediately, since it's simple.
Dan Gohman [Fri, 18 Jun 2010 00:08:30 +0000 (00:08 +0000)]
Handle ext(ext(x)) -> ext(x) immediately, since it's simple.

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

14 years agoMake this test less fragile.
Dan Gohman [Fri, 18 Jun 2010 00:06:03 +0000 (00:06 +0000)]
Make this test less fragile.

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

14 years agoSimplify this code.
Dan Gohman [Thu, 17 Jun 2010 23:34:09 +0000 (23:34 +0000)]
Simplify this code.

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

14 years agoUse new tablegen resources in SSE tablegen code. This will
Bruno Cardoso Lopes [Thu, 17 Jun 2010 23:05:30 +0000 (23:05 +0000)]
Use new tablegen resources in SSE tablegen code. This will
be done incrementally and intermixed with the adding of more
AVX instructions. This is a first step in that direction

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

14 years agoIn case Rec is a definition and not a class, do the proper comparison!
Bruno Cardoso Lopes [Thu, 17 Jun 2010 23:00:16 +0000 (23:00 +0000)]
In case Rec is a definition and not a class, do the proper comparison!

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

14 years agoAdd a DebugLoc parameter to TargetInstrInfo::InsertBranch(). This
Stuart Hastings [Thu, 17 Jun 2010 22:43:56 +0000 (22:43 +0000)]
Add a DebugLoc parameter to TargetInstrInfo::InsertBranch().  This
addresses a longstanding deficiency noted in many FIXMEs scattered
across all the targets.

This effectively moves the problem up one level, replacing eleven
FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path
through FastISel where we actually supply a DebugLoc, fixing Radar
7421831.

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

14 years agoMinor clarification.
Dan Gohman [Thu, 17 Jun 2010 19:23:50 +0000 (19:23 +0000)]
Minor clarification.

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

14 years agoadd missing break. inconsequential as the code shouldn't be reached, but
Jim Grosbach [Thu, 17 Jun 2010 17:58:54 +0000 (17:58 +0000)]
add missing break. inconsequential as the code shouldn't be reached, but
for correctness' sake, it should be there.

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

14 years agoAdd entries for Expanding atomic intrinsics to libcalls. Just a placeholder
Jim Grosbach [Thu, 17 Jun 2010 17:50:54 +0000 (17:50 +0000)]
Add entries for Expanding atomic intrinsics to libcalls. Just a placeholder
for the moment. The implementation of the libcall will follow.

Currently, the llvm-gcc knows when the intrinsics can be correctly handled by
the back end and only generates them in those cases, issuing libcalls directly
otherwise. That's too much coupling. The intrinsics should always be
generated and the back end decide how to handle them, be it with a libcall,
inline code, or whatever. This patch is a step in that direction.

rdar://8097623

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

14 years agoTestcase for llvm-gcc 106225.
Dale Johannesen [Thu, 17 Jun 2010 17:43:14 +0000 (17:43 +0000)]
Testcase for llvm-gcc 106225.

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

14 years agoRemove arm_apcscc from the test files. It is the default and doing this
Rafael Espindola [Thu, 17 Jun 2010 15:18:27 +0000 (15:18 +0000)]
Remove arm_apcscc from the test files. It is the default and doing this
matches what llvm-gcc and clang now produce.

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

14 years agoAllow absolute paths in LLVM_TARGET_DEFINITIONS for CMake's TableGen rule
Douglas Gregor [Thu, 17 Jun 2010 15:17:07 +0000 (15:17 +0000)]
Allow absolute paths in LLVM_TARGET_DEFINITIONS for CMake's TableGen rule

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

14 years agoModify tablegen to support generating all NEON code used by clang at once.
Nate Begeman [Thu, 17 Jun 2010 04:15:13 +0000 (04:15 +0000)]
Modify tablegen to support generating all NEON code used by clang at once.

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

14 years agoThumb1 and any pre-v6 ARM target should use the libcall expansion of
Jim Grosbach [Thu, 17 Jun 2010 02:02:03 +0000 (02:02 +0000)]
Thumb1 and any pre-v6 ARM target should use the libcall expansion of
ISD::MEMBARRIER. v7 and v7 ARM mode continue to use the custom lowering.

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

14 years agoISD::MEMBARRIER should lower to a libcall (__sync_synchronize) if the target
Jim Grosbach [Thu, 17 Jun 2010 02:00:53 +0000 (02:00 +0000)]
ISD::MEMBARRIER should lower to a libcall (__sync_synchronize) if the target
sets the legalize action to Expand.

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

14 years agoFix the handling of !if result, avoiding null results for non 'int'.
Bruno Cardoso Lopes [Thu, 17 Jun 2010 01:50:39 +0000 (01:50 +0000)]
Fix the handling of !if result, avoiding null results for non 'int'.

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

14 years agosimplify code a bit and add a more explanatory assert for cases that
Jim Grosbach [Thu, 17 Jun 2010 01:37:00 +0000 (01:37 +0000)]
simplify code a bit and add a more explanatory assert for cases that
previously would result in 'cannot yet select' errors.

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

14 years agoAdd the entire range of DW_OP_lit[0..31], DW_OP_reg[0..31], and
Jason Molenda [Thu, 17 Jun 2010 01:23:24 +0000 (01:23 +0000)]
Add the entire range of DW_OP_lit[0..31], DW_OP_reg[0..31], and
DW_OP_breg[0..31] to Dwarf.h.

Add "DW_" prefix to the llvm::dwarf::*String methods which did not
already have them in Dwarf.cpp.

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

14 years agoHack to let the move lowering handle dynamic-no-pic absolute moves of
Eric Christopher [Thu, 17 Jun 2010 00:51:48 +0000 (00:51 +0000)]
Hack to let the move lowering handle dynamic-no-pic absolute moves of
TLVP:

movl _a@TLVP, %eax

Daniel: Please review if you get a chance.

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

14 years agoUpdate comment.
Eric Christopher [Thu, 17 Jun 2010 00:49:46 +0000 (00:49 +0000)]
Update comment.

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

14 years agoFor a tablegen expression such as !if(a,b,c), let 'a'
Bruno Cardoso Lopes [Thu, 17 Jun 2010 00:31:36 +0000 (00:31 +0000)]
For a tablegen expression such as !if(a,b,c), let 'a'
be evaluated for 'bit' operators

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

14 years agoFix the typo in my previous one-line commit.
Sean Hunt [Thu, 17 Jun 2010 00:10:16 +0000 (00:10 +0000)]
Fix the typo in my previous one-line commit.

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

14 years agoMake sure CMake can build the files added by my previous commit.
Sean Hunt [Wed, 16 Jun 2010 23:52:37 +0000 (23:52 +0000)]
Make sure CMake can build the files added by my previous commit.

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

14 years agoAdd preliminary clang attribute generation support.
Sean Hunt [Wed, 16 Jun 2010 23:45:50 +0000 (23:45 +0000)]
Add preliminary clang attribute generation support.

The attribute class generation support is still somewhat limited.
See the accompanying clang commit for more details.

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

14 years agoformat and 80-column cleanup
Jim Grosbach [Wed, 16 Jun 2010 23:45:49 +0000 (23:45 +0000)]
format and 80-column cleanup

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

14 years agolet the '!eq' expression support 'int' and 'bit' types
Bruno Cardoso Lopes [Wed, 16 Jun 2010 23:24:12 +0000 (23:24 +0000)]
let the '!eq' expression support 'int' and 'bit' types

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

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