Bob Wilson [Mon, 16 Aug 2010 23:37:17 +0000 (23:37 +0000)]
Ignore undef shuffle indices when checking for a VTRN shuffle. Radar
8290937.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111208
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 16 Aug 2010 23:26:09 +0000 (23:26 +0000)]
tidy up. remove unused local.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111206
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 16 Aug 2010 23:00:12 +0000 (23:00 +0000)]
Silence warnings and simplify code. Eliminate a 32/64 bit portability issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111201
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 22:57:28 +0000 (22:57 +0000)]
The plural of analysis is analyses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111200
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 22:45:12 +0000 (22:45 +0000)]
Make dumpPassStructure be a PMDataManager abstraction, rather than
a Pass abstraction, since that's the level it's actually used at.
Rename Pass' dumpPassStructure to dumpPass.
This eliminates an awkward use of getAsPass() to convert a PMDataManager*
into a Pass* just to permit a dumpPassStructure call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111199
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 16 Aug 2010 22:30:41 +0000 (22:30 +0000)]
Better handle alignment requirements for local objects in pre-regalloc frame
mapping. Have the local block track its alignment requirement, and then
apply that when the block itself is allocated. Previously, offsets could
get adjusted in PEI to be different, relative to one another, than the
block allocation thought they would be, which defeats the point of doing
the allocation this way. Continuing rdar://
8277890
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111197
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 16 Aug 2010 22:26:55 +0000 (22:26 +0000)]
Generalize a pattern for PKHTB: an SRL of 16-31 bits will guarantee
that the high halfword is zero. The shift need not be exactly 16 bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111196
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 16 Aug 2010 22:21:13 +0000 (22:21 +0000)]
Convert test to FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111195
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 22:03:47 +0000 (22:03 +0000)]
Make some of PMTopLevelManager's members non-public. In particular,
make its constructor protected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111193
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 21:57:30 +0000 (21:57 +0000)]
Remove redundant inline keywords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111192
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 21:38:42 +0000 (21:38 +0000)]
Eliminate the TopLevelManagerType enum; instead, just make
PMTopLevelManager's constructor take a PMDataManager *, which already
provides the needed abstraction support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111189
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 16 Aug 2010 21:18:51 +0000 (21:18 +0000)]
Comment out some broken/unused/useless instructions which mess up disassembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111185
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 16 Aug 2010 21:17:09 +0000 (21:17 +0000)]
Fixes for generation of ELF relocations. Patch by Roman Divacky.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111183
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 16 Aug 2010 21:03:32 +0000 (21:03 +0000)]
Don't attempt to SimplifyShortMoveForm in 64-bit mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111182
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 16 Aug 2010 20:08:40 +0000 (20:08 +0000)]
Until uleb/sleb are MC-ized, add a hack to make them work with ELF object
emission.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111177
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 16 Aug 2010 19:15:06 +0000 (19:15 +0000)]
Fix a few warnings in and detabify MCELFStreamer and ELFObjectWriter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111175
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Fleming [Mon, 16 Aug 2010 18:57:57 +0000 (18:57 +0000)]
Add ELF ObjectWriter and Streamer support.
I forgot to add these files in commit 111172.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111174
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Fleming [Mon, 16 Aug 2010 18:36:14 +0000 (18:36 +0000)]
Hookup ELF support for X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111173
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Fleming [Mon, 16 Aug 2010 18:35:43 +0000 (18:35 +0000)]
Add ELF ObjectWriter and Streamer support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111172
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Fleming [Mon, 16 Aug 2010 18:35:06 +0000 (18:35 +0000)]
Layout helper function.
Introduce a helper method to add a section to the end of a layout. This
will be used by the ELF ObjectWriter code to add the metadata sections
(symbol table, etc) to the end of an object file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111171
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Fleming [Mon, 16 Aug 2010 18:34:31 +0000 (18:34 +0000)]
Record a symbol's size which is needed for ELF symbol tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111170
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Fleming [Mon, 16 Aug 2010 18:33:46 +0000 (18:33 +0000)]
ELF entry size support.
Some ELF sections contain fixed-sized entries. Provide a way to record
the entry size of a section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111169
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 16 Aug 2010 18:27:34 +0000 (18:27 +0000)]
Rename sat_shift operand to shift_imm, in preparation for using it for other
instructions besides saturate instructions. No functional changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111168
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 16 Aug 2010 18:24:54 +0000 (18:24 +0000)]
Partially revert r111155. It looks like MSVC is calling an operator<() that
clang says is unused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111167
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 16 Aug 2010 18:06:15 +0000 (18:06 +0000)]
track local frame size in MFI, not local to the pass, since PEI needs it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111164
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 17:34:25 +0000 (17:34 +0000)]
Revert r111031. The way LLVM defines loop invariance, the property of an
expression being loop invariant is not equivalent to the property of
properly dominating the loop header.
Other optimizations have also made this optimization less important.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111160
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 16 Aug 2010 17:18:20 +0000 (17:18 +0000)]
Remove unused functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111156
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 16 Aug 2010 17:18:18 +0000 (17:18 +0000)]
Remove unused functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111155
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 16 Aug 2010 17:06:03 +0000 (17:06 +0000)]
Remove unused code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111154
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 16 Aug 2010 17:05:27 +0000 (17:05 +0000)]
Convert a test to use FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111153
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 17:01:55 +0000 (17:01 +0000)]
Placate overzealous compiler warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111152
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 16:57:24 +0000 (16:57 +0000)]
To create a copy of a SmallVector with an element removed from the
middle, copy the elements in two groups, rather than copying all the
elements and then doing an erase on the middle of the result. These
are SmallVectors, so we shouldn't expect to hit dynamic allocation
in the common case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111151
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 16 Aug 2010 16:39:59 +0000 (16:39 +0000)]
Install Embedded builds into usr/local. Radar
8313723.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111149
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Aug 2010 16:35:20 +0000 (16:35 +0000)]
silence a vc2010 warning: " result of 32-bit shift implicitly converted to
64 bits (was 64-bit shift intended?)", pointed out by 'nobled' on llvmdev
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111148
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 16:34:09 +0000 (16:34 +0000)]
Tidy whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111147
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 16:31:39 +0000 (16:31 +0000)]
Add a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111145
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 16:30:01 +0000 (16:30 +0000)]
Use const_iterator in a few places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111144
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 16:27:53 +0000 (16:27 +0000)]
Use iterators instead of indices in a few more places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111143
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 16:25:35 +0000 (16:25 +0000)]
Micro-optimize SCEVConstant comparison.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111142
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 16:21:27 +0000 (16:21 +0000)]
Move SCEVNAryExpr's virtual member functions out of line, and convert
them to iterators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111140
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 16:16:11 +0000 (16:16 +0000)]
Use iterators instead of indices in simple cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111138
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 16:13:54 +0000 (16:13 +0000)]
Avoid gratuitous inefficiency in ifndef NDEBUG code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111137
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 16:03:49 +0000 (16:03 +0000)]
Make one getAddExpr call when analyzing a+b+c+d+e+... instead of one
for each add instruction. Ditto for Mul.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111136
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 15:57:14 +0000 (15:57 +0000)]
Delete an unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111135
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 15:50:00 +0000 (15:50 +0000)]
Instead of having CollectSubexpr's categorize operands as interesting or
uninteresting, just put all the operands on one list and make
GenerateReassociations make the decision about what's interesting.
This is simpler, and it avoids an extra ScalarEvolution::getAddExpr call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111133
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 15:39:27 +0000 (15:39 +0000)]
Put add operands in ScalarEvolution-canonical order, when convenient.
This isn't necessary, because ScalarEvolution sorts them anyway,
but it's tidier this way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111132
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 15:31:45 +0000 (15:31 +0000)]
Specialize FoldingSetTrait<SCEV>, providing implementations of node
comparison and hash computation which don't require constructing
temporary ID values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111131
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 15:30:39 +0000 (15:30 +0000)]
Add hooks to FoldingSetTrait to allow specializations to provide
implementations of equality comparison and hash computation. This
can be used to optimize node lookup by avoiding creating lots of
temporary ID values just for hashing and comparison purposes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111130
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 15:04:39 +0000 (15:04 +0000)]
Tidy up whitespace in comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111129
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 15:03:24 +0000 (15:03 +0000)]
Constify FoldingSetNodeIDRef's Data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111128
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 14:53:42 +0000 (14:53 +0000)]
Reverse the order of GetNodeProfile's arguments, for consistency
with FoldingSetTrait::Profile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111127
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 14:45:36 +0000 (14:45 +0000)]
Fix indentation in example code in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111125
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 14:44:03 +0000 (14:44 +0000)]
Avoid #include <ScalarEvolution.h> in LoopSimplify.cpp, which doesn't
actually use ScalarEvolution.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111124
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 14:41:14 +0000 (14:41 +0000)]
Instead, teach SimplifyCFG to trim non-address-taken blocks from
indirectbr destination lists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111122
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 16 Aug 2010 14:39:19 +0000 (14:39 +0000)]
Revert r111058, the lint check for indirectbr successors that aren't
address-taken. This can occur normally, if the code which took the
address got DCEd.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111121
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 15 Aug 2010 23:32:03 +0000 (23:32 +0000)]
Test expects SSE, give him SSE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111115
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sun, 15 Aug 2010 22:14:42 +0000 (22:14 +0000)]
Updated LLVMLibDeps.cmake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111112
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sun, 15 Aug 2010 22:14:36 +0000 (22:14 +0000)]
CMake: Improved COMMENT on a custom command
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111111
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 15 Aug 2010 20:42:56 +0000 (20:42 +0000)]
Restore arch on these test, they fail on arm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111109
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Sun, 15 Aug 2010 19:40:29 +0000 (19:40 +0000)]
Mark as XFAIL on darwin 8. PR 7886.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111108
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sun, 15 Aug 2010 15:08:27 +0000 (15:08 +0000)]
Updated the GenLibDeps -> LLVMLibDeps.cmake transformation example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111104
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 15 Aug 2010 10:27:23 +0000 (10:27 +0000)]
Revert r111082. No warnings for this common pattern.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111102
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sun, 15 Aug 2010 07:07:24 +0000 (07:07 +0000)]
Update tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111096
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sun, 15 Aug 2010 07:07:17 +0000 (07:07 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111095
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sun, 15 Aug 2010 07:07:12 +0000 (07:07 +0000)]
llvmc: remove dynamic plugins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111094
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 14 Aug 2010 21:51:50 +0000 (21:51 +0000)]
Rework how the non-sse2 memory barrier is lowered so that the
encoding is correct for the built-in assembler.
Based on a patch from Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111083
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sat, 14 Aug 2010 21:35:10 +0000 (21:35 +0000)]
Add ATTRIBUTE_UNUSED to methods that are not supposed to be used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111082
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 14 Aug 2010 17:26:09 +0000 (17:26 +0000)]
improve indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111073
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 14 Aug 2010 03:18:29 +0000 (03:18 +0000)]
T2I_rbin_irs rr variant is for disassembly only, so don't provide a pattern.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111068
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 14 Aug 2010 01:55:09 +0000 (01:55 +0000)]
Update CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111063
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 14 Aug 2010 00:43:09 +0000 (00:43 +0000)]
LoopSimplify shouldn't split loop backedges that use indirectbr. PR7867.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111061
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 14 Aug 2010 00:29:42 +0000 (00:29 +0000)]
Teach SimplifyCFG how to simplify indirectbr instructions.
- Eliminate redundant successors.
- Convert an indirectbr with one successor into a direct branch.
Also, generalize SimplifyCFG to be able to be run on a function entry block.
It knows quite a few simplifications which are applicable to the entry
block, and it only needs a few checks to avoid trouble with the entry block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111060
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sat, 14 Aug 2010 00:15:52 +0000 (00:15 +0000)]
Add a local stack object block allocation pass. This is still an
experimental pass that allocates locals relative to one another before
register allocation and then assigns them to actual stack slots as a block
later in PEI. This will eventually allow targets with limited index offset
range to allocate additional base registers (not just FP and SP) to
more efficiently reference locals, as well as handle situations where
locals cannot be referenced via SP or FP at all (dynamic stack realignment
together with variable sized objects, for example). It's currently
incomplete and almost certainly buggy. Work in progress.
Disabled by default and gated via the -enable-local-stack-alloc command
line option.
rdar://
8277890
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111059
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 13 Aug 2010 23:56:28 +0000 (23:56 +0000)]
Add a lint check for an indirectbr destination which has not
had its address taken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111058
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 13 Aug 2010 23:24:25 +0000 (23:24 +0000)]
Add a Thumb2 t2RSBrr instruction for disassembly only.
This fixes another part of PR7792.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111057
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 13 Aug 2010 22:56:53 +0000 (22:56 +0000)]
Clean up the Spiller.h interface.
The earliestStart argument is entirely specific to linear scan allocation, and
can be easily calculated by RegAllocLinearScan.
Replace std::vector with SmallVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111055
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 13 Aug 2010 22:43:33 +0000 (22:43 +0000)]
Temporarily disable tail calls on ARM to work around some linker problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111050
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 13 Aug 2010 21:48:10 +0000 (21:48 +0000)]
Move the Thumb2 SSAT and USAT optional shift operator out of the
instruction opcode. This fixes part of PR7792.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111047
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 13 Aug 2010 21:24:58 +0000 (21:24 +0000)]
Various optimizations. Don't compare two loops' depths
when they are the same loop. Don't compare two instructions'
loop depths when they are in the same block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111045
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 13 Aug 2010 21:18:48 +0000 (21:18 +0000)]
Implement splitting inside a single block.
When a live range is contained a single block, we can split it around
instruction clusters. The current approach is very primitive, splitting before
and after the largest gap between uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111043
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 13 Aug 2010 21:17:19 +0000 (21:17 +0000)]
Fix LSR's ExtractImmediate and ExtractSymbol to avoid calling
ScalarEvolution::getAddExpr, which can be pretty expensive, when nothing
has changed, which is pretty common.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111042
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Fri, 13 Aug 2010 20:39:01 +0000 (20:39 +0000)]
Add comments to some pattern fragments in x86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111041
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 13 Aug 2010 20:32:35 +0000 (20:32 +0000)]
tidy up comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111040
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 13 Aug 2010 20:23:25 +0000 (20:23 +0000)]
When testing whether one loop contains another, test this directly
rather than testing whether the loop contains the other's header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111039
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 13 Aug 2010 20:17:27 +0000 (20:17 +0000)]
Add a const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111038
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 13 Aug 2010 20:17:14 +0000 (20:17 +0000)]
When creating a symmetric SCEV with a constant operand, put
the constant operand on the left, as that's where ScalarEvolution
will end up canonicalizing to.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111037
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 13 Aug 2010 20:11:39 +0000 (20:11 +0000)]
An add recurrence is loop-invariant in any loop inside of its
associated loop. This avoids potentially expensive traversals
of the add recurrence's operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111034
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 13 Aug 2010 20:08:59 +0000 (20:08 +0000)]
tidy up 80 column and whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111033
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Fri, 13 Aug 2010 20:08:53 +0000 (20:08 +0000)]
Revert r111007.
Apparently, this is now fixed in Clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111032
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 13 Aug 2010 20:03:15 +0000 (20:03 +0000)]
Implement hasComputableLoopEvolution for Add, Mul, and Trunc operators,
since they can support trivial implementations. This avoids potentially
expensive traversals of the operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111031
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 13 Aug 2010 19:04:21 +0000 (19:04 +0000)]
Refactor the code for disassembling Thumb2 saturate instructions along the
same lines as the change I made for ARM saturate instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111029
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 13 Aug 2010 18:43:45 +0000 (18:43 +0000)]
Revert 110491. While not wrong, it was based on a
misanalysis and is undesirable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111028
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Fri, 13 Aug 2010 17:50:47 +0000 (17:50 +0000)]
Fix comment to reflect code, and remove an unused argument
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111022
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Fri, 13 Aug 2010 17:44:10 +0000 (17:44 +0000)]
Improve comment to make explicit why not to touch this could before JIT goes MC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111021
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 13 Aug 2010 16:55:08 +0000 (16:55 +0000)]
tidy up whitespace a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111019
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Fri, 13 Aug 2010 07:03:56 +0000 (07:03 +0000)]
One more XFAIL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111010
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Fri, 13 Aug 2010 07:01:55 +0000 (07:01 +0000)]
More XFAILs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111008
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Fri, 13 Aug 2010 06:02:45 +0000 (06:02 +0000)]
Add a workaround for building with Clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111007
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Fri, 13 Aug 2010 04:15:45 +0000 (04:15 +0000)]
Add an XFAIL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111004
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 13 Aug 2010 02:37:50 +0000 (02:37 +0000)]
Revert last patch and r110954 as I meant to.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111001
91177308-0d34-0410-b5e6-
96231b3b80d8