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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Dale Johannesen [Tue, 9 Nov 2010 23:43:34 +0000 (23:43 +0000)]
Jim's recent fixes 118600, 118587, 118513 have made these work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118652
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 9 Nov 2010 23:42:07 +0000 (23:42 +0000)]
Fixed version of 118639 with an extra assert to catch similar problems
earlier. Implicit bool -> int conversions are evil!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118651
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 9 Nov 2010 23:28:44 +0000 (23:28 +0000)]
s/std::vector/SmallVector/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118648
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 9 Nov 2010 22:54:38 +0000 (22:54 +0000)]
Revert previous patch. Missed a case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118645
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 9 Nov 2010 22:51:42 +0000 (22:51 +0000)]
Delete the allocated vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118644
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 9 Nov 2010 22:50:47 +0000 (22:50 +0000)]
Define the subtarget feature for the architecture version,
as derived from the target triple. This is important for enabling
features that are implied based on the architecture version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118643
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 9 Nov 2010 22:50:44 +0000 (22:50 +0000)]
Do not use MEMBARRIER_MCR for any Thumb code.
It is only supported for ARM code. Normally Thumb2 code would use DMB instead,
but depending on how the compiler is invoked (e.g., -mattr=-db) that might be
disabled. This prevents a "cannot select MEMBARRIER_MCR" error in that
situation. Radar
8644195
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118642
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 9 Nov 2010 22:44:22 +0000 (22:44 +0000)]
Two types of instructions have register lists:
* LDM, et al, uses a bit mask to indicate the register list.
* VLDM, et al, uses a base register plus number.
The LDM instructions may be non-contiguous, but the VLDM ones must be
contiguous. Those are semantic checks that should be done later in the
compiler. Also postpone the creation of the bit mask until it's needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118640
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 9 Nov 2010 22:37:44 +0000 (22:37 +0000)]
Remove IsExplicit. It was always false.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118639
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 9 Nov 2010 21:36:17 +0000 (21:36 +0000)]
Change the ARMConstantPoolValue modifier string to an enumeration. This will
help in MC'izing the references that use them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118633
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Tue, 9 Nov 2010 21:04:34 +0000 (21:04 +0000)]
Adds RABasic verification and tracing.
(retry now that the windows build is green)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118630
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Nov 2010 20:33:57 +0000 (20:33 +0000)]
Convert comments to doxygen syntax.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118628
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Nov 2010 20:17:38 +0000 (20:17 +0000)]
Teach FunctionAttrs about the VAArg instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118627
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Nov 2010 20:13:27 +0000 (20:13 +0000)]
Use the AliasAnalysis interface to determine how a Function accesses
memory. This isn't a real improvement with present day AliasAnalysis
implementations; it's mainly for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118624
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Nov 2010 20:09:35 +0000 (20:09 +0000)]
VAArg doesn't capture its operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118623
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Nov 2010 20:07:20 +0000 (20:07 +0000)]
Translate IntrReadArgMem to AccessesArgumentsReadonly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118622
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Nov 2010 20:06:55 +0000 (20:06 +0000)]
Teach AliasAnalysis about AccessesArgumentsReadonly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118621
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Nov 2010 19:58:21 +0000 (19:58 +0000)]
Teach LICM and AliasSetTracker about AccessesArgumentsReadonly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118618
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Nov 2010 19:56:27 +0000 (19:56 +0000)]
Teach FunctionAttrs about AccessesArgumentsReadonly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118617
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Beaumont-Gay [Tue, 9 Nov 2010 19:56:25 +0000 (19:56 +0000)]
Add a trivial virtual dtor to AbstractRegisterDescription to appease
-Wnon-virtual-dtor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118616
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Nov 2010 19:50:00 +0000 (19:50 +0000)]
AccessesArgumentsReadonly is read-only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118615
91177308-0d34-0410-b5e6-
96231b3b80d8