oota-llvm.git
13 years agoAdd X86FastISel support for return statements. This entails refactoring
Dan Gohman [Wed, 7 Jul 2010 18:32:53 +0000 (18:32 +0000)]
Add X86FastISel support for return statements. This entails refactoring
a bunch of stuff, to allow the target-independent calling convention
logic to be employed.

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

13 years agoAdd AVX AES instructions
Bruno Cardoso Lopes [Wed, 7 Jul 2010 18:24:20 +0000 (18:24 +0000)]
Add AVX AES instructions

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

13 years agoUpdate the insert position after scheduling, which may change the
Dan Gohman [Wed, 7 Jul 2010 18:22:13 +0000 (18:22 +0000)]
Update the insert position after scheduling, which may change the
position when emitting multiple blocks when executing a custom
inserter.

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

13 years agoUpdate comment.
Devang Patel [Wed, 7 Jul 2010 18:18:18 +0000 (18:18 +0000)]
Update comment.

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

13 years agoFix debugging strings.
Dan Gohman [Wed, 7 Jul 2010 17:28:45 +0000 (17:28 +0000)]
Fix debugging strings.

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

13 years agoIssue the warning about being slow whenever optimization is disabled,
Duncan Sands [Wed, 7 Jul 2010 16:48:16 +0000 (16:48 +0000)]
Issue the warning about being slow whenever optimization is disabled,
and not just for Debug+Asserts builds.

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

13 years agoGive FunctionLoweringInfo an MBB member, avoiding the need to pass it
Dan Gohman [Wed, 7 Jul 2010 16:47:08 +0000 (16:47 +0000)]
Give FunctionLoweringInfo an MBB member, avoiding the need to pass it
around everywhere, and also give it an InsertPt member, to enable isel
to operate at an arbitrary position within a block, rather than just
appending to a block.

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

13 years agoSimplify FastISel's constructor by giving it a FunctionLoweringInfo
Dan Gohman [Wed, 7 Jul 2010 16:29:44 +0000 (16:29 +0000)]
Simplify FastISel's constructor by giving it a FunctionLoweringInfo
instance, rather than pointers to all of FunctionLoweringInfo's
members.

This eliminates an NDEBUG ABI sensitivity.

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

13 years agoMove FunctionLoweringInfo.h out into include/llvm/CodeGen. This will
Dan Gohman [Wed, 7 Jul 2010 16:01:37 +0000 (16:01 +0000)]
Move FunctionLoweringInfo.h out into include/llvm/CodeGen. This will
allow target-specific fast-isel code to make use of it directly.

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

13 years agoSplit the SDValue out of OutputArg so that SelectionDAG-independent
Dan Gohman [Wed, 7 Jul 2010 15:54:55 +0000 (15:54 +0000)]
Split the SDValue out of OutputArg so that SelectionDAG-independent
code can do calling-convention queries. This obviates OutputArgReg.

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

13 years agoadd some triple for minix, patch by Kees van Reeuwijk from PR7582
Chris Lattner [Wed, 7 Jul 2010 15:52:27 +0000 (15:52 +0000)]
add some triple for minix, patch by Kees van Reeuwijk from PR7582

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

13 years agoMove ArgFlagsTy, OutputArg, and InputArg out of SelectionDAGNodes.h and
Dan Gohman [Wed, 7 Jul 2010 15:28:42 +0000 (15:28 +0000)]
Move ArgFlagsTy, OutputArg, and InputArg out of SelectionDAGNodes.h and
into a new header, TargetCallingConv.h.

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

13 years agoMove CallingConvLower.cpp out of the SelectionDAG directory.
Dan Gohman [Wed, 7 Jul 2010 15:15:27 +0000 (15:15 +0000)]
Move CallingConvLower.cpp out of the SelectionDAG directory.

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

13 years agoFix more places assuming subregisters have live intervals
Jakob Stoklund Olesen [Wed, 7 Jul 2010 14:41:22 +0000 (14:41 +0000)]
Fix more places assuming subregisters have live intervals

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

13 years agoadapt condition for changed default build mode
Gabor Greif [Wed, 7 Jul 2010 14:37:04 +0000 (14:37 +0000)]
adapt condition for changed default build mode

who knows how to cover Asserts or Debug separately
please do not hesitate to extend this

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

13 years agoAdd a getFirstNonPHI utility function.
Dan Gohman [Wed, 7 Jul 2010 14:33:51 +0000 (14:33 +0000)]
Add a getFirstNonPHI utility function.

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

13 years agoMinore code simplification.
Dan Gohman [Wed, 7 Jul 2010 14:30:04 +0000 (14:30 +0000)]
Minore code simplification.

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

13 years agoRemove interprocedural-basic-aa and associated code. The AliasAnalysis
Dan Gohman [Wed, 7 Jul 2010 14:27:09 +0000 (14:27 +0000)]
Remove interprocedural-basic-aa and associated code. The AliasAnalysis
interface needs implementations to be consistent, so any code which
wants to support different semantics must use a different interface.
It's not currently worthwhile to add a new interface for this new
concept.

Document that AliasAnalysis doesn't support cross-function queries.

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

13 years agoAdd Debug+Asserts and Release+Asserts to svn:ignore properties.
Dan Gohman [Wed, 7 Jul 2010 14:12:28 +0000 (14:12 +0000)]
Add Debug+Asserts and Release+Asserts to svn:ignore properties.

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

13 years agotypo in comment, regeneration not necessary
Gabor Greif [Wed, 7 Jul 2010 13:58:46 +0000 (13:58 +0000)]
typo in comment, regeneration not necessary

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

13 years agoconditionalize by CallInst::ArgOffset
Gabor Greif [Wed, 7 Jul 2010 10:34:03 +0000 (10:34 +0000)]
conditionalize by CallInst::ArgOffset

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

13 years agoconditionalize on CallInst::ArgOffset
Gabor Greif [Wed, 7 Jul 2010 09:43:45 +0000 (09:43 +0000)]
conditionalize on CallInst::ArgOffset

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

13 years agominor cosmetic changes that happened to sit in my tree
Gabor Greif [Wed, 7 Jul 2010 09:29:07 +0000 (09:29 +0000)]
minor cosmetic changes that happened to sit in my tree

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

13 years agoRename "Release" builds as "Release+Asserts"; rename "Release-Asserts"
Duncan Sands [Wed, 7 Jul 2010 07:48:00 +0000 (07:48 +0000)]
Rename "Release" builds as "Release+Asserts"; rename "Release-Asserts"
builds to "Release".  The default build is unchanged (optimization on,
assertions on), however it is now called Release+Asserts.  The intent
is that future LLVM releases released via llvm.org will be Release builds
in the new sense, i.e. will have assertions disabled (currently they have
assertions enabled, for a more than 20% slowdown).  This will bring them
in line with MacOS releases, which ship with assertions disabled.  It also
means that "Release" now means the same things in make and cmake builds:
cmake already disables assertions for "Release" builds AFAICS.

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

13 years agoAdd AVX SSE4.2 instructions
Bruno Cardoso Lopes [Wed, 7 Jul 2010 03:39:29 +0000 (03:39 +0000)]
Add AVX SSE4.2 instructions

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

13 years agoUse only one multiclass to pinsrq instructions
Bruno Cardoso Lopes [Wed, 7 Jul 2010 01:43:01 +0000 (01:43 +0000)]
Use only one multiclass to pinsrq instructions

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

13 years agoNow that almost all SSE4.1 AVX instructions are added, move code around to more appro...
Bruno Cardoso Lopes [Wed, 7 Jul 2010 01:33:38 +0000 (01:33 +0000)]
Now that almost all SSE4.1 AVX instructions are added, move code around to more appropriate sections. No functionality changes

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

13 years agoAdd AVX SSE4.1 insertps, ptest and movntdqa instructions
Bruno Cardoso Lopes [Wed, 7 Jul 2010 01:14:56 +0000 (01:14 +0000)]
Add AVX SSE4.1 insertps, ptest and movntdqa instructions

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

13 years agoAdd AVX SSE4.1 extractps and pinsr instructions
Bruno Cardoso Lopes [Wed, 7 Jul 2010 01:01:13 +0000 (01:01 +0000)]
Add AVX SSE4.1 extractps and pinsr instructions

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

13 years agoRevert "Remove references to INSERT_SUBREG after de-SSA" r107725.
Jakob Stoklund Olesen [Wed, 7 Jul 2010 00:32:25 +0000 (00:32 +0000)]
Revert "Remove references to INSERT_SUBREG after de-SSA" r107725.

Buildbot breakage.

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

13 years agoAlso use REG_SEQUENCE for VTBX instructions.
Bob Wilson [Wed, 7 Jul 2010 00:08:54 +0000 (00:08 +0000)]
Also use REG_SEQUENCE for VTBX instructions.

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

13 years agoMark eh.sjlj.set/longjmp custom lowerings as Darwin-only since that's where
Jim Grosbach [Wed, 7 Jul 2010 00:07:57 +0000 (00:07 +0000)]
Mark eh.sjlj.set/longjmp custom lowerings as Darwin-only since that's where
they've been tested to work.

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

13 years agoAdd AVX SSE4.1 Extract Integer instructions
Bruno Cardoso Lopes [Wed, 7 Jul 2010 00:07:24 +0000 (00:07 +0000)]
Add AVX SSE4.1 Extract Integer instructions

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

13 years agoBy default, the eh.sjlj.setjmp/longjmp intrinsics should just do nothing rather
Jim Grosbach [Tue, 6 Jul 2010 23:44:52 +0000 (23:44 +0000)]
By default, the eh.sjlj.setjmp/longjmp intrinsics should just do nothing rather
than assuming a target will custom lower them. Targets which do so should
exlicitly mark them as having custom lowerings. PR7454.

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

13 years agoRemove references to INSERT_SUBREG after de-SSA
Jakob Stoklund Olesen [Tue, 6 Jul 2010 23:40:35 +0000 (23:40 +0000)]
Remove references to INSERT_SUBREG after de-SSA

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

13 years agoUse REG_SEQUENCE nodes to make the table registers for VTBL instructions be
Bob Wilson [Tue, 6 Jul 2010 23:36:25 +0000 (23:36 +0000)]
Use REG_SEQUENCE nodes to make the table registers for VTBL instructions be
allocated to consecutive registers.

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

13 years agoAccept RIP-relative symbols with 'i' constraint, and
Dale Johannesen [Tue, 6 Jul 2010 23:27:00 +0000 (23:27 +0000)]
Accept RIP-relative symbols with 'i' constraint, and
print the (%rip) only if the 'a' modifier is present.
PR 7528.

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

13 years agoConvert INSERT_SUBREG to COPY in TwoAddressInstructionPass.
Jakob Stoklund Olesen [Tue, 6 Jul 2010 23:26:25 +0000 (23:26 +0000)]
Convert INSERT_SUBREG to COPY in TwoAddressInstructionPass.

INSERT_SUBREG will now only appear in SSA machine instructions.

Fix the handling of partial redefs in ProcessImplicitDefs. This is now relevant
since partial redef COPY instructions appear.

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

13 years agoTrack defs for all aliases in NEONMoveFix.
Jakob Stoklund Olesen [Tue, 6 Jul 2010 23:26:23 +0000 (23:26 +0000)]
Track defs for all aliases in NEONMoveFix.

This means that an instruction defining an S register will affect the domain of
the parent D register.

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

13 years agoAdd the rest of AVX SSE4.1 packed move with sign/zero extend instructions
Bruno Cardoso Lopes [Tue, 6 Jul 2010 23:15:17 +0000 (23:15 +0000)]
Add the rest of AVX SSE4.1 packed move with sign/zero extend instructions

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

13 years agoMake test not hang waiting for input.
Dale Johannesen [Tue, 6 Jul 2010 23:06:58 +0000 (23:06 +0000)]
Make test not hang waiting for input.

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

13 years agoAdd part of AVX SSE4.1 packed move with sign/zero extend instructions
Bruno Cardoso Lopes [Tue, 6 Jul 2010 23:01:41 +0000 (23:01 +0000)]
Add part of AVX SSE4.1 packed move with sign/zero extend instructions

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

13 years agoFix comment from previous patch
Bruno Cardoso Lopes [Tue, 6 Jul 2010 22:38:32 +0000 (22:38 +0000)]
Fix comment from previous patch

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

13 years agoAdd AVX vblendvpd, vblendvps and vpblendvb instructions
Bruno Cardoso Lopes [Tue, 6 Jul 2010 22:36:24 +0000 (22:36 +0000)]
Add AVX vblendvpd, vblendvps and vpblendvb instructions
Update VEX encoding to support those new instructions

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

13 years agoCanLowerReturn doesn't need a SelectionDAG; it just needs an LLVMContext.
Dan Gohman [Tue, 6 Jul 2010 22:19:37 +0000 (22:19 +0000)]
CanLowerReturn doesn't need a SelectionDAG; it just needs an LLVMContext.

SelectBasicBlock doesn't needs its BasicBlock argument.

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

13 years agoPropagate debug loc.
Devang Patel [Tue, 6 Jul 2010 22:08:15 +0000 (22:08 +0000)]
Propagate debug loc.

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

13 years agoRepresent NEON load/store alignments in bytes, not bits.
Bob Wilson [Tue, 6 Jul 2010 21:26:18 +0000 (21:26 +0000)]
Represent NEON load/store alignments in bytes, not bits.

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

13 years agoOne more case assuming that subregs have live ranges.
Jakob Stoklund Olesen [Tue, 6 Jul 2010 21:13:03 +0000 (21:13 +0000)]
One more case assuming that subregs have live ranges.

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

13 years agoClosing tags start with slashes.
John McCall [Tue, 6 Jul 2010 21:07:14 +0000 (21:07 +0000)]
Closing tags start with slashes.

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

13 years agoFix buildbot breakage where a def is missing.
Jakob Stoklund Olesen [Tue, 6 Jul 2010 21:06:39 +0000 (21:06 +0000)]
Fix buildbot breakage where a def is missing.

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

13 years agoAdd fixme.
Devang Patel [Tue, 6 Jul 2010 21:05:17 +0000 (21:05 +0000)]
Add fixme.

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

13 years agominor typo
Chris Lattner [Tue, 6 Jul 2010 20:51:35 +0000 (20:51 +0000)]
minor typo

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

13 years agoBe more forgiving when calculating alias interference for physreg coalescing.
Jakob Stoklund Olesen [Tue, 6 Jul 2010 20:31:51 +0000 (20:31 +0000)]
Be more forgiving when calculating alias interference for physreg coalescing.

It is OK for an alias live range to overlap if there is a copy to or from the
physical register. CoalescerPair can work out if the copy is coalescable
independently of the alias.

This means that we can join with the actual destination interval instead of
using the getOrigDstReg() hack. It is no longer necessary to merge clobber
ranges into subregisters.

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

13 years agoReapply r107655 with fixes; insert the pseudo instruction into
Dan Gohman [Tue, 6 Jul 2010 20:24:04 +0000 (20:24 +0000)]
Reapply r107655 with fixes; insert the pseudo instruction into
the block before calling the expansion hook. And don't
put EFLAGS in a mbb's live-in list twice.

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

13 years agoAdd X86_64 ELF relocation values and ELF64 relocation classes.
Matt Fleming [Tue, 6 Jul 2010 18:44:02 +0000 (18:44 +0000)]
Add X86_64 ELF relocation values and ELF64 relocation classes.

Patch from Roman Divacky.

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

13 years agoAdd some more ELF OSABI values as found in the System V Application
Matt Fleming [Tue, 6 Jul 2010 18:36:57 +0000 (18:36 +0000)]
Add some more ELF OSABI values as found in the System V Application
Binary Interface specification.

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

13 years agoFix to 80-col.
Eric Christopher [Tue, 6 Jul 2010 18:35:20 +0000 (18:35 +0000)]
Fix to 80-col.

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

13 years agoProvide IRBuilder conveniences for creating integer constants at common widths,
John McCall [Tue, 6 Jul 2010 18:34:49 +0000 (18:34 +0000)]
Provide IRBuilder conveniences for creating integer constants at common widths,
and give a more precise return type for some of the type-creation methods.

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

13 years agoAlphabetize the list of function parameters.
Nick Lewycky [Tue, 6 Jul 2010 18:24:09 +0000 (18:24 +0000)]
Alphabetize the list of function parameters.

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

13 years agoFix PR7545 crash.
Devang Patel [Tue, 6 Jul 2010 18:18:32 +0000 (18:18 +0000)]
Fix PR7545 crash.

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

13 years agoProvide an abstraction to save and restore the current insertion point of
John McCall [Tue, 6 Jul 2010 18:07:52 +0000 (18:07 +0000)]
Provide an abstraction to save and restore the current insertion point of
an IRBuilder.

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

13 years agoDon't create neon moves in CopyRegToReg. NEONMoveFixPass will do the conversion
Rafael Espindola [Tue, 6 Jul 2010 16:24:34 +0000 (16:24 +0000)]
Don't create neon moves in CopyRegToReg. NEONMoveFixPass will do the conversion
if profitable.

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

13 years agotighten up this code.
Chris Lattner [Tue, 6 Jul 2010 15:59:27 +0000 (15:59 +0000)]
tighten up this code.

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

13 years agoBring the list of passes and their descriptions up to date.
Duncan Sands [Tue, 6 Jul 2010 15:52:15 +0000 (15:52 +0000)]
Bring the list of passes and their descriptions up to date.
Patch by Kenneth Hoste.

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

13 years agoRevert r107655.
Dan Gohman [Tue, 6 Jul 2010 15:49:48 +0000 (15:49 +0000)]
Revert r107655.

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

13 years agosecond round of low-level interface squeeze-out:
Gabor Greif [Tue, 6 Jul 2010 15:44:11 +0000 (15:44 +0000)]
second round of low-level interface squeeze-out:
making all of CallInst's low-level operand accessors
private

If you get compile errors I strongly urge you to
update your code.

I tried to write the necessary clues into the
header where the compiler may point to, but no
guarantees. It works for my GCC.

You have several options to update your code:

- you can use the v2.8 ArgOperand accessors
- you can go via a temporary CallSite
- you can upcast to, say, User and call its
  low-level accessors if your code is definitely
  operand-order agnostic.

If you run into serious problems, please
comment in below thread (and back out this
revision only if absolutely necessary):

<http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271>

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

13 years agoAdd versions of OutputArgReg, AnalyzeReturn, and AnalyzeCallOperands
Dan Gohman [Tue, 6 Jul 2010 15:39:54 +0000 (15:39 +0000)]
Add versions of OutputArgReg, AnalyzeReturn, and AnalyzeCallOperands
which do not depend on SelectionDAG.

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

13 years agoAdd a new CCValAssign LocInfo value, and a comment explaining what it
Dan Gohman [Tue, 6 Jul 2010 15:35:06 +0000 (15:35 +0000)]
Add a new CCValAssign LocInfo value, and a comment explaining what it
should be used for.

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

13 years agoMake getMinimalPhysRegClass' comment mention what makes it different
Dan Gohman [Tue, 6 Jul 2010 15:31:55 +0000 (15:31 +0000)]
Make getMinimalPhysRegClass' comment mention what makes it different
from getPhysicalRegisterRegClass.

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

13 years agoNote the relationship between C99 restrict and LLVM noalias, and
Dan Gohman [Tue, 6 Jul 2010 15:26:33 +0000 (15:26 +0000)]
Note the relationship between C99 restrict and LLVM noalias, and
clarify a few other things.

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

13 years agoFix a major regression on COFF targets introduced by r103267: 'discardable' section...
Anton Korobeynikov [Tue, 6 Jul 2010 15:24:56 +0000 (15:24 +0000)]
Fix a major regression on COFF targets introduced by r103267: 'discardable' section means that it is used only during the program load and can be discarded afterwards.
This way *only* debug sections can be discarded, but not the opposite. Seems like the copy-and-pasto from ELF code, since there it contains the reverse flag ('alloc').

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

13 years agoAdd some more TODO comments.
Dan Gohman [Tue, 6 Jul 2010 15:23:00 +0000 (15:23 +0000)]
Add some more TODO comments.

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

13 years agoAdd a comment.
Dan Gohman [Tue, 6 Jul 2010 15:21:57 +0000 (15:21 +0000)]
Add a comment.

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

13 years agoFix a bunch of custom-inserter functions to handle the case where
Dan Gohman [Tue, 6 Jul 2010 15:18:19 +0000 (15:18 +0000)]
Fix a bunch of custom-inserter functions to handle the case where
the pseudo instruction is not at the end of the block.

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

13 years agoRemove mistakenly added test.
Eric Christopher [Tue, 6 Jul 2010 05:20:13 +0000 (05:20 +0000)]
Remove mistakenly added test.

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

13 years agoFix up -fstack-protector on linux to use the segment
Eric Christopher [Tue, 6 Jul 2010 05:18:56 +0000 (05:18 +0000)]
Fix up -fstack-protector on linux to use the segment
registers.  Split out testcases per architecture and os
now.

Patch from Nelson Elhage.

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

13 years agoDetabify this file.
Nick Lewycky [Tue, 6 Jul 2010 03:53:43 +0000 (03:53 +0000)]
Detabify this file.

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

13 years agoAdd default value to setIsNoInline for parity with the other methods of its
Nick Lewycky [Tue, 6 Jul 2010 03:53:22 +0000 (03:53 +0000)]
Add default value to setIsNoInline for parity with the other methods of its
kind.

Also fold some functions that fit on a line to a single line.

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

13 years agoFix typo 'getter' where 'setter' was intended.
Nick Lewycky [Tue, 6 Jul 2010 03:52:37 +0000 (03:52 +0000)]
Fix typo 'getter' where 'setter' was intended.

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

13 years agoHave the X86 backend use Triple instead of a string and some enums.
Eric Christopher [Mon, 5 Jul 2010 19:26:33 +0000 (19:26 +0000)]
Have the X86 backend use Triple instead of a string and some enums.

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

13 years agoRemove some unused/redundant code.
Kalle Raiskila [Mon, 5 Jul 2010 18:40:09 +0000 (18:40 +0000)]
Remove some unused/redundant code.

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

13 years agomore tidying.
Chris Lattner [Mon, 5 Jul 2010 05:53:14 +0000 (05:53 +0000)]
more tidying.

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

13 years agoanother v2f32 case, in this case showing poor codegen.
Chris Lattner [Mon, 5 Jul 2010 05:52:56 +0000 (05:52 +0000)]
another v2f32 case, in this case showing poor codegen.

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

13 years agosome notes about suboptimal insertps's
Chris Lattner [Mon, 5 Jul 2010 05:48:41 +0000 (05:48 +0000)]
some notes about suboptimal insertps's

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

13 years agorandom tidying
Chris Lattner [Mon, 5 Jul 2010 05:36:21 +0000 (05:36 +0000)]
random tidying

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

13 years agorip out even more sporadic v2f32 support.
Chris Lattner [Mon, 5 Jul 2010 04:38:33 +0000 (04:38 +0000)]
rip out even more sporadic v2f32 support.

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

13 years agorip out the various v2f32 "mmx" handling logic, now that
Chris Lattner [Mon, 5 Jul 2010 04:36:27 +0000 (04:36 +0000)]
rip out the various v2f32 "mmx" handling logic, now that
v2f32 is illegal on x86.

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

13 years agofix test on non-x86 hosts.
Chris Lattner [Mon, 5 Jul 2010 03:56:55 +0000 (03:56 +0000)]
fix test on non-x86 hosts.

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

13 years agoPrint symbolic subreg indices on REG_SEQUENCE and INSERT_SUBREG.
Jakob Stoklund Olesen [Sun, 4 Jul 2010 23:24:23 +0000 (23:24 +0000)]
Print symbolic subreg indices on REG_SEQUENCE and INSERT_SUBREG.

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

13 years agoJust rip v2f32 support completely out of the X86 backend. In
Chris Lattner [Sun, 4 Jul 2010 23:07:25 +0000 (23:07 +0000)]
Just rip v2f32 support completely out of the X86 backend.  In
the example in the testcase, we now generate:

_test1:                                 ## @test1
movss 4(%esp), %xmm0
addss 8(%esp), %xmm0
movl 12(%esp), %eax
movss %xmm0, (%eax)
ret

instead of:

_test1:                                                     ## @test1
subl $20, %esp
movl 24(%esp), %eax
movq %mm0, (%esp)
movq %mm0, 8(%esp)
movss (%esp), %xmm0
addss 12(%esp), %xmm0
movss %xmm0, (%eax)
addl $20, %esp
ret

v2f32 support did not work reliably because most of the X86
backend didn't know it was legal.  It was apparently only added
to support returning source-level v2f32 values in MMX registers
in x86-32 mode.  If ABI compatibility is important on this
GCC-extended-vector type for some reason, then the frontend
should generate IR that returns v2i32 instead of v2f32.  However,
we generally don't try very hard to be abi compatible on gcc
extended vectors.

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

13 years agofix PR7518 - terrible codegen of <2 x float>, by only marking
Chris Lattner [Sun, 4 Jul 2010 22:57:10 +0000 (22:57 +0000)]
fix PR7518 - terrible codegen of <2 x float>, by only marking
v2f32 as legal in 32-bit mode.  It is just as terrible there,
but I just care about x86-64 and noone claims it is valuable
in 64-bit mode.

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

13 years agoindentation
Chris Lattner [Sun, 4 Jul 2010 22:56:10 +0000 (22:56 +0000)]
indentation

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

13 years agoInfer alignments of fixed frame objects when they are constructed. This ensures remat...
Evan Cheng [Sun, 4 Jul 2010 18:52:05 +0000 (18:52 +0000)]
Infer alignments of fixed frame objects when they are constructed. This ensures remat'ed loads from fixed slots have the right alignments.

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

13 years agoindmemrem and lowerallocs are gone.
Chris Lattner [Sun, 4 Jul 2010 17:36:43 +0000 (17:36 +0000)]
indmemrem and lowerallocs are gone.

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

13 years agoRevert r107583. I no longer think that this is the way to solve the problem.
Bill Wendling [Sun, 4 Jul 2010 09:16:57 +0000 (09:16 +0000)]
Revert r107583. I no longer think that this is the way to solve the problem.

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

13 years agoMark sse_load_f32 and sse_load_f64 as having memory operands
Bill Wendling [Sun, 4 Jul 2010 08:59:55 +0000 (08:59 +0000)]
Mark sse_load_f32 and sse_load_f64 as having memory operands
(SDNPMemOperand). This way when they're morphed the memory operands will be
copied as well.

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

13 years agoback out r107580, I have seen what I wanted
Gabor Greif [Sun, 4 Jul 2010 08:59:25 +0000 (08:59 +0000)]
back out r107580, I have seen what I wanted

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

13 years agoProper indentation.
Bill Wendling [Sun, 4 Jul 2010 08:58:43 +0000 (08:58 +0000)]
Proper indentation.

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

13 years ago[another test commit, just to tickle the selfhost buildbots; I'll back out in a few...
Gabor Greif [Sun, 4 Jul 2010 07:42:31 +0000 (07:42 +0000)]
[another test commit, just to tickle the selfhost buildbots; I'll back out in a few minutes]

second round of low-level interface squeeze-out:
making all of CallInst's low-level operand accessors
private

If you get compile errors I strongly urge you to
update your code.

I tried to write the necessary clues into the
header where the compiler may point to, but no
guarantees. It works for my GCC.

You have several options to update your code:

- you can use the v2.8 ArgOperand accessors
- you can go via a temporary CallSite
- you can upcast to, say, User and call its
  low-level accessors if your code is definitely
  operand-order agnostic.

If you run into serious problems, please
comment in below thread (and back out this
revision only if absolutely necessary):

<http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271>

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

13 years agoMinor amendment to switch-lowering improvement.
Eli Friedman [Sat, 3 Jul 2010 08:43:32 +0000 (08:43 +0000)]
Minor amendment to switch-lowering improvement.

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