Benjamin Kramer [Thu, 8 Jul 2010 11:39:10 +0000 (11:39 +0000)]
Teach instcombine to transform
(X >s -1) ? C1 : C2 and (X <s 0) ? C2 : C1
into ((X >>s 31) & (C2 - C1)) + C1, avoiding the conditional.
This optimization could be extended to take non-const C1 and C2 but we better
stay conservative to avoid code size bloat for now.
for
int sel(int n) {
return n >= 0 ? 60 : 100;
}
we now generate
sarl $31, %edi
andl $40, %edi
leal 60(%rdi), %eax
instead of
testl %edi, %edi
movl $60, %ecx
movl $100, %eax
cmovnsl %ecx, %eax
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107866
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 8 Jul 2010 08:27:18 +0000 (08:27 +0000)]
Tweak some docs now that the default build is called Debug+Asserts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107862
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 8 Jul 2010 07:36:46 +0000 (07:36 +0000)]
A slight reworking of the custom patterns for x86-64 tpoff codegen and
correct the testcase for valid assembly.
Needs more tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107860
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Jul 2010 06:01:49 +0000 (06:01 +0000)]
r107852 is only safe with -enable-unsafe-fp-math to account for +0.0 == -0.0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107856
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 8 Jul 2010 05:01:41 +0000 (05:01 +0000)]
Add TargetInstrInfo::copyPhysReg hook and use it from LowerSubregs.
This target hook is intended to replace copyRegToReg entirely, but for now it
calls copyRegToReg.
Any remaining calls to copyRegToReg wil be replaced by COPY instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107854
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 8 Jul 2010 02:08:50 +0000 (02:08 +0000)]
Optimize some vfp comparisons to integer ones. This patch implements the simplest case when the following conditions are met:
1. The arguments are f32.
2. The arguments are loads and they have no uses other than the comparison.
3. The comparison code is EQ or NE.
e.g.
vldr.32 s0, [r1]
vldr.32 s1, [r0]
vcmpe.f32 s1, s0
vmrs apsr_nzcv, fpscr
beq LBB0_2
=>
ldr r1, [r1]
ldr r0, [r0]
cmp r0, r1
beq LBB0_2
More complicated cases will be implemented in subsequent patches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107852
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 8 Jul 2010 01:18:23 +0000 (01:18 +0000)]
Changes to ARM tail calls, mostly cosmetic.
Add explicit testcases for tail calls within the same module.
Duplicate some code to humor those who think .w doesn't apply on ARM.
Leave this disabled on Thumb1, and add some comments explaining why it's hard
and won't gain much.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107851
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 8 Jul 2010 01:00:56 +0000 (01:00 +0000)]
Revert 107840 107839 107813 107804 107800 107797 107791.
Debug info intrinsics win for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107850
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 8 Jul 2010 00:38:54 +0000 (00:38 +0000)]
When processing frame index virtual registers, consider all available registers
(if there are any) and use the one which remains available for the longest
rather than just using the first one. This should help enable better re-use
of the loaded frame index values. rdar://
7318760
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107847
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 8 Jul 2010 00:27:05 +0000 (00:27 +0000)]
Fix the second half of PR7437: scalarrepl wasn't preserving
address spaces when SRoA'ing memcpy's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107846
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 7 Jul 2010 23:52:58 +0000 (23:52 +0000)]
Don't forward-declare registers for static allocas, which we'll
prefer to materialize as local constants. This fixes the clang
bootstrap abort.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107840
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 7 Jul 2010 23:47:25 +0000 (23:47 +0000)]
Fix -fast-isel-abort to check the right instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107839
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2010 23:16:37 +0000 (23:16 +0000)]
use PrintEscapedString to handle attribute section with escapes in it,
PR7399. The asm parser already handles this. This is of dubious
utility (see the PR) but the asmprinter was clearly broken here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107834
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 7 Jul 2010 23:04:56 +0000 (23:04 +0000)]
fix copies to/from GR8_ABCD_H even more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107832
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 7 Jul 2010 22:53:35 +0000 (22:53 +0000)]
grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107831
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 7 Jul 2010 22:51:22 +0000 (22:51 +0000)]
Handle cases where the post-RA scheduler may move instructions between the
address calculation instructions leading up to a jump table when we're trying
to convert them into a TB[H] instruction in Thumb2. This realistically
shouldn't happen much, if at all, for well formed inputs, but it's more correct
to handle it. rdar://
7387682
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107830
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2010 22:35:13 +0000 (22:35 +0000)]
finish up support for callw: PR7195
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107826
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 7 Jul 2010 22:27:31 +0000 (22:27 +0000)]
Implement the major chunk of PR7195: support for 'callw'
in the integrated assembler. Still some discussion to be
done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107825
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 7 Jul 2010 22:24:03 +0000 (22:24 +0000)]
Add more assembly opcodes for SSE compare instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107823
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 7 Jul 2010 22:20:57 +0000 (22:20 +0000)]
One MDNode may be used to create regular DIE as well as abstract DIE.
Keep track of abstract subprogram DIEs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107822
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 7 Jul 2010 22:15:37 +0000 (22:15 +0000)]
Move getExtLoad() and (some) getLoad() DebugLoc argument after EVT argument for consistency sake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107820
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 7 Jul 2010 21:52:21 +0000 (21:52 +0000)]
Print undefined/unknown debug value as "undef".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107818
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 7 Jul 2010 21:18:22 +0000 (21:18 +0000)]
Not all custom inserters create new basic blocks. If the inserter
didn't create a new block, don't reset the insert position.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107813
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 7 Jul 2010 21:06:51 +0000 (21:06 +0000)]
grammar and trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107811
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 7 Jul 2010 20:49:57 +0000 (20:49 +0000)]
Rename couple of maps.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107810
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 7 Jul 2010 20:33:27 +0000 (20:33 +0000)]
Allow copies between GR8_ABCD_L and GR8_ABCD_H.
This fixes PR7540.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107809
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 7 Jul 2010 20:16:45 +0000 (20:16 +0000)]
Update the docs for debugging JITed code with GDB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107808
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 7 Jul 2010 20:12:52 +0000 (20:12 +0000)]
80 cols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107807
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 7 Jul 2010 19:20:32 +0000 (19:20 +0000)]
Implement bottom-up fast-isel. This has the advantage of not requiring
a separate DCE pass over MachineInstrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107804
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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