1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-01 08:23:21 +01:00
Commit Graph

62139 Commits

Author SHA1 Message Date
Jakob Stoklund Olesen
ec2c876e57 Fix buildbot breakage where a def is missing.
llvm-svn: 107698
2010-07-06 21:06:39 +00:00
Devang Patel
568037d823 Add fixme.
llvm-svn: 107697
2010-07-06 21:05:17 +00:00
Chris Lattner
3139b75beb minor typo
llvm-svn: 107696
2010-07-06 20:51:35 +00:00
Jakob Stoklund Olesen
f86de96f78 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.

llvm-svn: 107695
2010-07-06 20:31:51 +00:00
Dan Gohman
808f334f79 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.

llvm-svn: 107691
2010-07-06 20:24:04 +00:00
Matt Fleming
33be71076b Add X86_64 ELF relocation values and ELF64 relocation classes.
Patch from Roman Divacky.

llvm-svn: 107688
2010-07-06 18:44:02 +00:00
Matt Fleming
529618a11d Add some more ELF OSABI values as found in the System V Application
Binary Interface specification.

llvm-svn: 107685
2010-07-06 18:36:57 +00:00
Eric Christopher
383df15267 Fix to 80-col.
llvm-svn: 107684
2010-07-06 18:35:20 +00:00
John McCall
0e0d4bcfc8 Provide IRBuilder conveniences for creating integer constants at common widths,
and give a more precise return type for some of the type-creation methods.

llvm-svn: 107683
2010-07-06 18:34:49 +00:00
Nick Lewycky
529cb5fcd1 Alphabetize the list of function parameters.
llvm-svn: 107680
2010-07-06 18:24:09 +00:00
Devang Patel
ffc54b23fe Fix PR7545 crash.
llvm-svn: 107678
2010-07-06 18:18:32 +00:00
John McCall
2b36dbadb8 Provide an abstraction to save and restore the current insertion point of
an IRBuilder.

llvm-svn: 107677
2010-07-06 18:07:52 +00:00
Rafael Espindola
e5689571a1 Don't create neon moves in CopyRegToReg. NEONMoveFixPass will do the conversion
if profitable.

llvm-svn: 107673
2010-07-06 16:24:34 +00:00
Chris Lattner
18ba4703b0 tighten up this code.
llvm-svn: 107670
2010-07-06 15:59:27 +00:00
Duncan Sands
31db6c2247 Bring the list of passes and their descriptions up to date.
Patch by Kenneth Hoste.

llvm-svn: 107669
2010-07-06 15:52:15 +00:00
Dan Gohman
4d264f7e51 Revert r107655.
llvm-svn: 107668
2010-07-06 15:49:48 +00:00
Gabor Greif
0e5792fac6 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>

llvm-svn: 107667
2010-07-06 15:44:11 +00:00
Dan Gohman
38f2820fc3 Add versions of OutputArgReg, AnalyzeReturn, and AnalyzeCallOperands
which do not depend on SelectionDAG.

llvm-svn: 107666
2010-07-06 15:39:54 +00:00
Dan Gohman
66125b8df0 Add a new CCValAssign LocInfo value, and a comment explaining what it
should be used for.

llvm-svn: 107661
2010-07-06 15:35:06 +00:00
Dan Gohman
c88c36181f Make getMinimalPhysRegClass' comment mention what makes it different
from getPhysicalRegisterRegClass.

llvm-svn: 107660
2010-07-06 15:31:55 +00:00
Dan Gohman
33f0f11376 Note the relationship between C99 restrict and LLVM noalias, and
clarify a few other things.

llvm-svn: 107659
2010-07-06 15:26:33 +00:00
Anton Korobeynikov
3097e49515 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').

llvm-svn: 107658
2010-07-06 15:24:56 +00:00
Dan Gohman
0cea029f14 Add some more TODO comments.
llvm-svn: 107657
2010-07-06 15:23:00 +00:00
Dan Gohman
fa0252225f Add a comment.
llvm-svn: 107656
2010-07-06 15:21:57 +00:00
Dan Gohman
6a73079aba Fix a bunch of custom-inserter functions to handle the case where
the pseudo instruction is not at the end of the block.

llvm-svn: 107655
2010-07-06 15:18:19 +00:00
Eric Christopher
6f60b06434 Remove mistakenly added test.
llvm-svn: 107641
2010-07-06 05:20:13 +00:00
Eric Christopher
e873e9978c Fix up -fstack-protector on linux to use the segment
registers.  Split out testcases per architecture and os
now.

Patch from Nelson Elhage.

llvm-svn: 107640
2010-07-06 05:18:56 +00:00
Nick Lewycky
16490a3bf1 Detabify this file.
llvm-svn: 107637
2010-07-06 03:53:43 +00:00
Nick Lewycky
58798e288a 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.

llvm-svn: 107636
2010-07-06 03:53:22 +00:00
Nick Lewycky
4984ea212f Fix typo 'getter' where 'setter' was intended.
llvm-svn: 107635
2010-07-06 03:52:37 +00:00
Eric Christopher
f1bb5da020 Have the X86 backend use Triple instead of a string and some enums.
llvm-svn: 107625
2010-07-05 19:26:33 +00:00
Kalle Raiskila
59cf410bf5 Remove some unused/redundant code.
llvm-svn: 107622
2010-07-05 18:40:09 +00:00
Chris Lattner
252f82acc6 more tidying.
llvm-svn: 107615
2010-07-05 05:53:14 +00:00
Chris Lattner
3dfa348be1 another v2f32 case, in this case showing poor codegen.
llvm-svn: 107614
2010-07-05 05:52:56 +00:00
Chris Lattner
6a9b6e3253 some notes about suboptimal insertps's
llvm-svn: 107613
2010-07-05 05:48:41 +00:00
Chris Lattner
bbc150b397 random tidying
llvm-svn: 107612
2010-07-05 05:36:21 +00:00
Chris Lattner
e7c95bcd9e rip out even more sporadic v2f32 support.
llvm-svn: 107610
2010-07-05 04:38:33 +00:00
Chris Lattner
82c3b22a55 rip out the various v2f32 "mmx" handling logic, now that
v2f32 is illegal on x86.

llvm-svn: 107609
2010-07-05 04:36:27 +00:00
Chris Lattner
5c89561fc7 fix test on non-x86 hosts.
llvm-svn: 107608
2010-07-05 03:56:55 +00:00
Jakob Stoklund Olesen
9b1eb2b2ac Print symbolic subreg indices on REG_SEQUENCE and INSERT_SUBREG.
llvm-svn: 107602
2010-07-04 23:24:23 +00:00
Chris Lattner
cecaa1b061 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. 

llvm-svn: 107601
2010-07-04 23:07:25 +00:00
Chris Lattner
b17c4f3936 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.

llvm-svn: 107600
2010-07-04 22:57:10 +00:00
Chris Lattner
1e38d7d66d indentation
llvm-svn: 107599
2010-07-04 22:56:10 +00:00
Evan Cheng
9604b825a4 Infer alignments of fixed frame objects when they are constructed. This ensures remat'ed loads from fixed slots have the right alignments.
llvm-svn: 107591
2010-07-04 18:52:05 +00:00
Chris Lattner
58791300a3 indmemrem and lowerallocs are gone.
llvm-svn: 107587
2010-07-04 17:36:43 +00:00
Bill Wendling
689155c673 Revert r107583. I no longer think that this is the way to solve the problem.
llvm-svn: 107585
2010-07-04 09:16:57 +00:00
Bill Wendling
8a3ecba7a4 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.

llvm-svn: 107583
2010-07-04 08:59:55 +00:00
Gabor Greif
6fef76a35d back out r107580, I have seen what I wanted
llvm-svn: 107582
2010-07-04 08:59:25 +00:00
Bill Wendling
34feb1390d Proper indentation.
llvm-svn: 107581
2010-07-04 08:58:43 +00:00
Gabor Greif
e79dd85da8 [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>

llvm-svn: 107580
2010-07-04 07:42:31 +00:00