oota-llvm.git
13 years agoHookup ELF support for X86.
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

13 years agoAdd ELF ObjectWriter and Streamer support.
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

13 years agoLayout helper function.
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

13 years agoRecord a symbol's size which is needed for ELF symbol tables.
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

13 years agoELF entry size support.
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

13 years agoRename sat_shift operand to shift_imm, in preparation for using it for other
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

13 years agoPartially revert r111155. It looks like MSVC is calling an operator<() that
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

13 years agotrack local frame size in MFI, not local to the pass, since PEI needs it.
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

13 years agoRevert r111031. The way LLVM defines loop invariance, the property of an
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

13 years agoRemove unused functions.
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

13 years agoRemove unused functions.
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

13 years agoRemove unused code.
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

13 years agoConvert a test to use FileCheck.
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

13 years agoPlacate overzealous compiler warnings.
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

13 years agoTo create a copy of a SmallVector with an element removed from the
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

13 years agoInstall Embedded builds into usr/local. Radar 8313723.
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

13 years agosilence a vc2010 warning: " result of 32-bit shift implicitly converted to
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

13 years agoTidy whitespace.
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

13 years agoAdd a comment.
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

13 years agoUse const_iterator in a few places.
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

13 years agoUse iterators instead of indices in a few more places.
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

13 years agoMicro-optimize SCEVConstant comparison.
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

13 years agoMove SCEVNAryExpr's virtual member functions out of line, and convert
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

13 years agoUse iterators instead of indices in simple cases.
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

13 years agoAvoid gratuitous inefficiency in ifndef NDEBUG code.
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

13 years agoMake one getAddExpr call when analyzing a+b+c+d+e+... instead of one
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

13 years agoDelete an unused function.
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

13 years agoInstead of having CollectSubexpr's categorize operands as interesting or
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

13 years agoPut add operands in ScalarEvolution-canonical order, when convenient.
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

13 years agoSpecialize FoldingSetTrait<SCEV>, providing implementations of node
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

13 years agoAdd hooks to FoldingSetTrait to allow specializations to provide
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

13 years agoTidy up whitespace in comments.
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

13 years agoConstify FoldingSetNodeIDRef's Data.
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

13 years agoReverse the order of GetNodeProfile's arguments, for consistency
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

13 years agoFix indentation in example code in a comment.
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

13 years agoAvoid #include <ScalarEvolution.h> in LoopSimplify.cpp, which doesn't
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

13 years agoInstead, teach SimplifyCFG to trim non-address-taken blocks from
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

13 years agoRevert r111058, the lint check for indirectbr successors that aren't
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

13 years agoTest expects SSE, give him SSE.
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

13 years agoUpdated LLVMLibDeps.cmake
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

13 years agoCMake: Improved COMMENT on a custom command
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

13 years agoRestore arch on these test, they fail on arm.
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

13 years agoMark as XFAIL on darwin 8. PR 7886.
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

13 years agoUpdated the GenLibDeps -> LLVMLibDeps.cmake transformation example.
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

13 years agoRevert r111082. No warnings for this common pattern.
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

13 years agoUpdate tests.
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

13 years agoRegenerate.
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

13 years agollvmc: remove dynamic plugins.
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

13 years agoRework how the non-sse2 memory barrier is lowered so that the
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

13 years agoAdd ATTRIBUTE_UNUSED to methods that are not supposed to be used.
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

13 years agoimprove indentation
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

13 years agoT2I_rbin_irs rr variant is for disassembly only, so don't provide a pattern.
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

13 years agoUpdate CMake build.
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

13 years agoLoopSimplify shouldn't split loop backedges that use indirectbr. PR7867.
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

13 years agoTeach SimplifyCFG how to simplify indirectbr instructions.
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

13 years agoAdd a local stack object block allocation pass. This is still an
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

13 years agoAdd a lint check for an indirectbr destination which has not
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

13 years agoAdd a Thumb2 t2RSBrr instruction for disassembly only.
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

13 years agoClean up the Spiller.h interface.
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

13 years agoTemporarily disable tail calls on ARM to work around some linker problems.
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

13 years agoMove the Thumb2 SSAT and USAT optional shift operator out of the
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

13 years agoVarious optimizations. Don't compare two loops' depths
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

13 years agoImplement splitting inside a single block.
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

13 years agoFix LSR's ExtractImmediate and ExtractSymbol to avoid calling
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

13 years agoAdd comments to some pattern fragments in x86
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

13 years agotidy up comments
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

13 years agoWhen testing whether one loop contains another, test this directly
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

13 years agoAdd a const.
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

13 years agoWhen creating a symmetric SCEV with a constant operand, put
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

13 years agoAn add recurrence is loop-invariant in any loop inside of its
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

13 years agotidy up 80 column and whitespace
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

13 years agoRevert r111007.
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

13 years agoImplement hasComputableLoopEvolution for Add, Mul, and Trunc operators,
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

13 years agoRefactor the code for disassembling Thumb2 saturate instructions along the
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

13 years agoRevert 110491. While not wrong, it was based on a
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

13 years agoFix comment to reflect code, and remove an unused argument
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

13 years agoImprove comment to make explicit why not to touch this could before JIT goes MC
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

13 years agotidy up whitespace a bit
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

13 years agoOne more XFAIL.
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

13 years agoMore XFAILs.
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

13 years agoAdd a workaround for building with Clang.
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

13 years agoAdd an XFAIL.
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

13 years agoRevert last patch and r110954 as I meant to.
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

13 years agoRevert r110954 for now, pseudo instructions can't make it through to the JIT.
Eric Christopher [Fri, 13 Aug 2010 02:30:00 +0000 (02:30 +0000)]
Revert r110954 for now, pseudo instructions can't make it through to the JIT.

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

13 years agoRemove -fexceptions from llvmc tests.
Mikhail Glushenkov [Fri, 13 Aug 2010 02:29:35 +0000 (02:29 +0000)]
Remove -fexceptions from llvmc tests.

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

13 years agollvmc: fix two tests, remove XFAILs.
Mikhail Glushenkov [Fri, 13 Aug 2010 02:29:24 +0000 (02:29 +0000)]
llvmc: fix two tests, remove XFAILs.

Tested on Linux and Darwin; please add platform-specific XFAILs/mail me a bug
report if this still fails.

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

13 years agoLet LiveInterval::addRange extend existing ranges, it will verify that value
Jakob Stoklund Olesen [Fri, 13 Aug 2010 01:05:26 +0000 (01:05 +0000)]
Let LiveInterval::addRange extend existing ranges, it will verify that value
numbers match. The old check could accidentally leave holes in openli.

Also let useIntv add all ranges for the phi-def value inserted by
enterIntvAtEnd. This works as long at the value mapping is established in
enterIntvAtEnd.

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

13 years agoRemember to actually update SplitAnalysis statistics now that we have a fancy
Jakob Stoklund Olesen [Fri, 13 Aug 2010 01:05:23 +0000 (01:05 +0000)]
Remember to actually update SplitAnalysis statistics now that we have a fancy
function to do it.

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

13 years agoUse getAllOnesValue, saves a copy and looks better.
Benjamin Kramer [Fri, 13 Aug 2010 00:29:44 +0000 (00:29 +0000)]
Use getAllOnesValue, saves a copy and looks better.

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

13 years agoReapply this transformation now that it is passing the external test which it previou...
Nate Begeman [Fri, 13 Aug 2010 00:17:53 +0000 (00:17 +0000)]
Reapply this transformation now that it is passing the external test which it previously failed.

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

13 years agoMove some code from Verifier into SVI::isValidOperands. This allows us to catch...
Nate Begeman [Fri, 13 Aug 2010 00:16:46 +0000 (00:16 +0000)]
Move some code from Verifier into SVI::isValidOperands.  This allows us to catch bad shufflevector operations when they are created, rather than waiting for someone to notice later on.

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

13 years agoTrim #includes.
Dan Gohman [Thu, 12 Aug 2010 23:56:03 +0000 (23:56 +0000)]
Trim #includes.

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

13 years agoTidy up whitespace.
Dan Gohman [Thu, 12 Aug 2010 23:50:08 +0000 (23:50 +0000)]
Tidy up whitespace.

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

13 years agoUse .empty() instead of .size().
Dan Gohman [Thu, 12 Aug 2010 23:46:28 +0000 (23:46 +0000)]
Use .empty() instead of .size().

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

13 years agoHandle an empty dupli.
Jakob Stoklund Olesen [Thu, 12 Aug 2010 23:02:57 +0000 (23:02 +0000)]
Handle an empty dupli.

This can happen if the original interval has been broken into two disconnected
parts. Ideally, we should be able to detect when the graph is disconnected and
create separate intervals, but that code is not implemented yet.

Example:

Two basic blocks are both branching to a loop header. Our interval is defined in
both basic blocks, and live into the loop along both edges.

We decide to split the interval around the loop. The interval is split into an
inside part and an outside part. The outside part now has two disconnected
segments, one in each basic block.

If we later decide to split the outside interval into single blocks, we get one
interval per basic block and an empty dupli for the remainder.

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

13 years agoUpdate the SplitAnalysis statistics as uses are moved from curli to the new
Jakob Stoklund Olesen [Thu, 12 Aug 2010 23:02:55 +0000 (23:02 +0000)]
Update the SplitAnalysis statistics as uses are moved from curli to the new
split intervals. THis means the analysis can be used for multiple splits as long
as curli doesn't shrink.

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

13 years agofix PR7876: If ipsccp decides that a function's address is taken
Chris Lattner [Thu, 12 Aug 2010 22:25:23 +0000 (22:25 +0000)]
fix PR7876: If ipsccp decides that a function's address is taken
before it rewrites the code, we need to use that in the post-rewrite pass.

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

13 years agoSome small clean-up: use of pseudo instructions
Bruno Cardoso Lopes [Thu, 12 Aug 2010 20:55:18 +0000 (20:55 +0000)]
Some small clean-up: use of pseudo instructions

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

13 years agoCleaned up the for-disassembly-only entries in the arm instruction table so that
Johnny Chen [Thu, 12 Aug 2010 20:46:17 +0000 (20:46 +0000)]
Cleaned up the for-disassembly-only entries in the arm instruction table so that
the memory barrier variants (other than 'SY' full system domain read and write)
are treated as one instruction with option operand.

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

13 years agoAlso recompute HasPHIKill flags in LiveInterval::RenumberValues.
Jakob Stoklund Olesen [Thu, 12 Aug 2010 20:38:03 +0000 (20:38 +0000)]
Also recompute HasPHIKill flags in LiveInterval::RenumberValues.

If a phi-def value were removed from the interval, the phi-kill flags are no
longer valid.

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