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
Chris Lattner
451a0accb5
add uadd_ov/usub_ov to apint, consolidate constant folding
...
logic to use the new APInt methods. Among other things this
implements rdar://8501501 - llvm.smul.with.overflow.i32 should constant fold
which comes from "clang -ftrapv", originally brought to my attention from PR8221.
llvm-svn: 116457
2010-10-14 00:05:07 +00:00
Chris Lattner
365326538a
missed a line :(
...
llvm-svn: 116456
2010-10-13 23:57:00 +00:00
Chris Lattner
093d5fe0a9
constify these methods.
...
llvm-svn: 116455
2010-10-13 23:54:10 +00:00
Jim Grosbach
151502662e
Detabify and clean up 80 column violations.
...
llvm-svn: 116454
2010-10-13 23:47:11 +00:00
Chris Lattner
70a78ab2c5
add a few operations for signed operations that also
...
return an overflow flag.
llvm-svn: 116452
2010-10-13 23:46:33 +00:00
Jim Grosbach
506b966b9d
A few 80 column fixes.
...
llvm-svn: 116451
2010-10-13 23:34:31 +00:00
Jim Grosbach
2e8a589fb2
trailing whitespace
...
llvm-svn: 116450
2010-10-13 23:12:26 +00:00
Jim Grosbach
41cd0dd4ba
Add a FIXME.
...
llvm-svn: 116449
2010-10-13 22:55:33 +00:00
Jim Grosbach
4c80dbda49
Add operand encoding bits for SMC and SVC in ARM mode.
...
llvm-svn: 116447
2010-10-13 22:38:23 +00:00
Jim Grosbach
66822f70b8
More encoding cleanup. Also add register Rd operands for indirect branches.
...
llvm-svn: 116444
2010-10-13 22:09:34 +00:00
Owen Anderson
c6c23bbf04
CallGraphSCC passes implicity require CallGraph analysis.
...
llvm-svn: 116443
2010-10-13 22:00:45 +00:00
Owen Anderson
2ea9b016d8
Conversely, Analysis-implementations do NOT need to initialize the AnalysisGroup. It will only matter when
...
someone tries to require that AG, in which case it is the requester's responsibility to initialize it.
llvm-svn: 116442
2010-10-13 21:55:07 +00:00
Owen Anderson
c65395a991
Analysis groups need to initialize their default implementations.
...
llvm-svn: 116441
2010-10-13 21:49:58 +00:00
Jim Grosbach
630efeb050
Simplify some ARM encoding information.
...
llvm-svn: 116440
2010-10-13 21:48:54 +00:00
Eric Christopher
19be5bd87c
Update comment.
...
llvm-svn: 116438
2010-10-13 21:41:51 +00:00
Jim Grosbach
f1d59d0fd5
Add a FIXME. The ADR instruction is a bit odd.
...
llvm-svn: 116437
2010-10-13 21:32:30 +00:00
Jim Grosbach
1699d40f80
Refactor the ARM 'setend' instruction pattern. Use a single instruction pattern
...
and handle the operand explicitly. Flesh out encoding information. Add an
explicit disassembler testcase for the instruction.
llvm-svn: 116432
2010-10-13 21:00:04 +00:00
Bill Wendling
bf63d6eb63
Add MC encodings for VCVT* instrunctions.
...
llvm-svn: 116431
2010-10-13 20:58:46 +00:00
Jim Grosbach
3a4bfe4573
Add a FIXME.
...
llvm-svn: 116428
2010-10-13 20:38:04 +00:00
Jim Grosbach
d079fee8b1
Make a few more bits of some simple instructions explicit. nop, yield, wfe,
...
wfi, sel, sev and bkpt. All would disassemble properly before, but more
explicitness is good, especially with the integrated assembler coming in
the future.
llvm-svn: 116427
2010-10-13 20:30:55 +00:00
Owen Anderson
63b480c711
Take advantage of C++'s thread-safe static local initialization to simplify thread-safe pass initialization.
...
llvm-svn: 116426
2010-10-13 20:24:34 +00:00
Oscar Fuentes
03ba7cb432
GetTargetTriple.cmake: detect MinGW 64 bits.
...
llvm-svn: 116424
2010-10-13 20:15:08 +00:00