Commit Graph

66107 Commits

Author SHA1 Message Date
Kalle Raiskila a49d062234 Change v64 datalayout in SPU.
The SPU ABI does not mention v64, and all examples
in C suggest v128 are treated similarily to arrays, 
we use array alignment for v64 too. This makes the 
alignment of e.g. [2 x <2 x i32>] behave "intuitively"
and similar to as if the elements were e.g. i32s.

This also makes an "unaligned store" test to be 
aligned, with different (but functionally equivalent)
code generated.

llvm-svn: 117360
2010-10-26 10:45:47 +00:00
NAKAMURA Takumi 4bb599cf7d CMake: Build utils/KillTheDoctor only on MSVC for now.
Mingw does not have the header <dbghelp.h>.
Thanks to Daniel Newton, testing it on mingw.

llvm-svn: 117352
2010-10-26 05:08:27 +00:00
Evan Cheng e96b8d7ab6 Use instruction itinerary to determine what instructions are 'cheap'.
llvm-svn: 117348
2010-10-26 02:08:50 +00:00
Evan Cheng b45591979b NEON vmov's are in Neon domain.
llvm-svn: 117347
2010-10-26 02:03:05 +00:00
Nick Lewycky 90b2ac2696 For statistics that are only used in functions declared in !NDEBUG, wrap the
declarations in !NDEBUG to avoid -Wunused-variable warnings. Patch by
Matt Beaumont-Gay!

llvm-svn: 117345
2010-10-26 00:51:57 +00:00
Jakob Stoklund Olesen e2c340c8d0 InlineSpiller can also update LiveStacks.
llvm-svn: 117338
2010-10-26 00:11:35 +00:00
Jakob Stoklund Olesen 7cdc1e5f16 Make the spiller responsible for updating the LiveStacks analysis.
llvm-svn: 117337
2010-10-26 00:11:33 +00:00
Bob Wilson e1961fe289 When the "true" and "false" blocks of a diamond if-conversion are the same,
do not double-count the duplicate instructions by counting once from the
beginning and again from the end.  Keep track of where the duplicates from
the beginning ended and don't go past that point when counting duplicates
at the end.  Radar 8589805.

This change causes one of the MC/ARM/simple-fp-encoding tests to produce
different (better!) code without the vmovne instruction being tested.
I changed the test to produce vmovne and vmoveq instructions but moving
between register files in the opposite direction.  That's not quite the same
but predicated versions of those instructions weren't being tested before,
so at least the test coverage is not any worse, just different.

llvm-svn: 117333
2010-10-26 00:02:24 +00:00
Bob Wilson efd360c535 Change if-conversion to keep track of the extra cost due to microcoded
instructions separately from the count of non-predicated instructions.  The
instruction count is used in places to determine how many instructions to
copy, predicate, etc. and things get confused if that count includes the
extra cost for microcoded ops.

llvm-svn: 117332
2010-10-26 00:02:21 +00:00
Bob Wilson 59f7cdaf98 Tidy up redundant check.
llvm-svn: 117331
2010-10-26 00:02:19 +00:00
Evan Cheng 43d6f34e9f Neuter r117193 as it causes significant post-ra scheduler compile time regression.
llvm-svn: 117329
2010-10-25 23:56:21 +00:00
Owen Anderson c0f777afbf Tests for NEON encoding of vmax.
llvm-svn: 117327
2010-10-25 23:45:34 +00:00
Owen Anderson 144c3f8c6a Tests for NEON encoding of vmin.
llvm-svn: 117326
2010-10-25 23:35:36 +00:00
Rafael Espindola d9d0c348df Produce the headers directly in the Finish method. This allows us to use
the existing streamer methods that are endian safe.

llvm-svn: 117323
2010-10-25 22:26:55 +00:00
Dale Johannesen ec57ac1c3c An stdcall function calling a non-stdcall function
cannot use tailcall.  PR 8461.

llvm-svn: 117322
2010-10-25 22:17:05 +00:00
Dan Gohman c6096263e2 Support TBAA attachments on calls. This is somewhat experimental.
llvm-svn: 117317
2010-10-25 21:38:20 +00:00
Devang Patel 43c3f4b63c Simplify.
Do not count use of sdisel for single call instruction.

llvm-svn: 117316
2010-10-25 21:31:46 +00:00
Owen Anderson 1f6aad053d Add correct encodings for NEON vabal.
llvm-svn: 117315
2010-10-25 21:29:04 +00:00
Dan Gohman 82b2e0da9c Fix chaining in TBAA's pointsToConstantMemory.
llvm-svn: 117314
2010-10-25 21:24:55 +00:00
Devang Patel e76a16e1fc Update SelectBasicBlock signature. This should have been committed with r117310.
llvm-svn: 117312
2010-10-25 21:04:12 +00:00
Devang Patel 3bc6d198fb Add counters to count basic blocks and machine basic blocks with out of order line number info.
Add counters to count how many basic blocks are entirely selected by fastisel.

llvm-svn: 117310
2010-10-25 20:55:43 +00:00
Owen Anderson b9c91679aa Add correct NEON encodings for vaba.
llvm-svn: 117309
2010-10-25 20:52:57 +00:00
Devang Patel a86114b961 Add simple counter to count no. of basic blocks without any line number information. At -O0, these basic block coule cause less than optimial debugging experience.
llvm-svn: 117307
2010-10-25 20:45:32 +00:00
Owen Anderson 12214ddaa3 Tests for NEON encoding of vabdl.
llvm-svn: 117303
2010-10-25 20:36:28 +00:00
Owen Anderson 64aa05f865 Add tests for NEON encoding of vabd.
llvm-svn: 117302
2010-10-25 20:29:27 +00:00
Dan Gohman e6715d0755 Only read one bit for testing for a readonly type, leaving the other
bits open for future uses.

llvm-svn: 117301
2010-10-25 20:22:29 +00:00
Daniel Dunbar b3a48f3459 MC/AsmParser: Fix relative precedence of {+,-} and comparison ops.
llvm-svn: 117299
2010-10-25 20:18:56 +00:00
Daniel Dunbar 7484d2cbec MC/AsmLexer: Fix bug in source location for Slash token.
llvm-svn: 117298
2010-10-25 20:18:53 +00:00
Daniel Dunbar 95db1cc022 tweak test.
llvm-svn: 117297
2010-10-25 20:18:49 +00:00
Daniel Dunbar 1601f55615 llvm-mc: Teach -as-lex to print the raw token string as well.
llvm-svn: 117296
2010-10-25 20:18:46 +00:00
Daniel Dunbar 0c193ca626 MC/AsmParser: Rewrite test to actually check some parts of expression parsing,
now that we have macros and friends. Uncovered a bug in macro expansion...

llvm-svn: 117295
2010-10-25 20:18:41 +00:00
Owen Anderson dd001b89d7 Attempt to provide correct encodings for NEON vbit and vbif, even though we can't test them at the moment.
llvm-svn: 117294
2010-10-25 20:17:22 +00:00
Owen Anderson dea09c7564 Provide correct NEON encodings for vbsl.
llvm-svn: 117293
2010-10-25 20:13:13 +00:00
Jim Grosbach e6fe1a03c7 imm12 operands aren't Thumb2 only, so rename the printer helper function.
llvm-svn: 117291
2010-10-25 20:00:01 +00:00
Dan Gohman fd864a1d31 Add a comment.
llvm-svn: 117288
2010-10-25 19:47:25 +00:00
Charles Davis 742052526a Make the description of the hotpatch attribute even more generic. Spotted by
Michael Spencer.

llvm-svn: 117286
2010-10-25 19:07:39 +00:00
Owen Anderson 2477446ee5 Add correct instruction encodings for vbic, vorn, and vmvn.
llvm-svn: 117282
2010-10-25 18:43:52 +00:00
Rafael Espindola 752913d6ba Add a virtual destructor.
llvm-svn: 117280
2010-10-25 18:38:32 +00:00
Owen Anderson dff239c5f9 Provide correct NEON encodings for vand, veor, and vorr.
llvm-svn: 117279
2010-10-25 18:28:30 +00:00
Owen Anderson d9cdda9ddc Add tests for NEON encoding of vtst.
llvm-svn: 117277
2010-10-25 18:10:34 +00:00
Owen Anderson feb3ee0c93 Add NEON encoding tests for vcgt and vacgt.
llvm-svn: 117276
2010-10-25 18:03:59 +00:00
Rafael Espindola 0ed1543d4e Add support for emitting ARM file attributes.
llvm-svn: 117275
2010-10-25 17:50:35 +00:00
Owen Anderson e5d0677173 Add tests for NEON encodings of vcge and vacge.
llvm-svn: 117274
2010-10-25 17:49:32 +00:00
Owen Anderson c178b80f65 Add a warning about our inability to test the encoding of vceq with immediate zero.
llvm-svn: 117273
2010-10-25 17:33:02 +00:00
Jakob Stoklund Olesen 912db6d9d0 In which I learn how to forward declare template classes.
llvm-svn: 117272
2010-10-25 17:27:30 +00:00
Owen Anderson 02917f5b1b Add tests for NEON encoding of vceq.
llvm-svn: 117270
2010-10-25 17:20:26 +00:00
Owen Anderson a9ad6c0645 Add tests for NEON encoding of vsubhn and vrsubhn.
llvm-svn: 117269
2010-10-25 17:12:46 +00:00
Dan Gohman abaf2d8d3b Update comments; BasicAA is no longer necessarily the end of the chain.
llvm-svn: 117268
2010-10-25 16:29:52 +00:00
Charles Davis 1b2d372b9f Make hotpatch attribute description a little less Wintel-specific.
llvm-svn: 117267
2010-10-25 16:29:03 +00:00
Dan Gohman 1033ce669b Reintroduce these asserts, now that BasicAA is a normal AliasAnalysis pass.
llvm-svn: 117266
2010-10-25 16:28:57 +00:00