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

77377 Commits

Author SHA1 Message Date
Chad Rosier
ef5ee1892c Add a few FIXME comments.
llvm-svn: 142299
2011-10-17 22:54:23 +00:00
Dan Gohman
5e2d8538d7 Teach the ARC optimizer about the !clang.arc.copy_on_escape metadata
tag on objc_retainBlock calls, which indicates that they may be
optimized away. rdar://10211286.

llvm-svn: 142298
2011-10-17 22:53:25 +00:00
Jim Grosbach
8e9ca16af6 Tidy up.
llvm-svn: 142297
2011-10-17 22:41:42 +00:00
Rafael Espindola
a40b412c70 142288 broke the build:
Linking CXX executable ../../bin/llvm-as
../../lib/libLLVMAsmParser.a(LLParser.cpp.o):/home/espindola/llvm/llvm/lib/AsmParser/LLParser.cpp:function llvm::LLParser::ParseTargetDefinition(): error: undefined reference to 'llvm::TargetData::parseSpecifier(llvm::StringRef, llvm::TargetData*)'
clang-3: error: linker command failed with exit code 1 (use -v to see invocation)

Revert "Validate target data layout strings."

This reverts commit 599d2d4c25d3aee63a21d9c67a88cd43bd971b7e.

llvm-svn: 142296
2011-10-17 22:37:51 +00:00
Devang Patel
fb32a2ca1b Update DebugInfoFinder to match recent debug info encoding changes.
llvm-svn: 142295
2011-10-17 22:30:34 +00:00
Bill Wendling
8390d96c1a Now Igor, throw the switch...give my creation life!
Use the custom inserter for the ARM setjmp intrinsics. Instead of creating the
SjLj dispatch table in IR, where it frequently violates serveral assumptions --
in particular assumptions made by the landingpad instruction about what can
branch to a landing pad and what cannot. Performing this in the back-end allows
us to violate these assumptions without the IR getting angry at us.

It also allows us to perform a small optimization. We can shove the address of
the dispatch's basic block into the function context and not have to add code
around the setjmp to check for the return value and jump to the dispatch.

Neat, huh?
<rdar://problem/10116753>

llvm-svn: 142294
2011-10-17 22:26:23 +00:00
Jim Grosbach
f3d495fbbd ARM NEON "vmov.i8" immediate assembly parsing and encoding.
NEON immediates are "interesting". Start of the work to handle parsing them
in an 'as' compatible manner. Getting the matcher to play nicely with
these and the floating point immediates from VFP is an extra fun wrinkle.

llvm-svn: 142293
2011-10-17 22:26:03 +00:00
Lang Hames
416d4f3f36 Validate target data layout strings.
Invalid strings in asm files will result in parse errors. Invalid string literals passed to TargetData constructors will result in an assertion.

llvm-svn: 142288
2011-10-17 22:05:34 +00:00
Cameron Zwarich
89bd8788a1 When deleting a phi cycle after looking through copies, constrain the register
to match its final use.

With this change, all of test-suite compiles for Thumb2 with -verify-coalescing
enabled.

llvm-svn: 142287
2011-10-17 21:54:46 +00:00
Lang Hames
5ef0a146b9 Fixed quoting on default data layout option.
llvm-svn: 142286
2011-10-17 21:54:43 +00:00
Bill Wendling
6e5fb6cb2c Forgot to add the project name to the 'svn ls' command.
llvm-svn: 142282
2011-10-17 21:45:07 +00:00
Bill Wendling
0200836f77 Add message to svn mkdir command.
llvm-svn: 142280
2011-10-17 21:42:29 +00:00
Owen Anderson
e607004d1b Rewrite most of MachODump to work through the generic libObject interfaces rather than accessing the MachO internals directly.
llvm-svn: 142263
2011-10-17 21:37:35 +00:00
Owen Anderson
92666534ad Add an accessor to get the underlying MachO representation.
llvm-svn: 142261
2011-10-17 21:37:03 +00:00
Benjamin Kramer
bc2d3cbf7e Use a SmallVector for intrinsic argument types.
llvm-svn: 142259
2011-10-17 21:33:26 +00:00
Bill Wendling
8f01b6c71d Don't renumber the blocks here. This could cause problems later on if another
pass renumbers the blocks again.

llvm-svn: 142258
2011-10-17 21:32:56 +00:00
Owen Anderson
d13ef506e2 Use the correct predicate for determining if a branch is conditional or not.
llvm-svn: 142257
2011-10-17 21:21:44 +00:00
Bill Wendling
2c5486d770 Add support for the Objective-C personality function to the instruction
combining of the landingpad instruction. The ObjC personality function acts
almost identically to the C++ personality function. In particular, it uses
"null" as a "catch-all" value.

llvm-svn: 142256
2011-10-17 21:20:24 +00:00
Cameron Zwarich
4f62e0c1e3 Pseudoinstructions should not be less constrained than the instruction they are
lowered to. This fixes a lot of verifier failures on the test suite.

llvm-svn: 142254
2011-10-17 21:20:13 +00:00
Benjamin Kramer
a470ea0828 MCOperand is pod-like.
llvm-svn: 142253
2011-10-17 21:18:03 +00:00
Jim Grosbach
eeb05f7532 Tidy up organization.
llvm-svn: 142248
2011-10-17 21:00:11 +00:00
Benjamin Kramer
524eb5859f Fix handling of the From parameter in StringRef::find.
Enable bounds checking to catch this kind of bug earlier.

llvm-svn: 142247
2011-10-17 20:49:40 +00:00
Bill Wendling
5d4f239d0a Add a call to EmitSjLjDispatchBlock.
Once the intrinsics are marked as having a custom inserter, it will call this
method to emit the dispatch table into the machine function.

llvm-svn: 142245
2011-10-17 20:37:20 +00:00
Bill Wendling
ce26e6190f Remove mention of llvm-gcc and add mention of dragonegg.
llvm-svn: 142243
2011-10-17 20:28:54 +00:00
Nadav Rotem
b03ef2cd0b Add CHECKs and document PR11158.
llvm-svn: 142240
2011-10-17 20:23:23 +00:00
Jim Grosbach
22167dc73c Fix improperly formed assert() call.
llvm-svn: 142239
2011-10-17 20:22:59 +00:00
Michael J. Spencer
c787cb4441 Object: Fix redundant name.
llvm-svn: 142238
2011-10-17 20:19:29 +00:00
Evan Cheng
55e3d8aba6 Constraint register class with constrainRegClass() to CSE a virtual into another. rdar://10293289
llvm-svn: 142234
2011-10-17 19:50:12 +00:00
Nadav Rotem
2d3d696b51 stabalize tests by specifying the exact sse level
llvm-svn: 142229
2011-10-17 19:45:38 +00:00
Akira Hatanaka
4939842b5a Add definitions of conditional moves with 64-bit operands. Comment out code for
expanding conditional moves, which is not needed since architectures that lack
support for conditional moves have been removed. 

llvm-svn: 142226
2011-10-17 18:53:29 +00:00
Hal Finkel
f61af0e4b0 Revert change to function alignment b/c existing logic was fine
llvm-svn: 142224
2011-10-17 18:53:03 +00:00
Chad Rosier
8247682aba Removed set, but unused variables.
Patch by Joe Abbey <jabbey@arxan.com>.

llvm-svn: 142223
2011-10-17 18:48:30 +00:00
Dan Gohman
13624a6c83 Suppress partial retain+release elimination when there's a
possibility that it will span multiple CFG diamonds/triangles which
could have different controlling predicates.  rdar://10282956

llvm-svn: 142222
2011-10-17 18:48:25 +00:00
Bill Wendling
584c5f9c62 Correct over-zealous removal of hack.
Some code want to check that *any* call within a function has the 'returns
twice' attribute, not just that the current function has one.

llvm-svn: 142221
2011-10-17 18:43:40 +00:00
Akira Hatanaka
e8cb50da87 Move class and instruction definitions for conditional moves to a seperate file.
llvm-svn: 142220
2011-10-17 18:43:19 +00:00
Akira Hatanaka
9045499a59 Revert change made in r142205.
llvm-svn: 142217
2011-10-17 18:33:24 +00:00
Akira Hatanaka
0ab0d4d1f4 Redefine count-leading 0s and 1s instructions.
llvm-svn: 142216
2011-10-17 18:26:37 +00:00
Bill Wendling
c5372de48f Temporarily XFAIL waiting for a fix.
llvm-svn: 142215
2011-10-17 18:25:32 +00:00
Akira Hatanaka
f81b089ac3 Redefine mfhi/lo and mthi/lo instructions.
llvm-svn: 142214
2011-10-17 18:24:15 +00:00
Hal Finkel
e8091aad04 Add comments to TargetLowering.h indicating that the set*Alignment functions take arguments in log2(bytes)
llvm-svn: 142213
2011-10-17 18:23:13 +00:00
Bill Wendling
2ee7de36b8 Now that we have the ReturnsTwice function attribute, this method is
obsolete. Check the attribute instead.
<rdar://problem/8031714>

llvm-svn: 142212
2011-10-17 18:22:52 +00:00
Akira Hatanaka
4243d8876b Redefine multiply and divide instructions.
llvm-svn: 142211
2011-10-17 18:21:24 +00:00
Akira Hatanaka
6b17ee5b50 Add definition of a base class for logical shift/rotate instructions with two
source registers and redefine 32-bit and 64-bit instructions.

llvm-svn: 142210
2011-10-17 18:17:58 +00:00
Hal Finkel
df4af2dd0b Remove >80-col line and unicode
llvm-svn: 142209
2011-10-17 18:10:08 +00:00
Akira Hatanaka
3b8c93eda7 Add definition of a base class for logical shift/rotate immediate instructions
and have 32-bit and 64-bit instructions derive from it.

llvm-svn: 142207
2011-10-17 18:06:56 +00:00
Chad Rosier
57b5189638 Removed set, but unused variable.
Patch by Joe Abbey <jabbey@arxan.com>.

llvm-svn: 142206
2011-10-17 18:01:59 +00:00
Akira Hatanaka
82a1bab4ab Add definition of immZExt5_64 and redefine immZExt5 as an ImmLeaf.
llvm-svn: 142205
2011-10-17 18:01:00 +00:00
Michael J. Spencer
7ce30d63fd Fix CMake build.
llvm-svn: 142204
2011-10-17 17:50:39 +00:00
Devang Patel
0b8b4b4a5c It is safe to speculate load from GOT. This fixes performance regression caused by r141689.
Radar 10281206.

llvm-svn: 142202
2011-10-17 17:35:01 +00:00
Jakob Stoklund Olesen
1910496fb4 Admonish that MI is not IR and virtual registers have constraints.
In machine code, you can't just replaceRegWith() the same way you can
replaceAllUsesWith() in IR.  Virtual registers may have different
register classes that need to be merged first.

llvm-svn: 142201
2011-10-17 17:33:39 +00:00