oota-llvm.git
13 years agoRemove unused class.
Jim Grosbach [Fri, 12 Nov 2010 19:24:53 +0000 (19:24 +0000)]
Remove unused class.

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

13 years agoAdd --enable-docs. Patch by NAKAMURA Takumi.
Rafael Espindola [Fri, 12 Nov 2010 19:24:06 +0000 (19:24 +0000)]
Add --enable-docs. Patch by NAKAMURA Takumi.

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

13 years agoWhen the definition of an address value is in a different block
Dan Gohman [Fri, 12 Nov 2010 19:14:00 +0000 (19:14 +0000)]
When the definition of an address value is in a different block
from the user of the address, fall back to just using the
address in a register instead of bailing out of fast-isel
altogether.

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

13 years agoaccept lret as an alias for lretl, fixing the reopened part of PR8592
Chris Lattner [Fri, 12 Nov 2010 18:54:56 +0000 (18:54 +0000)]
accept lret as an alias for lretl, fixing the reopened part of PR8592

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

13 years agoRemove what looks like dead code in the production of debug lines.
Rafael Espindola [Fri, 12 Nov 2010 18:41:26 +0000 (18:41 +0000)]
Remove what looks like dead code in the production of debug lines.

We only produce debug line information if we have seen a line directive, so
this code is dead. Also, if we want to be bug by bug compatible with
gas and sometimes produce "empty" .debug_line sections, this will
match the content produced by gas.

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

13 years agotypo (4th checkin for one fix)
Andrew Trick [Fri, 12 Nov 2010 18:36:03 +0000 (18:36 +0000)]
typo (4th checkin for one fix)

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

13 years agoEmacs auto-fill bug.
Andrew Trick [Fri, 12 Nov 2010 18:17:46 +0000 (18:17 +0000)]
Emacs auto-fill bug.

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

13 years agoFill in the default predication bits for ARM unconditional branch.
Jim Grosbach [Fri, 12 Nov 2010 18:13:26 +0000 (18:13 +0000)]
Fill in the default predication bits for ARM unconditional branch.

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

13 years agoTest case for PR8287: SD scheduling time. Fixed in r118904.
Andrew Trick [Fri, 12 Nov 2010 17:57:22 +0000 (17:57 +0000)]
Test case for PR8287: SD scheduling time. Fixed in r118904.

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

13 years agoEncoding for ARM LDRSB instructions.
Jim Grosbach [Fri, 12 Nov 2010 17:52:59 +0000 (17:52 +0000)]
Encoding for ARM LDRSB instructions.

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

13 years agoFixes PR8287: SD scheduling time. The fix is a failsafe that prevents
Andrew Trick [Fri, 12 Nov 2010 17:50:46 +0000 (17:50 +0000)]
Fixes PR8287: SD scheduling time. The fix is a failsafe that prevents
catastrophic compilation time in the event of unreasonable LLVM
IR. Code quality is a separate issue--someone upstream needs to do a
better job of reducing to llvm.memcpy. If the situation can be reproduced with
any supported frontend, then it will be a separate bug.

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

13 years agoimplement PR8592: empirically "lretq" is a "lret" with a rex.w prefix.
Chris Lattner [Fri, 12 Nov 2010 17:41:20 +0000 (17:41 +0000)]
implement PR8592: empirically "lretq" is a "lret" with a rex.w prefix.

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

13 years agotidy up.
Chris Lattner [Fri, 12 Nov 2010 17:24:29 +0000 (17:24 +0000)]
tidy up.

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

13 years agognu as support both % and @ before types, do the same.
Rafael Espindola [Fri, 12 Nov 2010 15:47:08 +0000 (15:47 +0000)]
gnu as support both % and @ before types, do the same.

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

13 years agoRe-disable TBAA for now; it broke MultiSource/Applications/JM/lencod,
Dan Gohman [Fri, 12 Nov 2010 11:21:08 +0000 (11:21 +0000)]
Re-disable TBAA for now; it broke MultiSource/Applications/JM/lencod,
at least.

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

13 years agoFix memory access lowering on SPU, adding
Kalle Raiskila [Fri, 12 Nov 2010 10:14:03 +0000 (10:14 +0000)]
Fix memory access lowering on SPU, adding
support for the case where alignment<value size.

These cases were silently miscompiled before this patch.
Now they are overly verbose -especially storing is- and
any front-end should still avoid misaligned memory
accesses as much as possible. The bit juggling algorithm
added here probably has some room for improvement still.

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

13 years agoFix up a few more spots of addrmode2 (or not) changes that were
Eric Christopher [Fri, 12 Nov 2010 09:48:30 +0000 (09:48 +0000)]
Fix up a few more spots of addrmode2 (or not) changes that were
missed. Update some comments accordingly.

Fixes rdar://8652289

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

13 years agoEnable TBAA.
Dan Gohman [Fri, 12 Nov 2010 06:20:01 +0000 (06:20 +0000)]
Enable TBAA.

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

13 years agoFix some style issues in PBQP. Patch by David Blaikie.
Lang Hames [Fri, 12 Nov 2010 05:47:21 +0000 (05:47 +0000)]
Fix some style issues in PBQP. Patch by David Blaikie.

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

13 years agoEnhance DSE to handle the case where a free call makes more than
Dan Gohman [Fri, 12 Nov 2010 02:19:17 +0000 (02:19 +0000)]
Enhance DSE to handle the case where a free call makes more than
one store dead. This is especially noticeable in
SingleSource/Benchmarks/Shootout/objinst.

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

13 years agoFilecheckize.
Dan Gohman [Fri, 12 Nov 2010 02:02:39 +0000 (02:02 +0000)]
Filecheckize.

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

13 years agoRemove possibly useful info from comment, per Chris.
Dale Johannesen [Fri, 12 Nov 2010 00:43:18 +0000 (00:43 +0000)]
Remove possibly useful info from comment, per Chris.

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

13 years agoEnable mips32 mul instruction. Patch by Akira Hatanaka <ahatanaka@mips.com>
Bruno Cardoso Lopes [Fri, 12 Nov 2010 00:38:32 +0000 (00:38 +0000)]
Enable mips32 mul instruction. Patch by Akira Hatanaka <ahatanaka@mips.com>

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

13 years agodescribe the preferred approach to silencing 'unused variable warnings' due to asserts.
Chris Lattner [Fri, 12 Nov 2010 00:19:41 +0000 (00:19 +0000)]
describe the preferred approach to silencing 'unused variable warnings' due to asserts.

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

13 years agoadd operand iterator apis to MachineInstr, patch by ether zhhb.
Chris Lattner [Fri, 12 Nov 2010 00:00:21 +0000 (00:00 +0000)]
add operand iterator apis to MachineInstr, patch by ether zhhb.

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

13 years agoStart of support for binary emit of 16-it Thumb instructions.
Jim Grosbach [Thu, 11 Nov 2010 23:41:09 +0000 (23:41 +0000)]
Start of support for binary emit of 16-it Thumb instructions.

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

13 years agoFill out support for Thumb2 encodings of NEON instructions.
Owen Anderson [Thu, 11 Nov 2010 23:12:55 +0000 (23:12 +0000)]
Fill out support for Thumb2 encodings of NEON instructions.

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

13 years agoThe BRK instruction in the MicroBlaze is a branch-and-link.
Wesley Peck [Thu, 11 Nov 2010 22:21:08 +0000 (22:21 +0000)]
The BRK instruction in the MicroBlaze is a branch-and-link.

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

13 years agoDoxygenify
Nick Lewycky [Thu, 11 Nov 2010 21:51:44 +0000 (21:51 +0000)]
Doxygenify

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

13 years agoAdd helper functions for computing the Location of load, store,
Dan Gohman [Thu, 11 Nov 2010 21:50:19 +0000 (21:50 +0000)]
Add helper functions for computing the Location of load, store,
and vaarg instructions.

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

13 years agoFix tblgen instruction errors exposed by MC asm parser tests
Wesley Peck [Thu, 11 Nov 2010 21:40:53 +0000 (21:40 +0000)]
Fix tblgen instruction errors exposed by MC asm parser tests
Fix minimum 16-bit signed value error exposed by MC asm parser tests
Add initial MC asm parser tests for the MBlaze backend

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

13 years agoAdd correct Thumb2 encodings for NEON vst[1,2,3,4] and vld[1,2,3,4].
Owen Anderson [Thu, 11 Nov 2010 21:36:43 +0000 (21:36 +0000)]
Add correct Thumb2 encodings for NEON vst[1,2,3,4] and vld[1,2,3,4].

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

13 years agoDon't forget the TBAA info, if available.
Dan Gohman [Thu, 11 Nov 2010 21:27:26 +0000 (21:27 +0000)]
Don't forget the TBAA info, if available.

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

13 years agoFactor out Instruction::isSafeToSpeculativelyExecute's code for
Dan Gohman [Thu, 11 Nov 2010 21:23:25 +0000 (21:23 +0000)]
Factor out Instruction::isSafeToSpeculativelyExecute's code for
testing for dereferenceable pointers into a helper function,
isDereferenceablePointer.  Teach it how to reason about GEPs
with simple non-zero indices.

Also eliminate ArgumentPromtion's IsAlwaysValidPointer,
which didn't check for weak externals or out of range gep
indices.

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

13 years agoFlesh out tests for Thumb2 encodings of NEON instructions.
Owen Anderson [Thu, 11 Nov 2010 21:15:47 +0000 (21:15 +0000)]
Flesh out tests for Thumb2 encodings of NEON instructions.

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

13 years agoDelete unneeded ssp attributes.
Dan Gohman [Thu, 11 Nov 2010 21:08:46 +0000 (21:08 +0000)]
Delete unneeded ssp attributes.

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

13 years agoRevert the accidental commit I made reverting the previous commit.
Eric Christopher [Thu, 11 Nov 2010 20:50:14 +0000 (20:50 +0000)]
Revert the accidental commit I made reverting the previous commit.

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

13 years agoTrailing whitespace.
Jim Grosbach [Thu, 11 Nov 2010 20:16:23 +0000 (20:16 +0000)]
Trailing whitespace.

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

13 years agoARM fixup encoding for direct call instructions (BL).
Jim Grosbach [Thu, 11 Nov 2010 20:05:40 +0000 (20:05 +0000)]
ARM fixup encoding for direct call instructions (BL).

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

13 years agoRevert this temporarily.
Eric Christopher [Thu, 11 Nov 2010 19:47:02 +0000 (19:47 +0000)]
Revert this temporarily.

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

13 years agoChange the prologue and epilogue to use push/pop for the low ARM registers.
Eric Christopher [Thu, 11 Nov 2010 19:26:03 +0000 (19:26 +0000)]
Change the prologue and epilogue to use push/pop for the low ARM registers.

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

13 years agoAvoid calling alias on non-pointer values.
Dan Gohman [Thu, 11 Nov 2010 19:23:51 +0000 (19:23 +0000)]
Avoid calling alias on non-pointer values.

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

13 years agoAdd support for Thumb2 encodings of NEON data processing instructions, using the...
Owen Anderson [Thu, 11 Nov 2010 19:07:48 +0000 (19:07 +0000)]
Add support for Thumb2 encodings of NEON data processing instructions, using the new PostEncoderMethod infrastructure.
More tests to come.

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

13 years agoMark labels declared in tls sections as STT_TLS. This matches the behavior of
Rafael Espindola [Thu, 11 Nov 2010 19:04:55 +0000 (19:04 +0000)]
Mark labels declared in tls sections as STT_TLS. This matches the behavior of
gas.

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

13 years agoFixed some bugs in MBlaze asm parser that were introduced when removing OwningPtrs...
Wesley Peck [Thu, 11 Nov 2010 18:41:33 +0000 (18:41 +0000)]
Fixed some bugs in MBlaze asm parser that were introduced when removing OwningPtrs from the code.

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

13 years agoadd a note
Chris Lattner [Thu, 11 Nov 2010 18:23:57 +0000 (18:23 +0000)]
add a note

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

13 years agoInitial comdat implementation.
Rafael Espindola [Thu, 11 Nov 2010 18:13:52 +0000 (18:13 +0000)]
Initial comdat implementation.

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

13 years agoTBAA-enable ArgumentPromotion.
Dan Gohman [Thu, 11 Nov 2010 18:09:32 +0000 (18:09 +0000)]
TBAA-enable ArgumentPromotion.

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

13 years agoAdd a FIXME comment.
Dan Gohman [Thu, 11 Nov 2010 18:08:43 +0000 (18:08 +0000)]
Add a FIXME comment.

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

13 years agoEncoding of destination fixup for ARM branch and conditional branch
Jim Grosbach [Thu, 11 Nov 2010 18:04:49 +0000 (18:04 +0000)]
Encoding of destination fixup for ARM branch and conditional branch
instructions.

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

13 years agoCheck TRI->getReservedRegs because other allocators do it. Even though
Andrew Trick [Thu, 11 Nov 2010 17:46:29 +0000 (17:46 +0000)]
Check TRI->getReservedRegs because other allocators do it. Even though
it makes no sense for allocation_order iterators to visit reserved regs.
The inline spiller depends on AliasAnalysis.
Manage the Query state to avoid uninitialized or stale results.

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

13 years agoAdd comments.
Dan Gohman [Thu, 11 Nov 2010 17:33:39 +0000 (17:33 +0000)]
Add comments.

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

13 years agoMake AliasedSymbol able to handle MCTargetExpr. They can get here if
Rafael Espindola [Thu, 11 Nov 2010 17:24:43 +0000 (17:24 +0000)]
Make AliasedSymbol able to handle MCTargetExpr. They can get here if
a weakref is used with a VariantKind.

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

13 years agoadd pr#
Chris Lattner [Thu, 11 Nov 2010 17:17:56 +0000 (17:17 +0000)]
add pr#

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

13 years agoEncoding for ARM LDRSH_POST.
Jim Grosbach [Thu, 11 Nov 2010 16:55:29 +0000 (16:55 +0000)]
Encoding for ARM LDRSH_POST.

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

13 years agoFix the symbol index of weak references. Also make RecordRelocation a bit
Rafael Espindola [Thu, 11 Nov 2010 16:48:11 +0000 (16:48 +0000)]
Fix the symbol index of weak references. Also make RecordRelocation a bit
easier to read by having const references to the symbol, aliased symbol and
renamed symbol.

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

13 years agoAdd brief doxygen comments for AliasResult enum values.
Dan Gohman [Thu, 11 Nov 2010 16:37:38 +0000 (16:37 +0000)]
Add brief doxygen comments for AliasResult enum values.

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

13 years agoInclude ImmutablePass passes in -debug-pass=Arguments.
Dan Gohman [Thu, 11 Nov 2010 16:32:17 +0000 (16:32 +0000)]
Include ImmutablePass passes in -debug-pass=Arguments.

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

13 years agoRemove the memmove->memcpy optimization from CodeGen. MemCpyOpt does this.
Dan Gohman [Thu, 11 Nov 2010 16:24:49 +0000 (16:24 +0000)]
Remove the memmove->memcpy optimization from CodeGen. MemCpyOpt does this.

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

13 years agoMake Sink tbaa-aware.
Dan Gohman [Thu, 11 Nov 2010 16:21:47 +0000 (16:21 +0000)]
Make Sink tbaa-aware.

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

13 years agoIt's safe to sink some instructions which are not safe to speculatively
Dan Gohman [Thu, 11 Nov 2010 16:20:28 +0000 (16:20 +0000)]
It's safe to sink some instructions which are not safe to speculatively
execute. Make Sink's predicate more precise.

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

13 years agoCMake: Add the new option "LLVM_LIT_ARGS".
NAKAMURA Takumi [Thu, 11 Nov 2010 04:09:35 +0000 (04:09 +0000)]
CMake: Add the new option "LLVM_LIT_ARGS".

Defaults:
if (MSVC OR XCODE): "-sv --no-progress-bar"
else: "-sv"

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

13 years agoRemove some explicit arguments to getELFSection. This is
Rafael Espindola [Thu, 11 Nov 2010 03:40:25 +0000 (03:40 +0000)]
Remove some explicit arguments to getELFSection. This is
a leftover from the removal of isExplicit.

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

13 years agoEncoding for ARM LDRSH and LDRSH_PRE. Cannonicalize operand names.
Jim Grosbach [Thu, 11 Nov 2010 01:55:59 +0000 (01:55 +0000)]
Encoding for ARM LDRSH and LDRSH_PRE. Cannonicalize operand names.

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

13 years agoFix encoding of Ra register for ARM smla* instructions.
Jim Grosbach [Thu, 11 Nov 2010 01:27:41 +0000 (01:27 +0000)]
Fix encoding of Ra register for ARM smla* instructions.

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

13 years agoAdd support for specifying a PostEncoderMethod, which can perform post-processing...
Owen Anderson [Thu, 11 Nov 2010 01:19:24 +0000 (01:19 +0000)]
Add support for specifying a PostEncoderMethod, which can perform post-processing after the automated encoding of an instruction.
Not yet used.

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

13 years agoARM STRH encoding information.
Jim Grosbach [Thu, 11 Nov 2010 01:09:40 +0000 (01:09 +0000)]
ARM STRH encoding information.

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

13 years agoAdd a testcase which demonstrates alias analysis pass precedence.
Dan Gohman [Thu, 11 Nov 2010 01:03:30 +0000 (01:03 +0000)]
Add a testcase which demonstrates alias analysis pass precedence.

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

13 years agoDelete SplittingSpiller. It was not being used by anyone, and it is being
Jakob Stoklund Olesen [Thu, 11 Nov 2010 00:52:44 +0000 (00:52 +0000)]
Delete SplittingSpiller. It was not being used by anyone, and it is being
superceded by SplitKit.

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

13 years agoIt's not necessary to clear out the Size and TBAATag at each of
Dan Gohman [Thu, 11 Nov 2010 00:42:22 +0000 (00:42 +0000)]
It's not necessary to clear out the Size and TBAATag at each of
these points.

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

13 years agoSet NonLocalDepInfo's Size field to UnknownSize when invalidating
Dan Gohman [Thu, 11 Nov 2010 00:20:27 +0000 (00:20 +0000)]
Set NonLocalDepInfo's Size field to UnknownSize when invalidating
it, so that it doesn't appear to be a known size.

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

13 years agoInsert two blank SlotIndexes between basic blocks instead of just one.
Jakob Stoklund Olesen [Thu, 11 Nov 2010 00:19:20 +0000 (00:19 +0000)]
Insert two blank SlotIndexes between basic blocks instead of just one.

This is the first small step towards using closed intervals for liveness instead
of the half-open intervals we're using now.

We want to be able to distinguish between a SlotIndex that represents a variable
being live-out of a basic block, and an index representing a variable live-in to
its successor.

That requires two separate indexes between blocks. One for live-outs and one for
live-ins.

With this change, getMBBEndIdx(MBB).getPrevSlot() becomes stable so it stays
greater than any instructions inserted at the end of MBB.

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

13 years agoDocument debuginfo-tests.
Devang Patel [Thu, 11 Nov 2010 00:13:39 +0000 (00:13 +0000)]
Document debuginfo-tests.

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

13 years agoDelete unused function.
Jakob Stoklund Olesen [Wed, 10 Nov 2010 23:56:02 +0000 (23:56 +0000)]
Delete unused function.

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

13 years agoNo need to add liveness that's already there.
Jakob Stoklund Olesen [Wed, 10 Nov 2010 23:56:00 +0000 (23:56 +0000)]
No need to add liveness that's already there.

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

13 years agoHook up AliasAnalysis in InlineSpiller. This is used for rematerializing
Jakob Stoklund Olesen [Wed, 10 Nov 2010 23:55:56 +0000 (23:55 +0000)]
Hook up AliasAnalysis in InlineSpiller. This is used for rematerializing
constant loads.

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

13 years agoMove LDM predicate operand encoding into base clase. Add STM missing STM
Jim Grosbach [Wed, 10 Nov 2010 23:44:32 +0000 (23:44 +0000)]
Move LDM predicate operand encoding into base clase. Add STM missing STM
encoding bits.

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

13 years agoARM LDM encoding for the mode (ia, ib, da, db) operand.
Jim Grosbach [Wed, 10 Nov 2010 23:38:36 +0000 (23:38 +0000)]
ARM LDM encoding for the mode (ia, ib, da, db) operand.

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

13 years agoFactor some code into WriteSection.
Rafael Espindola [Wed, 10 Nov 2010 23:36:59 +0000 (23:36 +0000)]
Factor some code into WriteSection.

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

13 years agoFix ARM encoding of non-return LDM instructions.
Jim Grosbach [Wed, 10 Nov 2010 23:18:49 +0000 (23:18 +0000)]
Fix ARM encoding of non-return LDM instructions.

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

13 years agoFix ARM encoding of LDM+Return instruction.
Jim Grosbach [Wed, 10 Nov 2010 23:12:48 +0000 (23:12 +0000)]
Fix ARM encoding of LDM+Return instruction.

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

13 years agoWhen clearing a non-local pointer dependency cache entry, clear
Dan Gohman [Wed, 10 Nov 2010 22:35:02 +0000 (22:35 +0000)]
When clearing a non-local pointer dependency cache entry, clear
the reverse map too. This fixes seflhost build errors.

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

13 years agoUpdate the section index map after we add the medatada sections.
Rafael Espindola [Wed, 10 Nov 2010 22:34:07 +0000 (22:34 +0000)]
Update the section index map after we add the medatada sections.

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

13 years agoTake care of special characters while creating named MDNode name to hold function...
Devang Patel [Wed, 10 Nov 2010 22:19:21 +0000 (22:19 +0000)]
Take care of special characters while creating named MDNode name to hold function specific local variable's info.
This fixes radar 8653152. I am checking in testcase as a separate check-in.

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

13 years agoUse SectionIndexMap in WriteSymbolTable to make it a little less brittle.
Rafael Espindola [Wed, 10 Nov 2010 22:16:43 +0000 (22:16 +0000)]
Use SectionIndexMap in WriteSymbolTable to make it a little less brittle.

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

13 years agoFactor out the code for computing an AliasAnalysis::Location
Dan Gohman [Wed, 10 Nov 2010 21:51:35 +0000 (21:51 +0000)]
Factor out the code for computing an AliasAnalysis::Location
for a given instruction into a helper function.

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

13 years agoFactor some code into ComputeIndexMap.
Rafael Espindola [Wed, 10 Nov 2010 21:51:05 +0000 (21:51 +0000)]
Factor some code into ComputeIndexMap.

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

13 years agoFully invalidate cached results when a prior query's size or
Dan Gohman [Wed, 10 Nov 2010 21:45:11 +0000 (21:45 +0000)]
Fully invalidate cached results when a prior query's size or
type is insufficient for, or incompatible with, the current query.

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

13 years agoFix an issue where we tried to turn a v2f32 build_vector into a v4i32 build vector...
Nate Begeman [Wed, 10 Nov 2010 21:35:41 +0000 (21:35 +0000)]
Fix an issue where we tried to turn a v2f32 build_vector into a v4i32 build vector with 2 elts

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

13 years agoReduce the maximum recursion depth, 5 seems pointlessly too much.
Duncan Sands [Wed, 10 Nov 2010 20:53:24 +0000 (20:53 +0000)]
Reduce the maximum recursion depth, 5 seems pointlessly too much.
Probably it should just be 1, but compromise with 3.

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

13 years agoEnhance GVN to do more precise alias queries for non-local memory
Dan Gohman [Wed, 10 Nov 2010 20:37:15 +0000 (20:37 +0000)]
Enhance GVN to do more precise alias queries for non-local memory
references. For example, this allows gvn to eliminate the load in
this example:

  void foo(int n, int* p, int *q) {
    p[0] = 0;
    p[1] = 1;
    if (n) {
      *q = p[0];
    }
  }

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

13 years agoChange the String<size> methods to take a fragment instead of a buffer.
Rafael Espindola [Wed, 10 Nov 2010 20:02:59 +0000 (20:02 +0000)]
Change the String<size> methods to take a fragment instead of a buffer.

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

13 years agoBasic rematerialization during splitting.
Jakob Stoklund Olesen [Wed, 10 Nov 2010 19:31:50 +0000 (19:31 +0000)]
Basic rematerialization during splitting.

Whenever splitting wants to insert a copy, it checks if the value can be
rematerialized cheaply instead.

Missing features:
- Delete instructions when all uses have been rematerialized.
- Truncate live ranges to the remaining uses after rematerialization.

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

13 years agoRABasic is nearly functionally complete. There are a few remaining
Andrew Trick [Wed, 10 Nov 2010 19:18:47 +0000 (19:18 +0000)]
RABasic is nearly functionally complete. There are a few remaining
benchmarks hitting an assertion.
Adds LiveIntervalUnion::collectInterferingVRegs.
Fixes "late spilling" by checking for any unspillable live vregs among
all physReg aliases.

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

13 years agoUse MCSectionELF in places we know we have an ELF section.
Rafael Espindola [Wed, 10 Nov 2010 19:05:07 +0000 (19:05 +0000)]
Use MCSectionELF in places we know we have an ELF section.

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

13 years agoUse getValueOperand() and getPointerOperand() on load and store
Dan Gohman [Wed, 10 Nov 2010 19:03:33 +0000 (19:03 +0000)]
Use getValueOperand() and getPointerOperand() on load and store
instructions instead of hard-coding operand numbers.

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

13 years agoRename AccessesArguments and AccessesArgumentsReadonly, and rewrite
Dan Gohman [Wed, 10 Nov 2010 18:30:00 +0000 (18:30 +0000)]
Rename AccessesArguments and AccessesArgumentsReadonly, and rewrite
their comments.

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

13 years agoTeach InstructionSimplify how to look through PHI nodes. Since PHI
Duncan Sands [Wed, 10 Nov 2010 18:23:01 +0000 (18:23 +0000)]
Teach InstructionSimplify how to look through PHI nodes.  Since PHI
nodes can be used in loops, this could result in infinite looping
if there is no recursion limit, so add such a limit.  It is also
used for the SelectInst case because in theory there could be an
infinite loop there too if the basic block is unreachable.

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

13 years agoFix a copy+pasto Duncan noticed.
Dan Gohman [Wed, 10 Nov 2010 18:18:23 +0000 (18:18 +0000)]
Fix a copy+pasto Duncan noticed.

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

13 years agoAdd a doesAccessArgPointees helper function, and update code to use
Dan Gohman [Wed, 10 Nov 2010 18:17:28 +0000 (18:17 +0000)]
Add a doesAccessArgPointees helper function, and update code to use
it, and to be consistent.

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