oota-llvm.git
13 years agoImplement a PseudoI class and transfer the sse instructions over to use
Eric Christopher [Tue, 30 Nov 2010 08:57:23 +0000 (08:57 +0000)]
Implement a PseudoI class and transfer the sse instructions over to use
it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120412 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix insertion point in pcmp expander.
Eric Christopher [Tue, 30 Nov 2010 08:20:21 +0000 (08:20 +0000)]
Fix insertion point in pcmp expander.

While I'm there, clean up too many \n even for me.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120411 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix some cleanups from my last patch.
Eric Christopher [Tue, 30 Nov 2010 08:10:28 +0000 (08:10 +0000)]
Fix some cleanups from my last patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120410 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd parsing for the Thumb t_addrmode_s4 addressing mode. This can almost
Bill Wendling [Tue, 30 Nov 2010 07:44:32 +0000 (07:44 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120408 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoptx: add ld instruction
Che-Liang Chiou [Tue, 30 Nov 2010 07:34:44 +0000 (07:34 +0000)]
ptx: add ld instruction

support register and register-immediate addressing mode

todo: immediate and register-register addressing mode

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120407 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRewrite the main DSE loop to be written in terms of reasoning
Chris Lattner [Tue, 30 Nov 2010 07:23:21 +0000 (07:23 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120406 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agodeath to extraneous \n's.
Chris Lattner [Tue, 30 Nov 2010 07:20:51 +0000 (07:20 +0000)]
death to extraneous \n's.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120405 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRewrite mwait and monitor support and custom lower arguments.
Eric Christopher [Tue, 30 Nov 2010 07:20:12 +0000 (07:20 +0000)]
Rewrite mwait and monitor support and custom lower arguments.

Fixes PR8573.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120404 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a puts optimization that converts puts() to putchar('\n').
Anders Carlsson [Tue, 30 Nov 2010 06:19:18 +0000 (06:19 +0000)]
Add a puts optimization that converts puts() to putchar('\n').

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120398 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix a typo.
Anders Carlsson [Tue, 30 Nov 2010 06:03:55 +0000 (06:03 +0000)]
Fix a typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120394 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename this test to FPuts.ll since it actually tests fputs.
Anders Carlsson [Tue, 30 Nov 2010 05:59:26 +0000 (05:59 +0000)]
Rename this test to FPuts.ll since it actually tests fputs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120393 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agorename a function and reduce some indentation, no functionality change.
Chris Lattner [Tue, 30 Nov 2010 05:30:45 +0000 (05:30 +0000)]
rename a function and reduce some indentation, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120391 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake @llvm.invariant.start not be readonly, so that it has side-effects. This
Nick Lewycky [Tue, 30 Nov 2010 04:13:41 +0000 (04:13 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120388 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoStub out a new LiveDebugVariables pass.
Jakob Stoklund Olesen [Tue, 30 Nov 2010 02:17:10 +0000 (02:17 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120385 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoremove a use of llvm-dis
Chris Lattner [Tue, 30 Nov 2010 02:04:15 +0000 (02:04 +0000)]
remove a use of llvm-dis

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120383 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoremove the pointless check of MemoryUseIntrinsic from
Chris Lattner [Tue, 30 Nov 2010 02:03:47 +0000 (02:03 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120382 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agostrength reduce this.
Chris Lattner [Tue, 30 Nov 2010 01:56:13 +0000 (01:56 +0000)]
strength reduce this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120381 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agogetLocationForDest should work for memset as well.
Chris Lattner [Tue, 30 Nov 2010 01:48:20 +0000 (01:48 +0000)]
getLocationForDest should work for memset as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120380 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agorename doesClobberMemory -> hasMemoryWrite to be more specific, and
Chris Lattner [Tue, 30 Nov 2010 01:37:52 +0000 (01:37 +0000)]
rename doesClobberMemory -> hasMemoryWrite to be more specific, and
remove an actively-wrong comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120378 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoclean up handling of 'free', detangling it from everything else.
Chris Lattner [Tue, 30 Nov 2010 01:28:33 +0000 (01:28 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120377 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agomerge one more away
Chris Lattner [Tue, 30 Nov 2010 01:06:43 +0000 (01:06 +0000)]
merge one more away

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120375 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoI already merged partial-overwrite.ll -> PartialStore.ll
Chris Lattner [Tue, 30 Nov 2010 01:05:07 +0000 (01:05 +0000)]
I already merged partial-overwrite.ll -> PartialStore.ll
Merge context-sensitive.ll -> simple.ll and upgrade it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120374 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoclean up DSE tests, removing some poorly reduced and useless old test,
Chris Lattner [Tue, 30 Nov 2010 01:00:34 +0000 (01:00 +0000)]
clean up DSE tests, removing some poorly reduced and useless old test,
merging more into other larger .ll files, filecheckizing along the way.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120373 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMinor cleanups. No functional change.
Bill Wendling [Tue, 30 Nov 2010 00:50:22 +0000 (00:50 +0000)]
Minor cleanups. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120372 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agos/ARM::BRIND/ARM::BX/g to coincide with r120366.
Bill Wendling [Tue, 30 Nov 2010 00:48:15 +0000 (00:48 +0000)]
s/ARM::BRIND/ARM::BX/g to coincide with r120366.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120371 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoenhance basicaa to return "Mod" for a memcpy call when the
Chris Lattner [Tue, 30 Nov 2010 00:43:16 +0000 (00:43 +0000)]
enhance basicaa to return "Mod" for a memcpy call when the
queried location doesn't overlap the source, and add a testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120370 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd correct encoding for "bl __aeabi_read_tp". However, the asm matcher isn't
Bill Wendling [Tue, 30 Nov 2010 00:34:08 +0000 (00:34 +0000)]
Add correct encoding for "bl __aeabi_read_tp". However, the asm matcher isn't
able to match this yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120369 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTeach basicaa that memset's modref set is at worst "mod" and never
Chris Lattner [Tue, 30 Nov 2010 00:28:45 +0000 (00:28 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120368 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename BX/BRIND/etc patterns to clarify which is actually the BX instruction
Jim Grosbach [Tue, 30 Nov 2010 00:24:05 +0000 (00:24 +0000)]
Rename BX/BRIND/etc patterns to clarify which is actually the BX instruction
and which are pseudos.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120366 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd some encoding for the adr instruction. Labels still need to be finished.
Bill Wendling [Tue, 30 Nov 2010 00:18:30 +0000 (00:18 +0000)]
Add some encoding for the adr instruction. Labels still need to be finished.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120365 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCorrect Thumb2 encodings for a much wider range of loads and stores.
Owen Anderson [Tue, 30 Nov 2010 00:14:31 +0000 (00:14 +0000)]
Correct Thumb2 encodings for a much wider range of loads and stores.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120364 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agomy previous patch would cause us to start deleting some volatile
Chris Lattner [Tue, 30 Nov 2010 00:12:39 +0000 (00:12 +0000)]
my previous patch would cause us to start deleting some volatile
stores, fix and add a testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120363 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake a few more ARM pseudo instructions actually use the PseudoInst base class.
Jim Grosbach [Tue, 30 Nov 2010 00:09:06 +0000 (00:09 +0000)]
Make a few more ARM pseudo instructions actually use the PseudoInst base class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120362 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPredicate encoding should be withing {}s. And general cleanup.
Bill Wendling [Tue, 30 Nov 2010 00:08:20 +0000 (00:08 +0000)]
Predicate encoding should be withing {}s. And general cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120361 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPredicate encoding should be withing {}s.
Bill Wendling [Tue, 30 Nov 2010 00:05:25 +0000 (00:05 +0000)]
Predicate encoding should be withing {}s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120360 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotwo changes to DSE that shouldn't affect anything:
Chris Lattner [Tue, 30 Nov 2010 00:01:19 +0000 (00:01 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120359 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix the encoding of VLD4-dup alignment.
Bob Wilson [Tue, 30 Nov 2010 00:00:42 +0000 (00:00 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120358 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename VLDnDUP instructions with double-spaced registers
Bob Wilson [Tue, 30 Nov 2010 00:00:38 +0000 (00:00 +0000)]
Rename VLDnDUP instructions with double-spaced registers
in an attempt to make things a little more consistent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120357 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd support for NEON VLD3-dup instructions.
Bob Wilson [Tue, 30 Nov 2010 00:00:35 +0000 (00:00 +0000)]
Add support for NEON VLD3-dup instructions.
The encoding for alignment in VLD4-dup instructions is still a work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120356 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSimplify definitions of the ARM eh.sjlj.*jmp pseudo instructions.
Jim Grosbach [Mon, 29 Nov 2010 23:51:31 +0000 (23:51 +0000)]
Simplify definitions of the ARM eh.sjlj.*jmp pseudo instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120354 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoParameterize ARMPseudoInst size property.
Jim Grosbach [Mon, 29 Nov 2010 23:48:41 +0000 (23:48 +0000)]
Parameterize ARMPseudoInst size property.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120353 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a few missing initializers.
Jim Grosbach [Mon, 29 Nov 2010 23:41:10 +0000 (23:41 +0000)]
Add a few missing initializers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120350 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSupport/PathV2: Fix 80 col.
Michael J. Spencer [Mon, 29 Nov 2010 23:35:49 +0000 (23:35 +0000)]
Support/PathV2: Fix 80 col.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120349 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSupport/PathV2: Update comments.
Michael J. Spencer [Mon, 29 Nov 2010 23:35:35 +0000 (23:35 +0000)]
Support/PathV2: Update comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120348 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoprune an llvmcontext include and simplify some code.
Chris Lattner [Mon, 29 Nov 2010 23:35:33 +0000 (23:35 +0000)]
prune an llvmcontext include and simplify some code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120347 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoGeneralize the darwin wrapper hack to work with generic macho triples as well as...
Chris Lattner [Mon, 29 Nov 2010 23:29:54 +0000 (23:29 +0000)]
Generalize the darwin wrapper hack to work with generic macho triples as well as darwin ones.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120346 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoNuke trailing whitespace.
Jim Grosbach [Mon, 29 Nov 2010 23:18:01 +0000 (23:18 +0000)]
Nuke trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120344 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoNuke a FIXME. No need to be fancier here, as ARM handles constant pools
Jim Grosbach [Mon, 29 Nov 2010 23:09:20 +0000 (23:09 +0000)]
Nuke a FIXME. No need to be fancier here, as ARM handles constant pools
locations and formatting specially. rdar://7353441

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120343 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoconvert llvm-ar and llvm-ranlib to raw_ostream from iostreams.
Chris Lattner [Mon, 29 Nov 2010 23:02:20 +0000 (23:02 +0000)]
convert llvm-ar and llvm-ranlib to raw_ostream from iostreams.
Patch by Danil Malyshev!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120341 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoProvide Thumb2 encodings for basic loads and stores.
Owen Anderson [Mon, 29 Nov 2010 22:44:32 +0000 (22:44 +0000)]
Provide Thumb2 encodings for basic loads and stores.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120340 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMark Darwin call instructions as using "r7" to prevent the frame-register
Evan Cheng [Mon, 29 Nov 2010 22:43:27 +0000 (22:43 +0000)]
Mark Darwin call instructions as using "r7" to prevent the frame-register
assignment instructions from being moved below / above calls.
rdar://8690640

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120339 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoNuke dead isCodeGenOnly annotation and extraneous comment.
Jim Grosbach [Mon, 29 Nov 2010 22:40:58 +0000 (22:40 +0000)]
Nuke dead isCodeGenOnly annotation and extraneous comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120338 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd missing colon.
Benjamin Kramer [Mon, 29 Nov 2010 22:39:38 +0000 (22:39 +0000)]
Add missing colon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120336 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotidy up.
Jim Grosbach [Mon, 29 Nov 2010 22:38:48 +0000 (22:38 +0000)]
tidy up.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120335 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThumb encodings for conditional moves.
Bill Wendling [Mon, 29 Nov 2010 22:37:46 +0000 (22:37 +0000)]
Thumb encodings for conditional moves.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120334 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPseudo-ize Thumb2 jump tables with explicit MC lowering to the raw
Jim Grosbach [Mon, 29 Nov 2010 22:37:40 +0000 (22:37 +0000)]
Pseudo-ize Thumb2 jump tables with explicit MC lowering to the raw
instructions. This simplifies instruction printing and disassembly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120333 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix some broken CHECK lines.
Benjamin Kramer [Mon, 29 Nov 2010 22:34:55 +0000 (22:34 +0000)]
Fix some broken CHECK lines.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120332 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agounittests: Merge SystemTests back into SupportTests.
Michael J. Spencer [Mon, 29 Nov 2010 22:29:04 +0000 (22:29 +0000)]
unittests: Merge SystemTests back into SupportTests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120330 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSupport: Add PathV2 implementation.
Michael J. Spencer [Mon, 29 Nov 2010 22:28:51 +0000 (22:28 +0000)]
Support: Add PathV2 implementation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120329 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agosystem_error: Remove Windows headers.
Michael J. Spencer [Mon, 29 Nov 2010 22:28:32 +0000 (22:28 +0000)]
system_error: Remove Windows headers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120328 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSupport/PathV2: Just about every function call requires the Twine header.
Michael J. Spencer [Mon, 29 Nov 2010 22:28:22 +0000 (22:28 +0000)]
Support/PathV2: Just about every function call requires the Twine header.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120327 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRefactor some of the "disassembly-only" instructions into a base class. This
Bill Wendling [Mon, 29 Nov 2010 22:15:03 +0000 (22:15 +0000)]
Refactor some of the "disassembly-only" instructions into a base class. This
reduces some code duplication.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120326 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agofix PR8677, patch by Jakub Staszak!
Chris Lattner [Mon, 29 Nov 2010 21:59:31 +0000 (21:59 +0000)]
fix PR8677, patch by Jakub Staszak!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120325 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate fastisel for the changes in r120272.
Eric Christopher [Mon, 29 Nov 2010 21:56:23 +0000 (21:56 +0000)]
Update fastisel for the changes in r120272.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120324 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTransform (extractvalue (load P), ...) to (load (gep P, 0, ...)) if the load has...
Frits van Bommel [Mon, 29 Nov 2010 21:56:20 +0000 (21:56 +0000)]
Transform (extractvalue (load P), ...) to (load (gep P, 0, ...)) if the load has no other uses, shrinking the load.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120323 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename t2 TBB and TBH instructions to reference that they encode the jump table
Jim Grosbach [Mon, 29 Nov 2010 21:28:32 +0000 (21:28 +0000)]
Rename t2 TBB and TBH instructions to reference that they encode the jump table
data. Next up, pseudo-izing them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120320 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate this test to keep testing the -instcombine transform it's supposed to be testi...
Frits van Bommel [Mon, 29 Nov 2010 20:55:40 +0000 (20:55 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120319 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImproving the factoring of several instruction encodings.
Owen Anderson [Mon, 29 Nov 2010 20:38:48 +0000 (20:38 +0000)]
Improving the factoring of several instruction encodings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120317 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTeach ConstantFoldInstruction() how to fold insertvalue and extractvalue.
Frits van Bommel [Mon, 29 Nov 2010 20:36:52 +0000 (20:36 +0000)]
Teach ConstantFoldInstruction() how to fold insertvalue and extractvalue.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120316 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoNow to chant the magical incantation that will exorcise the System library
Charles Davis [Mon, 29 Nov 2010 19:44:50 +0000 (19:44 +0000)]
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'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120314 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove empty directories.
Benjamin Kramer [Mon, 29 Nov 2010 19:36:46 +0000 (19:36 +0000)]
Remove empty directories.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120313 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd support for NEON VLD3-dup instructions.
Bob Wilson [Mon, 29 Nov 2010 19:35:29 +0000 (19:35 +0000)]
Add support for NEON VLD3-dup instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120312 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix copy-and-paste errors in VLD2-dup scheduling itineraries.
Bob Wilson [Mon, 29 Nov 2010 19:35:23 +0000 (19:35 +0000)]
Fix copy-and-paste errors in VLD2-dup scheduling itineraries.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120311 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoARM Pseudo-ize tBR_JTr.
Jim Grosbach [Mon, 29 Nov 2010 19:32:47 +0000 (19:32 +0000)]
ARM Pseudo-ize tBR_JTr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120310 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThumb2 encodings for MSR and MRS.
Owen Anderson [Mon, 29 Nov 2010 19:29:15 +0000 (19:29 +0000)]
Thumb2 encodings for MSR and MRS.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120309 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate library dependencies changed in the System -> Support merge.
Michael J. Spencer [Mon, 29 Nov 2010 19:28:48 +0000 (19:28 +0000)]
Update library dependencies changed in the System -> Support merge.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120308 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThumb2 encodings for system instructions.
Owen Anderson [Mon, 29 Nov 2010 19:22:08 +0000 (19:22 +0000)]
Thumb2 encodings for system instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120307 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThumb2 encodings for branches and IT blocks.
Owen Anderson [Mon, 29 Nov 2010 18:54:38 +0000 (18:54 +0000)]
Thumb2 encodings for branches and IT blocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120306 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoThe ARM BR_JT* pseudos don't need to use the printer jtblock_operand node to
Jim Grosbach [Mon, 29 Nov 2010 18:53:24 +0000 (18:53 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120305 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoI swear I did a make clean and make before committing all this...
Michael J. Spencer [Mon, 29 Nov 2010 18:47:54 +0000 (18:47 +0000)]
I swear I did a make clean and make before committing all this...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120304 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSwitch ARM BR_JTm and BR_JTr instructions to be MC-expanded pseudos.
Jim Grosbach [Mon, 29 Nov 2010 18:37:44 +0000 (18:37 +0000)]
Switch ARM BR_JTm and BR_JTr instructions to be MC-expanded pseudos.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120303 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMissed another one.
Michael J. Spencer [Mon, 29 Nov 2010 18:33:08 +0000 (18:33 +0000)]
Missed another one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120302 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMissed a spot.
Michael J. Spencer [Mon, 29 Nov 2010 18:29:55 +0000 (18:29 +0000)]
Missed a spot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120301 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMerge System into Support.
Michael J. Spencer [Mon, 29 Nov 2010 18:16:10 +0000 (18:16 +0000)]
Merge System into Support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoHandle lshr for i128 correctly on SPU also when
Kalle Raiskila [Mon, 29 Nov 2010 14:44:28 +0000 (14:44 +0000)]
Handle lshr for i128 correctly on SPU also when
shiftamount > 7.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120288 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEnable PostRA scheduling for SPU.
Kalle Raiskila [Mon, 29 Nov 2010 10:30:25 +0000 (10:30 +0000)]
Enable PostRA scheduling for SPU.
This speeds up selected test cases with up to
5% - no slowdowns observed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120286 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAllow machine LICM to do its job on SPU.
Kalle Raiskila [Mon, 29 Nov 2010 10:08:09 +0000 (10:08 +0000)]
Allow machine LICM to do its job on SPU.
-return a sensible value for register pressure
-add pattern to 'ila' instrucion

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120285 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd missing i128 case.
Kalle Raiskila [Mon, 29 Nov 2010 09:36:26 +0000 (09:36 +0000)]
Add missing i128 case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120284 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotools/Makefile: Don't look into $(TARGET_OS), but $(HOST_OS), to inspect availability...
NAKAMURA Takumi [Mon, 29 Nov 2010 08:58:11 +0000 (08:58 +0000)]
tools/Makefile: Don't look into $(TARGET_OS), but $(HOST_OS), to inspect availability of loadable module!

The last commit made run.build.step.test_llvm_1 to fail.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120283 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotest: Check the feature 'loadable_module' with load modules in %llvmshlibdir.
NAKAMURA Takumi [Mon, 29 Nov 2010 07:58:32 +0000 (07:58 +0000)]
test: Check the feature 'loadable_module' with load modules in %llvmshlibdir.

%llvmshlibdir should be 'bin' on Cygming.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120282 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd some dead stores to pacify my least favorite GCC warning: may be
Chandler Carruth [Mon, 29 Nov 2010 01:41:13 +0000 (01:41 +0000)]
Add some dead stores to pacify my least favorite GCC warning: may be
uninitialized. The warning is terrible, has incorrect source locations, and has
a huge false positive rate such as *all* of these.

If anyone has a better solution, please let me know. Alternatively, I'll
happily add -Wno-uninitialized to the -Werror build mode. Maybe I can even do
it *only* when building with GCC instead of Clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120281 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd more Thumb encodings.
Bill Wendling [Mon, 29 Nov 2010 01:07:48 +0000 (01:07 +0000)]
Add more Thumb encodings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120279 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMore Thumb encodings.
Bill Wendling [Mon, 29 Nov 2010 01:00:43 +0000 (01:00 +0000)]
More Thumb encodings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120278 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd Thumb encodings for REV instructions.
Bill Wendling [Mon, 29 Nov 2010 00:42:50 +0000 (00:42 +0000)]
Add Thumb encodings for REV instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120277 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotools/Makefile: Fix indentation.
NAKAMURA Takumi [Mon, 29 Nov 2010 00:20:34 +0000 (00:20 +0000)]
tools/Makefile: Fix indentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120276 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotools/Makefile: Enable building lto, edis and bugpoint-passes on Cygming.
NAKAMURA Takumi [Mon, 29 Nov 2010 00:20:28 +0000 (00:20 +0000)]
tools/Makefile: Enable building lto, edis and bugpoint-passes on Cygming.

bugpoint-passes would be built with ENABLE_SHARED=1.
You could try building gold on Cygming, though, it would fail.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120275 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotest: Use $SharedLibDir for loadable modules. On Cygming, loadable modules are not...
NAKAMURA Takumi [Mon, 29 Nov 2010 00:20:21 +0000 (00:20 +0000)]
test: Use $SharedLibDir for loadable modules. On Cygming, loadable modules are not in lib/ but bin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120274 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotest: Add the new feature 'loadable_module'.
NAKAMURA Takumi [Mon, 29 Nov 2010 00:20:09 +0000 (00:20 +0000)]
test: Add the new feature 'loadable_module'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120273 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd more Thumb encodings.
Bill Wendling [Mon, 29 Nov 2010 00:18:15 +0000 (00:18 +0000)]
Add more Thumb encodings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120272 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake EmitIntValue non virtual.
Rafael Espindola [Sun, 28 Nov 2010 23:22:44 +0000 (23:22 +0000)]
Make EmitIntValue non virtual.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120271 91177308-0d34-0410-b5e6-96231b3b80d8