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

65787 Commits

Author SHA1 Message Date
Jim Grosbach
5d7a5f8d33 Encoding information for the various ARM saturating add/sub instructions.
llvm-svn: 116612
2010-10-15 19:49:46 +00:00
Mikhail Glushenkov
65e099eb3c llvmc: Add a test for the -c flag.
llvm-svn: 116611
2010-10-15 19:30:49 +00:00
Jim Grosbach
785858b2ba ARM binary encoding information for RSB and RSC instructions.
llvm-svn: 116604
2010-10-15 18:42:41 +00:00
Jim Grosbach
440b0e6b34 Don't mark argument value stores as immutable, as otherwise the post-RA
scheduler may reorder loads from them before the stores and other such
badness. PR8347. Patch by David Meyer

llvm-svn: 116602
2010-10-15 18:34:47 +00:00
Bob Wilson
3b63270ed3 Use simple RegState::Define flag instead of getDefRegState(true).
llvm-svn: 116601
2010-10-15 18:25:59 +00:00
Rafael Espindola
125360f835 Refactor alias handling to AliasedSymbol.
llvm-svn: 116600
2010-10-15 18:25:33 +00:00
Michael J. Spencer
f9bb603f7c KillTheDoctor: Fix 2008 build. I'm actually surprised 2010 defines all of these, many are non-standard posix/unix extensions.
llvm-svn: 116597
2010-10-15 18:13:02 +00:00
Eric Christopher
b287ab82d7 Expand GEP handling for constant offsets.
llvm-svn: 116594
2010-10-15 18:02:07 +00:00
Jakob Stoklund Olesen
005aa1c020 Teach FileCheck to handle trailing CHECK-NOT patterns.
A CHECK-NOT pattern without a following CHECK pattern simply checks that the
pattern doesn't match before the end of the input file.

You can even have only CHECK-NOT patterns to check that strings appear nowhere
in the input file.

llvm-svn: 116592
2010-10-15 17:47:12 +00:00
Jim Grosbach
cb52aee60e When expanding the MOVsr[la]_flag pseudos, the CPSR implicit def becomes
an explicit def. Make sure to capture that properly. rdar://8556556

llvm-svn: 116591
2010-10-15 17:35:17 +00:00
Jim Grosbach
67f94c42d8 ARM mode encoding information for UBFX and SBFX instructions.
llvm-svn: 116588
2010-10-15 17:15:16 +00:00
Jakob Stoklund Olesen
7c0c554397 FileCheckize
llvm-svn: 116581
2010-10-15 16:06:42 +00:00
Jakob Stoklund Olesen
05c010aa88 Remove unused accessor.
llvm-svn: 116580
2010-10-15 16:06:40 +00:00
Rafael Espindola
9b114d966a Refactor code a bit and avoid creating unnecessary entries in the string
map.

llvm-svn: 116579
2010-10-15 15:39:06 +00:00
Bob Wilson
6b6b53ad6f Remove unused ARMISD::AND selection DAG node.
llvm-svn: 116566
2010-10-15 04:34:40 +00:00
Bob Wilson
fcc42f2f3a ARM instructions that are both predicated and set the condition codes
have been printed with the "S" modifier after the predicate.  With ARM's
unified syntax, they are supposed to go in the other order.  We fixed this
for Thumb when we switched to unified syntax but missed changing it for
ARM.  Apparently we don't generate these instructions often because no one
noticed until now.  Thanks to Bill Wendling for the testcase!

llvm-svn: 116563
2010-10-15 03:23:44 +00:00
Jim Grosbach
b01bcbd047 Encoding info for extension instructions.
llvm-svn: 116560
2010-10-15 02:29:58 +00:00
Jim Grosbach
9e98b1cde0 Grammar.
llvm-svn: 116557
2010-10-15 01:44:59 +00:00
Rafael Espindola
a366d6538b Don't pass --export-dynamic if TOOL_NO_EXPORTS is set.
llvm-svn: 116550
2010-10-15 00:58:12 +00:00
Jakob Stoklund Olesen
b569fb0904 Eliminate curli from SplitEditor. Use the LiveRangeEdit reference instead.
llvm-svn: 116547
2010-10-15 00:34:01 +00:00
Jakob Stoklund Olesen
5d5bcb8ee4 Move stack slot assignments into LiveRangeEdit.
All registers created during splitting or spilling are assigned to the same
stack slot as the parent register.

When splitting or rematting, we may not spill at all. In that case the stack
slot is still assigned, but it will be dead.

llvm-svn: 116546
2010-10-15 00:16:55 +00:00
Jakob Stoklund Olesen
acca65b973 Create a new LiveRangeEdit class to keep track of the new registers created when
splitting or spillling, and to help with rematerialization.

Use LiveRangeEdit in InlineSpiller and SplitKit. This will eventually make it
possible to share remat code between InlineSpiller and SplitKit.

llvm-svn: 116543
2010-10-14 23:49:52 +00:00
Jim Grosbach
608e4fd221 Simplify test file a bit.
llvm-svn: 116540
2010-10-14 23:32:44 +00:00
Jim Grosbach
26842cb893 Add testcase for RRX and ASRS (which effectively tests MOVs, since those
are just forms of that instruction).

llvm-svn: 116538
2010-10-14 23:29:18 +00:00
Jim Grosbach
6da1b52d7b Add missing Rd encoding for MOVs instruction.
llvm-svn: 116537
2010-10-14 23:28:31 +00:00
Jim Grosbach
804505c7d4 Refactor the MOVsr[al]_flag and RRX pseudo-instructions to really be pseudos
and let the ARMExpandPseudoInsts pass fix them up into the real (MOVs)
instruction form.

llvm-svn: 116534
2010-10-14 22:57:13 +00:00
Dan Gohman
d93278f6b6 Tolerate a null parent pointer.
llvm-svn: 116533
2010-10-14 22:55:57 +00:00
Oscar Fuentes
e596a172e3 Added basic support for CPack.
llvm-svn: 116516
2010-10-14 21:11:51 +00:00
Jim Grosbach
29dc23398f Tweak the ARM backend to use the RRX mnemonic instead of the 'mov a, b, rrx'
pseudonym.

llvm-svn: 116512
2010-10-14 20:43:44 +00:00
Francois Pichet
ad0548d742 Always use binary mode for output stream. This is important to prevent unwanted end of line conversion on Windows. Should not affect Unix where O_BINARY is not defined. This fix /clang/test/lexer/preamble.c XFAIL on WIN32.
llvm-svn: 116509
2010-10-14 20:30:58 +00:00
Jim Grosbach
73c78f8790 MOVi16 and MOVT ARM mode encodings.
llvm-svn: 116498
2010-10-14 18:54:27 +00:00
Jakob Stoklund Olesen
e0b9dbf91b Only split around a loop if the live range has uses outside the loop periphery.
Before we would also split around a loop if any peripheral block had multiple
uses. This could cause repeated splitting when splitting a different live range
would insert uses into the periphery.

Now -spiller=inline passes the nightly test suite again.

llvm-svn: 116494
2010-10-14 18:26:45 +00:00
Owen Anderson
467d56737b Try again at implementing thread-safe lazy pass initialization, without depending on static local initialization
being threadsafe AND ensuring that initialization is complete by the time the initializeFooPass method returns.

llvm-svn: 116492
2010-10-14 17:59:03 +00:00
Owen Anderson
5114ec184e Revert r116489. It included some changes I didn't intend to commit, and broke the buildbots.
llvm-svn: 116491
2010-10-14 17:36:50 +00:00
Owen Anderson
2928dbea72 Apparently MSVC doesn't support thread-safe static local initialization. Roll our own solution instead.
llvm-svn: 116489
2010-10-14 17:26:06 +00:00
Jim Grosbach
6d5cb39757 Simplify encoding information and add 'dst' operand info for TAILJMP.
llvm-svn: 116488
2010-10-14 17:24:28 +00:00
Rafael Espindola
2cdc3d6235 Remove some code duplication.
llvm-svn: 116484
2010-10-14 16:34:44 +00:00
Oscar Fuentes
1f9f1cc125 Remove explicit dependency of LLVMARMCodeGen on LLVMARMAsmPrinter. It
creates a cyclic dependency that breaks the build when
BUILD_SHARED_LIBS=ON

llvm-svn: 116480
2010-10-14 15:54:46 +00:00
Oscar Fuentes
0d564b6bb5 When building shared libraries, link to required system libraries.
PR 8375

llvm-svn: 116479
2010-10-14 15:54:41 +00:00
Mikhail Glushenkov
bfe6fa281e Comments.
llvm-svn: 116476
2010-10-14 13:43:20 +00:00
Mikhail Glushenkov
e418492728 Forward -march correctly.
Also includes some cosmetic changes.

llvm-svn: 116475
2010-10-14 11:22:06 +00:00
Eric Christopher
9060ac1be3 Handle more complex GEP based loads and add a few TODOs to deal with
GEP + alloca.

llvm-svn: 116474
2010-10-14 09:29:41 +00:00
Bill Wendling
2c335d364c Add support for vmov.f64/.f32 encoding. There's a bit of a hack going on
here. The f32 in FCONSTS is handled as a double instead of a float in the
code. So the encoding of the immediate into the instruction isn't exactly in
line with the documentation in that regard. But given that we know it's handled
as a double, it doesn't cause any harm.

llvm-svn: 116471
2010-10-14 02:33:26 +00:00
Bill Wendling
33a2ecd5e4 Add encoding for 'fmstat'.
llvm-svn: 116466
2010-10-14 01:19:34 +00:00
Evan Cheng
e1e152c3fc Register pressure and instruction latency aware machine LICM. Work in progress.
llvm-svn: 116465
2010-10-14 01:16:09 +00:00
Bill Wendling
cd41f22ec1 - Add encodings for multiply add/subtract instructions in all their glory.
- Add missing patterns for some multiply add/subtract instructions.
- Add encodings for VMRS and VMSR.

llvm-svn: 116464
2010-10-14 01:02:08 +00:00
Chris Lattner
27d8b68afa fix a bug I introduced, no idea how this didn't repro right.
llvm-svn: 116462
2010-10-14 00:30:00 +00:00
Chris Lattner
7c5912d186 hack to unbreak buildbots
llvm-svn: 116461
2010-10-14 00:26:10 +00:00
Jim Grosbach
684289bc3c Regenerate. No functional change, just cleanup.
llvm-svn: 116459
2010-10-14 00:15:18 +00:00
Jim Grosbach
08c50611f0 Teach PerfectShuffle to not generate files with embedded tab characters.
llvm-svn: 116458
2010-10-14 00:12:49 +00:00