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
Craig Topper
01b852b95a
More AVX2 instructions and their intrinsics.
...
llvm-svn: 143895
2011-11-06 23:04:08 +00:00
Benjamin Kramer
c597902ecc
Replace (Lower|Upper)caseString in favor of StringRef's newest methods.
...
llvm-svn: 143891
2011-11-06 20:37:06 +00:00
Benjamin Kramer
a47a6fc91b
Fix a typo.
...
llvm-svn: 143890
2011-11-06 20:36:50 +00:00