1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 06:22:56 +02:00
Commit Graph

67537 Commits

Author SHA1 Message Date
Chris Lattner
a4863c7557 rename doesClobberMemory -> hasMemoryWrite to be more specific, and
remove an actively-wrong comment.

llvm-svn: 120378
2010-11-30 01:37:52 +00:00
Chris Lattner
76977cd3c8 clean up handling of 'free', detangling it from everything else.
It can be seriously improved, but at least now it isn't intertwined
with the other logic.

llvm-svn: 120377
2010-11-30 01:28:33 +00:00
Chris Lattner
56b0cc6974 merge one more away
llvm-svn: 120375
2010-11-30 01:06:43 +00:00
Chris Lattner
8e2909e4d8 I already merged partial-overwrite.ll -> PartialStore.ll
Merge context-sensitive.ll -> simple.ll and upgrade it.

llvm-svn: 120374
2010-11-30 01:05:07 +00:00
Chris Lattner
496eacefab clean up DSE tests, removing some poorly reduced and useless old test,
merging more into other larger .ll files, filecheckizing along the way.

llvm-svn: 120373
2010-11-30 01:00:34 +00:00
Bill Wendling
a3cc011fc5 Minor cleanups. No functional change.
llvm-svn: 120372
2010-11-30 00:50:22 +00:00
Bill Wendling
5030f8359b s/ARM::BRIND/ARM::BX/g to coincide with r120366.
llvm-svn: 120371
2010-11-30 00:48:15 +00:00
Chris Lattner
083731f3d6 enhance basicaa to return "Mod" for a memcpy call when the
queried location doesn't overlap the source, and add a testcase.

llvm-svn: 120370
2010-11-30 00:43:16 +00:00
Bill Wendling
6bcbf9bd7c Add correct encoding for "bl __aeabi_read_tp". However, the asm matcher isn't
able to match this yet.

llvm-svn: 120369
2010-11-30 00:34:08 +00:00
Chris Lattner
8ec1830a01 Teach basicaa that memset's modref set is at worst "mod" and never
contains "ref".

Enhance DSE to use a modref query instead of a store-specific hack
to generalize the "ignore may-alias stores" optimization to handle
memset and memcpy.

llvm-svn: 120368
2010-11-30 00:28:45 +00:00
Jim Grosbach
6c0221e3ae Rename BX/BRIND/etc patterns to clarify which is actually the BX instruction
and which are pseudos.

llvm-svn: 120366
2010-11-30 00:24:05 +00:00
Bill Wendling
7cbe5a236c Add some encoding for the adr instruction. Labels still need to be finished.
llvm-svn: 120365
2010-11-30 00:18:30 +00:00
Owen Anderson
b6e1c56c79 Correct Thumb2 encodings for a much wider range of loads and stores.
llvm-svn: 120364
2010-11-30 00:14:31 +00:00
Chris Lattner
975dcf5ac8 my previous patch would cause us to start deleting some volatile
stores, fix and add a testcase.

llvm-svn: 120363
2010-11-30 00:12:39 +00:00
Jim Grosbach
5f2a3880a8 Make a few more ARM pseudo instructions actually use the PseudoInst base class.
llvm-svn: 120362
2010-11-30 00:09:06 +00:00
Bill Wendling
9859e95ca2 Predicate encoding should be withing {}s. And general cleanup.
llvm-svn: 120361
2010-11-30 00:08:20 +00:00
Bill Wendling
6b680b11e8 Predicate encoding should be withing {}s.
llvm-svn: 120360
2010-11-30 00:05:25 +00:00
Chris Lattner
29dd2a1569 two changes to DSE that shouldn't affect anything:
1. Don't bother trying to optimize:

lifetime.end(ptr)
store(ptr)

as it is undefined, and therefore shouldn't exist.

2. Move the 'storing a loaded pointer' xform up, simplifying
  the may-aliased store code.

llvm-svn: 120359
2010-11-30 00:01:19 +00:00
Bob Wilson
f5eece615c Fix the encoding of VLD4-dup alignment.
The only reasonable way I could find to do this is to provide an alternate
version of the addrmode6 operand with a different encoding function.  Use it
for all the VLD-dup instructions for the sake of consistency.

llvm-svn: 120358
2010-11-30 00:00:42 +00:00
Bob Wilson
1be989686c Rename VLDnDUP instructions with double-spaced registers
in an attempt to make things a little more consistent.

llvm-svn: 120357
2010-11-30 00:00:38 +00:00
Bob Wilson
bd3d3d2937 Add support for NEON VLD3-dup instructions.
The encoding for alignment in VLD4-dup instructions is still a work in progress.

llvm-svn: 120356
2010-11-30 00:00:35 +00:00
Jim Grosbach
58e4c01d0d Simplify definitions of the ARM eh.sjlj.*jmp pseudo instructions.
llvm-svn: 120354
2010-11-29 23:51:31 +00:00
Jim Grosbach
b796df67e9 Parameterize ARMPseudoInst size property.
llvm-svn: 120353
2010-11-29 23:48:41 +00:00
Jim Grosbach
81880e96fc Add a few missing initializers.
llvm-svn: 120350
2010-11-29 23:41:10 +00:00
Michael J. Spencer
b285e634a8 Support/PathV2: Fix 80 col.
llvm-svn: 120349
2010-11-29 23:35:49 +00:00
Michael J. Spencer
b3027299d1 Support/PathV2: Update comments.
llvm-svn: 120348
2010-11-29 23:35:35 +00:00
Chris Lattner
7670e2d8b8 prune an llvmcontext include and simplify some code.
llvm-svn: 120347
2010-11-29 23:35:33 +00:00
Chris Lattner
c954211f09 Generalize the darwin wrapper hack to work with generic macho triples as well as darwin ones.
llvm-svn: 120346
2010-11-29 23:29:54 +00:00
Jim Grosbach
4e37703b2c Nuke trailing whitespace.
llvm-svn: 120344
2010-11-29 23:18:01 +00:00
Jim Grosbach
d92d1fa9e6 Nuke a FIXME. No need to be fancier here, as ARM handles constant pools
locations and formatting specially. rdar://7353441

llvm-svn: 120343
2010-11-29 23:09:20 +00:00
Chris Lattner
8ada6f4b62 convert llvm-ar and llvm-ranlib to raw_ostream from iostreams.
Patch by Danil Malyshev!

llvm-svn: 120341
2010-11-29 23:02:20 +00:00
Owen Anderson
14abbb1a2e Provide Thumb2 encodings for basic loads and stores.
llvm-svn: 120340
2010-11-29 22:44:32 +00:00
Evan Cheng
78baa6f30d Mark Darwin call instructions as using "r7" to prevent the frame-register
assignment instructions from being moved below / above calls.
rdar://8690640

llvm-svn: 120339
2010-11-29 22:43:27 +00:00
Jim Grosbach
90cb1bbd23 Nuke dead isCodeGenOnly annotation and extraneous comment.
llvm-svn: 120338
2010-11-29 22:40:58 +00:00
Benjamin Kramer
af5a57ca66 Add missing colon.
llvm-svn: 120336
2010-11-29 22:39:38 +00:00
Jim Grosbach
208782384a tidy up.
llvm-svn: 120335
2010-11-29 22:38:48 +00:00
Bill Wendling
c2693dcc02 Thumb encodings for conditional moves.
llvm-svn: 120334
2010-11-29 22:37:46 +00:00
Jim Grosbach
89e90b7310 Pseudo-ize Thumb2 jump tables with explicit MC lowering to the raw
instructions. This simplifies instruction printing and disassembly.

llvm-svn: 120333
2010-11-29 22:37:40 +00:00
Benjamin Kramer
84bf47f2d8 Fix some broken CHECK lines.
llvm-svn: 120332
2010-11-29 22:34:55 +00:00
Michael J. Spencer
88e48a78d5 unittests: Merge SystemTests back into SupportTests.
llvm-svn: 120330
2010-11-29 22:29:04 +00:00
Michael J. Spencer
8ac563a538 Support: Add PathV2 implementation.
llvm-svn: 120329
2010-11-29 22:28:51 +00:00
Michael J. Spencer
a16d1d5f35 system_error: Remove Windows headers.
llvm-svn: 120328
2010-11-29 22:28:32 +00:00
Michael J. Spencer
edeb53dc0a Support/PathV2: Just about every function call requires the Twine header.
llvm-svn: 120327
2010-11-29 22:28:22 +00:00
Bill Wendling
15e68b7a35 Refactor some of the "disassembly-only" instructions into a base class. This
reduces some code duplication.

llvm-svn: 120326
2010-11-29 22:15:03 +00:00
Chris Lattner
2f8a9e1eac fix PR8677, patch by Jakub Staszak!
llvm-svn: 120325
2010-11-29 21:59:31 +00:00
Eric Christopher
625238ff3e Update fastisel for the changes in r120272.
llvm-svn: 120324
2010-11-29 21:56:23 +00:00
Frits van Bommel
a59a8cf49f Transform (extractvalue (load P), ...) to (load (gep P, 0, ...)) if the load has no other uses, shrinking the load.
llvm-svn: 120323
2010-11-29 21:56:20 +00:00
Jim Grosbach
71042b51a1 Rename t2 TBB and TBH instructions to reference that they encode the jump table
data. Next up, pseudo-izing them.

llvm-svn: 120320
2010-11-29 21:28:32 +00:00
Frits van Bommel
77f6750c83 Update this test to keep testing the -instcombine transform it's supposed to be testing instead of triggering the improved constant folding for insertvalue and extractvalue.
llvm-svn: 120319
2010-11-29 20:55:40 +00:00
Owen Anderson
4b82810d8c Improving the factoring of several instruction encodings.
llvm-svn: 120317
2010-11-29 20:38:48 +00:00