oota-llvm.git
14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 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

14 years agoSimplify and clean up MC symbol lookup for ARM constant pool values. This fixes
Jim Grosbach [Wed, 10 Nov 2010 17:59:10 +0000 (17:59 +0000)]
Simplify and clean up MC symbol lookup for ARM constant pool values. This fixes
double quoting of ObjC symbol names in constant pool entries.

rdar://8652107

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

14 years agoFactor out the code for testing whether a function accesses
Dan Gohman [Wed, 10 Nov 2010 17:34:04 +0000 (17:34 +0000)]
Factor out the code for testing whether a function accesses
arbitrary memory into a helper function, and adjust some comments.

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

14 years agoGive NonLocalDepResult a NonLocalDepEntry member, replacing
Dan Gohman [Wed, 10 Nov 2010 17:15:52 +0000 (17:15 +0000)]
Give NonLocalDepResult a NonLocalDepEntry member, replacing
indivudal members holding the same data, to clarify the relationship
between NonLocalDepResult and NonLocalDepEntry.

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

14 years agoDetect if llvm-gcc is built on dragonegg.
Tobias Grosser [Wed, 10 Nov 2010 16:31:34 +0000 (16:31 +0000)]
Detect if llvm-gcc is built on dragonegg.

Store the flags needed to disable optimizations and to emit LLVM-IR depending on
the version of llvm-gcc used.

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

14 years agoFix Whitespace.
Michael J. Spencer [Wed, 10 Nov 2010 15:06:00 +0000 (15:06 +0000)]
Fix Whitespace.

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

14 years agoSystem/Path: Update comments to match code.
Michael J. Spencer [Wed, 10 Nov 2010 15:05:50 +0000 (15:05 +0000)]
System/Path: Update comments to match code.

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

14 years agoSystem/Win32/Path: Implement isSymLink.
Michael J. Spencer [Wed, 10 Nov 2010 15:05:39 +0000 (15:05 +0000)]
System/Win32/Path: Implement isSymLink.

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

14 years agoSimplify binary operations where one operand is a select instruction.
Duncan Sands [Wed, 10 Nov 2010 13:00:08 +0000 (13:00 +0000)]
Simplify binary operations where one operand is a select instruction.
The simplifications performed here never create new instructions, they
only return existing instructions (or a constant), and so are always a
win.  In theory they should transform (for example)
  %z = and i32 %x, %y
  %s = select i1 %cond, i32 %y, i32 %z
  %r = and i32 %x, %s
into
  %r = and i32 %x, y
but in practice they get into a fight with instcombine, and lose.
Unfortunately instcombine does a poor job in this case.  Nonetheless
I'm committing this transform to make it easier to discuss what to
do to make peace with instcombine.

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

14 years agoWin32/Process.inc: [PR8527] Process::FileDescriptorIsDisplayed(fd) should not check...
NAKAMURA Takumi [Wed, 10 Nov 2010 08:37:47 +0000 (08:37 +0000)]
Win32/Process.inc: [PR8527] Process::FileDescriptorIsDisplayed(fd) should not check by FILE_TYPE_CHAR. It must be better to check it with Console API.

The special file "NUL" is FILE_TYPE_CHAR with GetFileType(h). It was treated as display device and discarding output to NUL had failed. (eg. opt -o nul)

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

14 years agoThere is no EndPtr anymore - reinterpret the original comment in terms
Duncan Sands [Wed, 10 Nov 2010 07:46:36 +0000 (07:46 +0000)]
There is no EndPtr anymore - reinterpret the original comment in terms
of InputData.

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

14 years agoUpdate ARMConstantPoolValue to not use a modifier string. Use an explicit
Jim Grosbach [Wed, 10 Nov 2010 03:26:07 +0000 (03:26 +0000)]
Update ARMConstantPoolValue to not use a modifier string. Use an explicit
VariantKind marker to indicate the additional information necessary. Update
MC to handle the new Kinds. rdar://8647623

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

14 years agoAdd a test to the previous added clo instruction. Patch by Akira again
Bruno Cardoso Lopes [Wed, 10 Nov 2010 02:22:44 +0000 (02:22 +0000)]
Add a test to the previous added clo instruction. Patch by Akira again

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

14 years agoAdd clo instruction. Patch by Akira Hatanaka (ahatanaka@mips.com) with some minor...
Bruno Cardoso Lopes [Wed, 10 Nov 2010 02:13:22 +0000 (02:13 +0000)]
Add clo instruction. Patch by Akira Hatanaka (ahatanaka@mips.com) with some minor tweaks

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

14 years agoWhen checking that the necessary bits are zero in
Dale Johannesen [Wed, 10 Nov 2010 01:30:56 +0000 (01:30 +0000)]
When checking that the necessary bits are zero in
order to reduce ((x<<30)>>24) to x<<6, check the
correct bits.  PR 8547.

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

14 years agoEmit a '!' if this is a "writeback" register or memory address.
Bill Wendling [Wed, 10 Nov 2010 01:07:54 +0000 (01:07 +0000)]
Emit a '!' if this is a "writeback" register or memory address.

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

14 years agoSimplify the LiveRangeEdit::canRematerializeAt() interface a bit.
Jakob Stoklund Olesen [Wed, 10 Nov 2010 01:05:12 +0000 (01:05 +0000)]
Simplify the LiveRangeEdit::canRematerializeAt() interface a bit.

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

14 years agoMake ModRefBehavior a lattice. Use this to clean up AliasAnalysis
Dan Gohman [Wed, 10 Nov 2010 01:02:18 +0000 (01:02 +0000)]
Make ModRefBehavior a lattice. Use this to clean up AliasAnalysis
chaining and simplify FunctionAttrs' GetModRefBehavior logic.

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

14 years agoRename a parameter to avoid confusion with a local variable
Matt Beaumont-Gay [Wed, 10 Nov 2010 00:08:58 +0000 (00:08 +0000)]
Rename a parameter to avoid confusion with a local variable

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

14 years agoEmit the warning about the register list not being in ascending order only once.
Bill Wendling [Tue, 9 Nov 2010 23:45:59 +0000 (23:45 +0000)]
Emit the warning about the register list not being in ascending order only once.

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