Chris Lattner
afbc0c2b8c
getLocationForDest should work for memset as well.
...
llvm-svn: 120380
2010-11-30 01:48:20 +00:00
Chris Lattner
2227a8a192
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
9d179d911d
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
Bill Wendling
ddce9f3757
Minor cleanups. No functional change.
...
llvm-svn: 120372
2010-11-30 00:50:22 +00:00
Bill Wendling
8294a30d54
s/ARM::BRIND/ARM::BX/g to coincide with r120366.
...
llvm-svn: 120371
2010-11-30 00:48:15 +00:00
Chris Lattner
90c4947df7
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
62718de2b9
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
9a146372b5
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
027bd47e3e
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
85a8a72d85
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
e22c7322b8
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
c3c754f750
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
49408cef39
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
ce3d6ca564
Predicate encoding should be withing {}s. And general cleanup.
...
llvm-svn: 120361
2010-11-30 00:08:20 +00:00
Bill Wendling
795f211418
Predicate encoding should be withing {}s.
...
llvm-svn: 120360
2010-11-30 00:05:25 +00:00
Chris Lattner
d4f1090948
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
318ce7cb3f
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
0b27b68164
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
431ac4ef50
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
9de9a73433
Simplify definitions of the ARM eh.sjlj.*jmp pseudo instructions.
...
llvm-svn: 120354
2010-11-29 23:51:31 +00:00
Jim Grosbach
0c51bb4b25
Parameterize ARMPseudoInst size property.
...
llvm-svn: 120353
2010-11-29 23:48:41 +00:00
Jim Grosbach
cb803b043b
Add a few missing initializers.
...
llvm-svn: 120350
2010-11-29 23:41:10 +00:00
Chris Lattner
b4df1d5a3e
prune an llvmcontext include and simplify some code.
...
llvm-svn: 120347
2010-11-29 23:35:33 +00:00
Chris Lattner
6f3a90b549
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
32ff5586fc
Nuke trailing whitespace.
...
llvm-svn: 120344
2010-11-29 23:18:01 +00:00
Jim Grosbach
9f0356b3cc
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
Owen Anderson
50d662b6cb
Provide Thumb2 encodings for basic loads and stores.
...
llvm-svn: 120340
2010-11-29 22:44:32 +00:00
Evan Cheng
9a133f623c
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
d5cfca1e3d
Nuke dead isCodeGenOnly annotation and extraneous comment.
...
llvm-svn: 120338
2010-11-29 22:40:58 +00:00
Jim Grosbach
1883d94630
tidy up.
...
llvm-svn: 120335
2010-11-29 22:38:48 +00:00
Bill Wendling
ee7c5659d7
Thumb encodings for conditional moves.
...
llvm-svn: 120334
2010-11-29 22:37:46 +00:00
Jim Grosbach
7ec3d34553
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
Michael J. Spencer
ebad2f9d36
Support: Add PathV2 implementation.
...
llvm-svn: 120329
2010-11-29 22:28:51 +00:00
Bill Wendling
5da8cae9ec
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
2e8793482c
fix PR8677, patch by Jakub Staszak!
...
llvm-svn: 120325
2010-11-29 21:59:31 +00:00
Eric Christopher
43b0c6d94f
Update fastisel for the changes in r120272.
...
llvm-svn: 120324
2010-11-29 21:56:23 +00:00
Frits van Bommel
28218aa8f1
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
81af4f9eb1
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
Owen Anderson
ba3a8fa7ab
Improving the factoring of several instruction encodings.
...
llvm-svn: 120317
2010-11-29 20:38:48 +00:00
Frits van Bommel
a98214de10
Teach ConstantFoldInstruction() how to fold insertvalue and extractvalue.
...
llvm-svn: 120316
2010-11-29 20:36:52 +00:00
Charles Davis
54c9eb6fff
Now to chant the magical incantation that will exorcise the System library
...
from LLVM forever:
grep -lR "llvm/System" * | grep -v .svn | xargs sed -ie 's#llvm/System#llvm/Support#g'
llvm-svn: 120314
2010-11-29 19:44:50 +00:00
Bob Wilson
77ab165afe
Add support for NEON VLD3-dup instructions.
...
llvm-svn: 120312
2010-11-29 19:35:29 +00:00
Bob Wilson
8022367809
Fix copy-and-paste errors in VLD2-dup scheduling itineraries.
...
llvm-svn: 120311
2010-11-29 19:35:23 +00:00
Jim Grosbach
58bc36a3a9
ARM Pseudo-ize tBR_JTr.
...
llvm-svn: 120310
2010-11-29 19:32:47 +00:00
Owen Anderson
e9608b3f01
Thumb2 encodings for MSR and MRS.
...
llvm-svn: 120309
2010-11-29 19:29:15 +00:00
Owen Anderson
2fdf32fa2c
Thumb2 encodings for system instructions.
...
llvm-svn: 120307
2010-11-29 19:22:08 +00:00
Owen Anderson
b044bc67f4
Thumb2 encodings for branches and IT blocks.
...
llvm-svn: 120306
2010-11-29 18:54:38 +00:00
Jim Grosbach
0591656b13
The ARM BR_JT* pseudos don't need to use the printer jtblock_operand node to
...
get the pretty-printer. That's handled explicityly by the MC lowering now.
llvm-svn: 120305
2010-11-29 18:53:24 +00:00
Michael J. Spencer
ab425d8360
I swear I did a make clean and make before committing all this...
...
llvm-svn: 120304
2010-11-29 18:47:54 +00:00
Jim Grosbach
150b1ad7f8
Switch ARM BR_JTm and BR_JTr instructions to be MC-expanded pseudos.
...
llvm-svn: 120303
2010-11-29 18:37:44 +00:00