1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
Commit Graph

61701 Commits

Author SHA1 Message Date
Gabor Greif
d3bf34c9d8 use ArgOperand API (the simple part)
llvm-svn: 106837
2010-06-25 09:44:37 +00:00
Gabor Greif
dd11f62c9d use ArgOperand API
llvm-svn: 106836
2010-06-25 09:38:13 +00:00
Gabor Greif
138c65a703 use ArgOperand API
llvm-svn: 106835
2010-06-25 09:36:23 +00:00
Duncan Sands
8292b412bc Remove unused variables.
llvm-svn: 106834
2010-06-25 09:35:33 +00:00
Gabor Greif
3a105d7dcf use ArgOperand API and CallSite to access arguments of CallInst
llvm-svn: 106833
2010-06-25 09:03:52 +00:00
Gabor Greif
9a159af577 use ArgOperand API and CallSite to access arguments of CallInst
llvm-svn: 106829
2010-06-25 08:48:19 +00:00
Gabor Greif
4f48ff5c1b use ArgOperand API
llvm-svn: 106828
2010-06-25 08:24:59 +00:00
Gabor Greif
77b886a22b prune an include
llvm-svn: 106827
2010-06-25 08:16:50 +00:00
Gabor Greif
42cbeeeb2e use ArgOperand API (one more hunk I could split)
llvm-svn: 106825
2010-06-25 07:58:41 +00:00
Gabor Greif
d2559bceee use ArgOperand API (some hunks I could split)
llvm-svn: 106824
2010-06-25 07:57:14 +00:00
Gabor Greif
7e08d99fd4 use ArgOperand API; tighten type of handleFreeWithNonTrivialDependency to be able to use isFreeCall whithout a cast or new overload
llvm-svn: 106823
2010-06-25 07:40:32 +00:00
Bob Wilson
a779332a5e Add missing ARM and Thumb data layout info for vector types.
Radar 8128745.

llvm-svn: 106820
2010-06-25 04:41:08 +00:00
Bob Wilson
0a84b9b677 Reduce indentation.
llvm-svn: 106819
2010-06-25 04:12:31 +00:00
Dale Johannesen
8cbc00b2ac Fix a case where an earlyclobber operand of an asm
is reused as an input.  PR 4118.  Testcase is too big,
as usual with bugs in this area, but there's one in
the PR.

llvm-svn: 106816
2010-06-25 00:49:43 +00:00
Bruno Cardoso Lopes
bde2881855 Add some AVX convert instructions
llvm-svn: 106815
2010-06-25 00:39:30 +00:00
Jakob Stoklund Olesen
7e15f420d0 Make sure all eliminated kills are removed from VNInfo lists.
This fixes PR7479 and PR7485. The test cases from those PRs are big, so not
included. However, PR7485 comes from self hosting on FreeBSD, so we will surely
hear about any regression.

llvm-svn: 106811
2010-06-24 23:57:35 +00:00
Dan Gohman
07ff7584a7 Don't write an output file to cwd, and put an rdar prefix on
an rdar number.

llvm-svn: 106810
2010-06-24 23:45:15 +00:00
Dan Gohman
f493a5d0d7 Add some comments.
llvm-svn: 106809
2010-06-24 23:41:59 +00:00
Bruno Cardoso Lopes
4663112339 Refactoring of SSE convert intrinsics
llvm-svn: 106808
2010-06-24 23:37:07 +00:00
Dan Gohman
0be71f4660 Teach EmitLiveInCopies to omit copies for unused virtual registers,
and to clean up unused incoming physregs from the live-in list.

llvm-svn: 106805
2010-06-24 22:23:02 +00:00
Bruno Cardoso Lopes
bacc90a80d Refactoring of SSE conversion instructions
llvm-svn: 106804
2010-06-24 22:22:21 +00:00
Bob Wilson
5ddef25de2 Change array references to match my previous change to use the public type
names for the array fields.

llvm-svn: 106803
2010-06-24 22:21:19 +00:00
Oscar Fuentes
4c30188483 DataTypes.h.cmake (MSVC): Protect some #define's and use specific
suffixes for integer types.

llvm-svn: 106797
2010-06-24 22:05:52 +00:00
Bruno Cardoso Lopes
84ce865fea Refactor SSE cmp intrinsics and declare the same for AVX
llvm-svn: 106796
2010-06-24 22:04:40 +00:00
Bob Wilson
45cb379048 Fix up some comments.
llvm-svn: 106795
2010-06-24 22:04:30 +00:00
Bob Wilson
f0df97699e Use the struct tags mandated by ARM's ABI. Also use the public type names for
the array fields in these structs.

llvm-svn: 106794
2010-06-24 22:03:41 +00:00
Bill Wendling
eebd6fa159 It's possible that a flag is added to the SDNode that points back to the
original SDNode. This is badness. Also, this function allows one SDNode to point
multiple flags to another SDNode. Badness as well.

llvm-svn: 106793
2010-06-24 22:00:37 +00:00
Devang Patel
af1d4eede5 DBG_VALUE machine instruction pointing to undefined register for a variable justify a separate scope if the variable is inlined function's argument.
Radar 8122864.

llvm-svn: 106792
2010-06-24 21:51:19 +00:00
Jakob Stoklund Olesen
3b3f37f51a Don't return a std::vector in the Spiller interface, but take a reference to a
vector instead. This avoids needless copying and allocation.

Add documentation.

llvm-svn: 106788
2010-06-24 20:54:29 +00:00
Bruno Cardoso Lopes
11a236d970 - Add AVX COMI{SS,SD}{rr,rm} and UCOMI{SS,SD}{rr,rm}.
- Fix a small VEX encoding issue.
- Move compare instructions to their appropriate place.

llvm-svn: 106787
2010-06-24 20:48:23 +00:00
Jakob Stoklund Olesen
7a5bf34236 Remove the now unused LiveIntervals::getVNInfoSourceReg().
This method was always a bit too simplistic for the real world. It didn't really
deal with subregisters and such.

llvm-svn: 106781
2010-06-24 20:18:15 +00:00
Jakob Stoklund Olesen
9a567d08e5 Teach AdjustCopiesBackFrom to also use CoalescerPair to identify compatible copies.
llvm-svn: 106780
2010-06-24 20:16:00 +00:00
Dale Johannesen
257b602b8b Disallow matching "i" constraint to symbol addresses when
address requires a register or secondary load to compute
(most PIC modes).  This improves "g" constraint handling.  8015842.

The test from 2007 is attempting to test the fix for PR1761,
but since -relocation-model=static doesn't work on Darwin
x86-64, it was not testing what it was supposed to be testing
and was passing erroneously.  Fixed to use Linux x86-64.

llvm-svn: 106779
2010-06-24 20:14:51 +00:00
Eric Christopher
7405c7bdb8 Silence some unused variable warnings.
llvm-svn: 106778
2010-06-24 20:14:34 +00:00
Jakob Stoklund Olesen
1a6a8cfc51 Remove the -fast-spill option.
This code path has never really been used, and we are going to be handling
spilling through the Spiller interface in the future.

llvm-svn: 106777
2010-06-24 19:56:08 +00:00
Dan Gohman
47d999b275 Document problems that I encountered when working on -scev-aa.
llvm-svn: 106776
2010-06-24 19:34:03 +00:00
Evan Cheng
c3976de390 Oops. IT block formation pass needs to be run at any optimization level.
llvm-svn: 106775
2010-06-24 19:10:14 +00:00
Bill Wendling
09bb5dd804 Loosen up the requirements in the Horrible Hack(tm) to include all selectors
which don't have a catch-all associated with them not just clean-ups. This fixes
the SingleSource/Benchmarks/Shootout-C++/except.cpp testcase that broke because
of my change r105902.

llvm-svn: 106772
2010-06-24 18:49:10 +00:00
Eli Friedman
0698ec53f6 Always allow Thumb-2 SXTB, SXTH, UXTB, and UXTH. Fixes PR7324.
llvm-svn: 106770
2010-06-24 18:20:04 +00:00
Jakob Stoklund Olesen
9f8104463f Replace a big gob of old coalescer logic with the new CoalescerPair class.
CoalescerPair can determine if a copy can be coalesced, and which register gets
merged away. The old logic in SimpleRegisterCoalescing had evolved into
something a bit too convoluted.

This second attempt fixes some crashes that only occurred Linux.

llvm-svn: 106769
2010-06-24 18:15:01 +00:00
Dan Gohman
b9c2ab6698 Add an exports file for the Hello example plugin.
llvm-svn: 106768
2010-06-24 17:36:51 +00:00
Jakob Stoklund Olesen
3ac29b4f55 Print the LSBs of a SlotIndex symbolically using letters referring to the
[L]oad, [u]se, [d]ef, or [S]tore slots.

This makes it easier to see if two indices refer to the same instruction,
avoiding mental mod 4 calculations.

llvm-svn: 106766
2010-06-24 17:31:07 +00:00
Dan Gohman
e457bb6d5a Simplify this code; switch lowering shouldn't produce cases
which trivially fold away.

llvm-svn: 106765
2010-06-24 17:08:31 +00:00
Dan Gohman
dc46a52b6a A few minor micro-optimizations.
llvm-svn: 106764
2010-06-24 16:57:52 +00:00
Dan Gohman
006947c4da Teach getExactSDiv to evaluate x/1 to x up front, as it's a common
enough special case, and it theoretically allows more folding because
it works even when x is unanalyzable.

llvm-svn: 106763
2010-06-24 16:51:25 +00:00
Bob Wilson
26297589b7 PR7458: Try commuting Thumb2 instruction operands to put them into 2-address
form so they can be narrowed to 16-bit instructions.

llvm-svn: 106762
2010-06-24 16:50:20 +00:00
Bob Wilson
2b2d62ad11 Edit and clarify comments for TargetInstrInfo methods:
None of the existing implementations of commuteInstruction create new
instructions unless the NewMI parameter is true, but the comment had
implied otherwise.

findCommutedOpIndices returns false, not true, when it doesn't know
how to commute the instruction.

llvm-svn: 106761
2010-06-24 16:48:26 +00:00
Dan Gohman
bfbfa95b51 Don't try to preserve pointer types in SCEVConstants; the old code
was over-complicated.

llvm-svn: 106760
2010-06-24 16:47:03 +00:00
Dan Gohman
bb9ce7fbcd Fix copy+pasto issues in isMulSExtable.
llvm-svn: 106759
2010-06-24 16:45:11 +00:00
Dan Gohman
35a5a7285a Make the trunc code consistent with the zext and sext code in its
handling of pointer types.

llvm-svn: 106757
2010-06-24 16:33:38 +00:00