Jakob Stoklund Olesen
813eedd207
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
2010-07-06 21:06:39 +00:00
Devang Patel
6db2389d69
Add fixme.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107697 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 21:05:17 +00:00
Chris Lattner
211244aa52
minor typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107696 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 20:51:35 +00:00
Jakob Stoklund Olesen
9c2e7ca351
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
2010-07-06 20:31:51 +00:00
Dan Gohman
14152b480d
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
2010-07-06 20:24:04 +00:00
Matt Fleming
004c82ad7c
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
2010-07-06 18:44:02 +00:00
Matt Fleming
e07cc5dab1
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
2010-07-06 18:36:57 +00:00
Eric Christopher
894339e19f
Fix to 80-col.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107684 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 18:35:20 +00:00
John McCall
b271d8679d
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
2010-07-06 18:34:49 +00:00
Nick Lewycky
76ec37a138
Alphabetize the list of function parameters.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107680 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 18:24:09 +00:00
Devang Patel
be35be614c
Fix PR7545 crash.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107678 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 18:18:32 +00:00
John McCall
5ed9eee61a
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
2010-07-06 18:07:52 +00:00
Rafael Espindola
a5e82a5748
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
2010-07-06 16:24:34 +00:00
Chris Lattner
f8bd392dce
tighten up this code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107670 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 15:59:27 +00:00
Duncan Sands
5c60386dbc
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
2010-07-06 15:52:15 +00:00
Dan Gohman
258c58cc62
Revert r107655.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107668 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 15:49:48 +00:00
Gabor Greif
e9e1215d94
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
2010-07-06 15:44:11 +00:00
Dan Gohman
aa8c19405a
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
2010-07-06 15:39:54 +00:00
Dan Gohman
802e28a8d7
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
2010-07-06 15:35:06 +00:00
Dan Gohman
c2af869d62
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
2010-07-06 15:31:55 +00:00
Dan Gohman
ff70fe40aa
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
2010-07-06 15:26:33 +00:00
Anton Korobeynikov
36335be3b9
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
2010-07-06 15:24:56 +00:00
Dan Gohman
0ce249911b
Add some more TODO comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107657 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 15:23:00 +00:00
Dan Gohman
d3b6e41ffb
Add a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107656 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 15:21:57 +00:00
Dan Gohman
b81c771c0d
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
2010-07-06 15:18:19 +00:00
Eric Christopher
7d26218ebe
Remove mistakenly added test.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107641 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 05:20:13 +00:00
Eric Christopher
f7a0c7bf8b
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
2010-07-06 05:18:56 +00:00
Nick Lewycky
10d2f4d01b
Detabify this file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107637 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 03:53:43 +00:00
Nick Lewycky
b9933b8f8f
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
2010-07-06 03:53:22 +00:00
Nick Lewycky
b3344f87ac
Fix typo 'getter' where 'setter' was intended.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107635 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-06 03:52:37 +00:00
Eric Christopher
62f35a2c13
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
2010-07-05 19:26:33 +00:00
Kalle Raiskila
5cb97d16f8
Remove some unused/redundant code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107622 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-05 18:40:09 +00:00
Chris Lattner
32b4b5aea6
more tidying.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107615 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-05 05:53:14 +00:00
Chris Lattner
11b3d1621d
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
2010-07-05 05:52:56 +00:00
Chris Lattner
c06cbad141
some notes about suboptimal insertps's
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107613 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-05 05:48:41 +00:00
Chris Lattner
598751ed25
random tidying
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107612 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-05 05:36:21 +00:00
Chris Lattner
a5b412581c
rip out even more sporadic v2f32 support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107610 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-05 04:38:33 +00:00
Chris Lattner
39aa20a981
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
2010-07-05 04:36:27 +00:00
Chris Lattner
4fd1ab3bec
fix test on non-x86 hosts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107608 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-05 03:56:55 +00:00
Jakob Stoklund Olesen
b1e11455d1
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
2010-07-04 23:24:23 +00:00
Chris Lattner
f172ecd964
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
2010-07-04 23:07:25 +00:00
Chris Lattner
e35d9842f7
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
2010-07-04 22:57:10 +00:00
Chris Lattner
9d19989fe3
indentation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107599 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-04 22:56:10 +00:00
Evan Cheng
f2f4903687
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
2010-07-04 18:52:05 +00:00
Chris Lattner
aa6c855c8e
indmemrem and lowerallocs are gone.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107587 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-04 17:36:43 +00:00
Bill Wendling
f43f6bc3ec
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
2010-07-04 09:16:57 +00:00
Bill Wendling
4a991a6fa6
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
2010-07-04 08:59:55 +00:00
Gabor Greif
69439cb919
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
2010-07-04 08:59:25 +00:00
Bill Wendling
d9cb7ca388
Proper indentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107581 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-04 08:58:43 +00:00
Gabor Greif
4de8ba8940
[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
2010-07-04 07:42:31 +00:00