1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
Commit Graph

77634 Commits

Author SHA1 Message Date
Chad Rosier
4b12a5b7fc Enable support for returning i1, i8, and i16. Nothing special todo as it's the
callee's responsibility to sign or zero-extend the return value.  The additional
test case just checks to make sure the calls are selected (i.e., -fast-isel-abort
doesn't assert).

llvm-svn: 144047
2011-11-08 00:03:32 +00:00
Pete Cooper
2f5c35ae89 Added missing newline
llvm-svn: 144046
2011-11-08 00:03:24 +00:00
Eli Friedman
8d138bf571 Revert r144034 while I try to track down a crash.
llvm-svn: 144044
2011-11-07 23:53:20 +00:00
Bill Wendling
93c08673af This code is dead, what with the new EH model and the auto-upgraders in place.
Delete!

llvm-svn: 144043
2011-11-07 23:36:48 +00:00
Jakob Stoklund Olesen
1900a5f521 Fix test for Windows as well.
llvm-svn: 144038
2011-11-07 23:10:43 +00:00
Jakob Stoklund Olesen
9380d5daff Kill and collapse outstanding DomainValues.
DomainValues that are only used by "don't care" instructions are now
collapsed to the first possible execution domain after all basic blocks
have been processed.  This typically means the PS domain on x86.

For example, the vsel_i64 and vsel_double functions in sse2-blend.ll are
completely collapsed to the PS domain instead of containing a mix of
execution domains created by isel.

llvm-svn: 144037
2011-11-07 23:08:21 +00:00
Pete Cooper
1d5d364e06 InstCombine now optimizes vector udiv by power of 2 to shifts
Fixes r8429

llvm-svn: 144036
2011-11-07 23:04:49 +00:00
Eli Friedman
c1bb1b2b09 Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on. Fixes PR11318.
llvm-svn: 144034
2011-11-07 22:51:10 +00:00
Eric Christopher
37cd1659cb Add all completed and named types to the dwarf type accelerator tables.
llvm-svn: 144027
2011-11-07 22:11:16 +00:00
Bill Wendling
5adae2d61a Add ISPC to the external projects list.
llvm-svn: 144026
2011-11-07 22:05:17 +00:00
Jakob Stoklund Olesen
c1846a4d5e Use a reverse post order instead of a DFS order.
The enterBasicBlock() function is combining live-out values from
predecessor blocks.  The RPO traversal means that more predecessors
have been visited when that happens, only back-edges are missing.

llvm-svn: 144025
2011-11-07 21:59:29 +00:00
Eric Christopher
cc8024b134 Move the hash function to using and taking a StringRef.
llvm-svn: 144024
2011-11-07 21:49:35 +00:00
Eric Christopher
e655ddfde1 Simple destructor to delete the hash data we created earlier.
llvm-svn: 144023
2011-11-07 21:49:28 +00:00
Chad Rosier
7e0e075322 Allow i1 to be promoted to i32 for ARM AAPCS and AAPCS-VFP calling convention as well.
llvm-svn: 144021
2011-11-07 21:43:40 +00:00
Jakob Stoklund Olesen
d9a8ce3f67 Extract two methods. No functional change.
llvm-svn: 144020
2011-11-07 21:40:27 +00:00
Akira Hatanaka
36db890397 Various Mips64 floating point instruction patterns.
llvm-svn: 144019
2011-11-07 21:38:58 +00:00
Akira Hatanaka
cc6491001f Add definition of the base class for floating point comparison instructions
and add Mips64's version too.

llvm-svn: 144018
2011-11-07 21:37:33 +00:00
Akira Hatanaka
dad0ae9302 Add code needed for copying between 64-bit integer and floating pointer
registers.

llvm-svn: 144017
2011-11-07 21:35:45 +00:00
Akira Hatanaka
db8cbab444 Add definitions of 64-bit instructions which move data between integer and
floating pointer registers.

llvm-svn: 144016
2011-11-07 21:32:58 +00:00
Jakob Stoklund Olesen
7b9ab07c3d MBB doesn't need to be a class member.
llvm-svn: 144015
2011-11-07 21:23:42 +00:00
Jakob Stoklund Olesen
1d5ebd6c03 Fix pass name after the source was moved.
llvm-svn: 144014
2011-11-07 21:23:39 +00:00
Benjamin Kramer
89ebc7ab4b Simplify some uses of utohexstr.
As a side effect hex is printed lowercase instead of uppercase now.

llvm-svn: 144013
2011-11-07 21:00:59 +00:00
Benjamin Kramer
34f13a0e6a Simplify code. No functionality change.
llvm-svn: 144012
2011-11-07 21:00:43 +00:00
Jakob Stoklund Olesen
d33a581d93 Fix test for Linux.
llvm-svn: 144003
2011-11-07 20:47:23 +00:00
Bill Wendling
8b76d87b10 Make sure we don't insert instructions before a landingpad instruction.
<rdar://problem/10405911>

llvm-svn: 144000
2011-11-07 19:38:34 +00:00
Jakob Stoklund Olesen
b53be3a67d Expand V_SET0 to xorps by default.
The xorps instruction is smaller than pxor, so prefer that encoding.

The ExecutionDepsFix pass will switch the encoding to pxor and xorpd
when appropriate.

llvm-svn: 143996
2011-11-07 19:15:58 +00:00
Akira Hatanaka
1114d3b99d Add definition of 64-bit load upper immediate.
llvm-svn: 143994
2011-11-07 19:10:49 +00:00
Akira Hatanaka
8a1197eb04 Include RegSaveAreaSize in the computation of stack size.
llvm-svn: 143993
2011-11-07 19:07:35 +00:00
Akira Hatanaka
b464657da4 Define functions that get or set the size of area on callee's stack frame which
is used to save va_arg or byval arguments passed in registers.

llvm-svn: 143992
2011-11-07 19:06:10 +00:00
Akira Hatanaka
3841f239d0 Use array_lengthof to compute the number of iterations of a loop.
llvm-svn: 143991
2011-11-07 19:03:40 +00:00
Akira Hatanaka
d2343cd98f Fix patterns for unaligned 32-bit load. DSLL32 or DSRL32 should be emitted
when shift amount is larger than 32.

llvm-svn: 143990
2011-11-07 19:01:49 +00:00
Akira Hatanaka
11fea5de78 Make the type of shift amount i32 in order to reduce the number of shift
instruction definitions.

llvm-svn: 143989
2011-11-07 18:59:49 +00:00
Akira Hatanaka
89c8797a02 Add 64-bit to 32-bit trunc pattern.
llvm-svn: 143988
2011-11-07 18:57:41 +00:00
Eric Christopher
2b26dd515a Use StringRef::startswith to do some string comparisons.
llvm-svn: 143982
2011-11-07 18:53:23 +00:00
Eric Christopher
1132780088 Avoid the use of a local temporary for comment twines.
llvm-svn: 143974
2011-11-07 18:34:47 +00:00
Eric Christopher
27787a743e Allow for the case where the name of the subprogram is "".
Fixes a self-host error.

llvm-svn: 143970
2011-11-07 18:10:17 +00:00
Owen Anderson
c6f0814beb Fix llvm-objdump's MachO mode to not depend on the value returned by RelocationRef::getInfo().
llvm-svn: 143966
2011-11-07 17:21:36 +00:00
Richard Osborne
87ed868306 Don't introduce custom nodes after legalization in TargetLowering::BuildSDIV()
and TargetLowering::BuildUDIV(). Fixes PR11283

llvm-svn: 143964
2011-11-07 17:09:05 +00:00
Eric Christopher
fddc6980b7 Remove unnecessary addition to API. Replace with something much simpler.
llvm-svn: 143925
2011-11-07 09:38:42 +00:00
Eric Christopher
9374b7505a Add new files to cmake.
llvm-svn: 143924
2011-11-07 09:37:06 +00:00
Eric Christopher
f9c4db49bd Add the support code to enable the dwarf accelerator tables. Upcoming patches
to fix the types section (all types, not just global types), and testcases.

The code to do the final emission is disabled by default.

llvm-svn: 143923
2011-11-07 09:24:32 +00:00
Eric Christopher
1635d9449b Add a new dwarf accelerator table prototype with the goal of replacing
the pubnames and pubtypes tables. LLDB can currently use this format
and a full spec is forthcoming and submission for standardization is planned.

A basic summary:

The dwarf accelerator tables are an indirect hash table optimized
for null lookup rather than access to known data. They are output into
an on-disk format that looks like this:

.-------------.
|  HEADER     |
|-------------|
|  BUCKETS    |
|-------------|
|  HASHES     |
|-------------|
|  OFFSETS    |
|-------------|
|  DATA       |
`-------------'

where the header contains a magic number, version, type of hash function,
the number of buckets, total number of hashes, and room for a special
struct of data and the length of that struct.

The buckets contain an index (e.g. 6) into the hashes array. The hashes
section contains all of the 32-bit hash values in contiguous memory, and
the offsets contain the offset into the data area for the particular
hash.

For a lookup example, we could hash a function name and take it modulo the
number of buckets giving us our bucket. From there we take the bucket value
as an index into the hashes table and look at each successive hash as long
as the hash value is still the same modulo result (bucket value) as earlier.
If we have a match we look at that same entry in the offsets table and
grab the offset in the data for our final match.

llvm-svn: 143921
2011-11-07 09:18:42 +00:00
Eric Christopher
64ea0f378b Expose a way to get the beginning of the dwarf string section.
llvm-svn: 143920
2011-11-07 09:18:38 +00:00
Eric Christopher
e0fc702988 Fix up comment.
llvm-svn: 143919
2011-11-07 09:18:35 +00:00
Eric Christopher
07bba823ab Typo.
llvm-svn: 143918
2011-11-07 09:18:32 +00:00
Craig Topper
7eab73f510 Add AVX2 variable shift instructions and intrinsics.
llvm-svn: 143915
2011-11-07 08:26:24 +00:00
Craig Topper
b1ef950217 Add AVX2 VPMOVMASK instructions and intrinsics.
llvm-svn: 143904
2011-11-07 03:20:35 +00:00
Craig Topper
d422190c0f Add AVX2 VEXTRACTI128 and VINSERTI128 instructions. Fix VPERM2I128 to be qualified with HasAVX2 instead of HasAVX. Mark VINSERTF128 and VEXTRACTF128 as never having side effects.
llvm-svn: 143902
2011-11-07 02:00:04 +00:00
Craig Topper
2773b8846e Fix accidental edit to __builtin_ia32_vperm2f128_ps256's name
llvm-svn: 143901
2011-11-07 00:54:28 +00:00
NAKAMURA Takumi
f6029269cb Fix CRT selection logic when using CMake NMake generator.
CMAKE_CONFIGURATION_TYPES is only set on Visual Studio generators.  For NMake CMAKE_BUILD_TYPE is used instead.

Patch by EJose Fonseca!

llvm-svn: 143898
2011-11-06 23:37:22 +00:00