Eric Christopher
990bcd83b8
Not all platforms use _<func>. Duh.
...
llvm-svn: 120418
2010-11-30 09:23:54 +00:00
Eric Christopher
1a99e7ebdb
Fix some grammar in comments I noticed.
...
llvm-svn: 120416
2010-11-30 09:11:54 +00:00
Eric Christopher
d8e045d29e
This defaults to GenericDomain.
...
llvm-svn: 120415
2010-11-30 09:11:07 +00:00
Jay Foad
c663d7e4f6
PR5207: Make APInt::set(), APInt::clear() and APInt::flip() return void.
...
llvm-svn: 120413
2010-11-30 09:02:01 +00:00
Eric Christopher
6a21ceab5c
Implement a PseudoI class and transfer the sse instructions over to use
...
it.
llvm-svn: 120412
2010-11-30 08:57:23 +00:00
Eric Christopher
73365ae8b6
Fix insertion point in pcmp expander.
...
While I'm there, clean up too many \n even for me.
llvm-svn: 120411
2010-11-30 08:20:21 +00:00
Eric Christopher
2170738538
Fix some cleanups from my last patch.
...
llvm-svn: 120410
2010-11-30 08:10:28 +00:00
Bill Wendling
ae920bcc50
Add parsing for the Thumb t_addrmode_s4 addressing mode. This can almost
...
certainly be made more generic. But it does allow us to parse something like:
ldr r3, [r2, r4]
correctly in Thumb mode.
llvm-svn: 120408
2010-11-30 07:44:32 +00:00
Che-Liang Chiou
df20cec4fb
ptx: add ld instruction
...
support register and register-immediate addressing mode
todo: immediate and register-register addressing mode
llvm-svn: 120407
2010-11-30 07:34:44 +00:00
Chris Lattner
7d444d0682
Rewrite the main DSE loop to be written in terms of reasoning
...
about pairs of AA::Location's instead of looking for MemDep's
"Def" predicate. This is more powerful and general, handling
memset/memcpy/store all uniformly, and implementing PR8701 and
probably obsoleting parts of memcpyoptimizer.
This also fixes an obscure bug with init.trampoline and i8
stores, but I'm not surprised it hasn't been hit yet. Enhancing
init.trampoline to carry the size that it stores would allow
DSE to be much more aggressive about optimizing them.
llvm-svn: 120406
2010-11-30 07:23:21 +00:00
Chris Lattner
31d8d00187
death to extraneous \n's.
...
llvm-svn: 120405
2010-11-30 07:20:51 +00:00
Eric Christopher
f27f0b5234
Rewrite mwait and monitor support and custom lower arguments.
...
Fixes PR8573.
llvm-svn: 120404
2010-11-30 07:20:12 +00:00
Anders Carlsson
67e9e6234c
Add a puts optimization that converts puts() to putchar('\n').
...
llvm-svn: 120398
2010-11-30 06:19:18 +00:00
Anders Carlsson
2a46a03898
Fix a typo.
...
llvm-svn: 120394
2010-11-30 06:03:55 +00:00
Anders Carlsson
a2ad88fb73
Rename this test to FPuts.ll since it actually tests fputs.
...
llvm-svn: 120393
2010-11-30 05:59:26 +00:00
Chris Lattner
bf17250f9b
rename a function and reduce some indentation, no functionality change.
...
llvm-svn: 120391
2010-11-30 05:30:45 +00:00
Nick Lewycky
87f97b60f8
Make @llvm.invariant.start not be readonly, so that it has side-effects. This
...
unbreaks test/Transforms/InstCombine/invariant.ll which was broken by r120382.
This is a fix-forward to do what I think Chris intended.
llvm-svn: 120388
2010-11-30 04:13:41 +00:00
Jakob Stoklund Olesen
59dfcec5f9
Stub out a new LiveDebugVariables pass.
...
This analysis is going to run immediately after LiveIntervals. It will stay
alive during register allocation and keep track of user variables mentioned in
DBG_VALUE instructions.
When the register allocator is moving values between registers and the stack, it
is very hard to keep track of DBG_VALUE instructions. We usually get it wrong.
This analysis maintains a data structure that makes it easy to update DBG_VALUE
instructions.
llvm-svn: 120385
2010-11-30 02:17:10 +00:00
Chris Lattner
bea813875e
remove a use of llvm-dis
...
llvm-svn: 120383
2010-11-30 02:04:15 +00:00
Chris Lattner
0ec89ea5d9
remove the pointless check of MemoryUseIntrinsic from
...
is trivially dead, since these have side effects. This makes the
(misnamed) MemoryUseIntrinsic class dead, so remove it.
llvm-svn: 120382
2010-11-30 02:03:47 +00:00
Chris Lattner
84d3d220c1
strength reduce this.
...
llvm-svn: 120381
2010-11-30 01:56:13 +00:00
Chris Lattner
cbe6b88afe
getLocationForDest should work for memset as well.
...
llvm-svn: 120380
2010-11-30 01:48:20 +00:00
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