oota-llvm.git
14 years agoFix 80 column ruler.
Nick Lewycky [Wed, 14 Apr 2010 04:40:35 +0000 (04:40 +0000)]
Fix 80 column ruler.

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

14 years agoBugpoint no longer uses exceptions.
Nick Lewycky [Wed, 14 Apr 2010 04:40:31 +0000 (04:40 +0000)]
Bugpoint no longer uses exceptions.

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

14 years agoimplement mc asmparser support for '.', which gets the
Chris Lattner [Wed, 14 Apr 2010 04:40:28 +0000 (04:40 +0000)]
implement mc asmparser support for '.', which gets the
current PC.  rdar://7834775

We now produce an identical .o file compared to the cctools
assembler for something like this:

_f0:
L0:
        jmp L1
        .long . - L0
L1:
        jmp A
        .long . - L1

        .zerofill __DATA,_bss,A,0

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

14 years agoRemove tab.
Nick Lewycky [Wed, 14 Apr 2010 04:19:05 +0000 (04:19 +0000)]
Remove tab.

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

14 years agoCommit testcase for r101213.
Nick Lewycky [Wed, 14 Apr 2010 03:46:42 +0000 (03:46 +0000)]
Commit testcase for r101213.

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

14 years agoWhile DAE can't modify the function signature of an externally visible function,
Nick Lewycky [Wed, 14 Apr 2010 03:38:11 +0000 (03:38 +0000)]
While DAE can't modify the function signature of an externally visible function,
it can check whether the visible direct callers are passing in parameters to
dead arguments and replace those with undef.

This reinstates r94322 with bugs fixed.

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

14 years agoGeneralize this code to handle Instructions in addition to ConstantExprs.
Dan Gohman [Wed, 14 Apr 2010 02:33:23 +0000 (02:33 +0000)]
Generalize this code to handle Instructions in addition to ConstantExprs.

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

14 years agoReorder the methods of this class to be a little more organized.
Dan Gohman [Wed, 14 Apr 2010 02:09:45 +0000 (02:09 +0000)]
Reorder the methods of this class to be a little more organized.

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

14 years agoFixed another assert exposed by fuzzing. Now, when an encoding error occurs
Johnny Chen [Wed, 14 Apr 2010 02:05:29 +0000 (02:05 +0000)]
Fixed another assert exposed by fuzzing.  Now, when an encoding error occurs
involing getBFCInvMask() where lsb <= msb does not hold true, the disassembler
just returns false, instead of assert, to indicate disassembly error.

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

14 years agoClear MachineInstr->MCSymbol maps at the end of a function.
Devang Patel [Wed, 14 Apr 2010 01:18:28 +0000 (01:18 +0000)]
Clear MachineInstr->MCSymbol maps at the end of a function.

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

14 years agoFixed an assert() exposed by fuzzing. Now, instead of assert when an invalid
Johnny Chen [Wed, 14 Apr 2010 01:17:37 +0000 (01:17 +0000)]
Fixed an assert() exposed by fuzzing.  Now, instead of assert when an invalid
instruction encoding is encountered, we just return a NULL ARMBasicMCBuilder
instance and the client just returns false to indicate disassembly error.

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

14 years agoFix -Asserts warnings.
Daniel Dunbar [Tue, 13 Apr 2010 23:34:11 +0000 (23:34 +0000)]
Fix -Asserts warnings.

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

14 years agoXFAIL this test for powerpc.
Devang Patel [Tue, 13 Apr 2010 23:23:09 +0000 (23:23 +0000)]
XFAIL this test for powerpc.
This test relies on iSel lowering dbg_declare intrinsic when CodeGen::OptLevel is None. On PPC side, CodeGen::OptLevel stays to default when -O0 is used on the command line.

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

14 years agoUnbreak CMake build by improving the EnhancedDisassembly makefile a
Douglas Gregor [Tue, 13 Apr 2010 22:47:43 +0000 (22:47 +0000)]
Unbreak CMake build by improving the EnhancedDisassembly makefile a
bit (we're not trying to build a shared library yet) and generating
the X86GenEDInfo.inc and ARMGenEDInfo.inc files as necessary.

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

14 years agoFast path implicit_def check.
Evan Cheng [Tue, 13 Apr 2010 22:13:34 +0000 (22:13 +0000)]
Fast path implicit_def check.

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

14 years agoAdd test for post-ra machine licm.
Evan Cheng [Tue, 13 Apr 2010 22:10:03 +0000 (22:10 +0000)]
Add test for post-ra machine licm.

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

14 years agoHandle a v2f64 formal parameter that is split between registers and memory
Bob Wilson [Tue, 13 Apr 2010 22:03:22 +0000 (22:03 +0000)]
Handle a v2f64 formal parameter that is split between registers and memory
such that the entire second half is in memory.  Radar 7855014.

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

14 years agoQuick fix for build errors caused by undefined
Sean Callanan [Tue, 13 Apr 2010 21:36:35 +0000 (21:36 +0000)]
Quick fix for build errors caused by undefined
NULL.

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

14 years agoFixed a nasty layering violation in the edis source
Sean Callanan [Tue, 13 Apr 2010 21:21:57 +0000 (21:21 +0000)]
Fixed a nasty layering violation in the edis source
code.  It used to #include the enhanced disassembly
information for the targets it supported straight
out of lib/Target/{X86,ARM,...} but now it uses a
new interface provided by MCDisassembler, and (so
far) implemented by X86 and ARM.

Also removed hacky #define-controlled initialization
of targets in edis.  If clients only want edis to
initialize a limited set of targets, they can set
--enable-targets on the configure command line.

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

14 years agoAdd CMake support for 'edis'.
Ted Kremenek [Tue, 13 Apr 2010 20:52:50 +0000 (20:52 +0000)]
Add CMake support for 'edis'.

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

14 years agoChanged getSOImmValRotate()'s hunt retry logic to ignore the low order 6 bits,
Johnny Chen [Tue, 13 Apr 2010 20:35:16 +0000 (20:35 +0000)]
Changed getSOImmValRotate()'s hunt retry logic to ignore the low order 6 bits,
instead of 7, because we are only looking for even rotate amount.

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

14 years agoDo not include types without any definition in pubtypes list.
Devang Patel [Tue, 13 Apr 2010 20:35:04 +0000 (20:35 +0000)]
Do not include types without any definition in pubtypes list.

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

14 years agoAvoid variable shadowing.
Evan Cheng [Tue, 13 Apr 2010 20:25:29 +0000 (20:25 +0000)]
Avoid variable shadowing.

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

14 years agoExpand postra machine licm's capability a little more. If an instruction's register...
Evan Cheng [Tue, 13 Apr 2010 20:21:05 +0000 (20:21 +0000)]
Expand postra machine licm's capability a little more. If an instruction's register operands are all loop invariants, then it's safe to hoist it.

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

14 years agoTeach MachineSinking to handle easy critical edges.
Jakob Stoklund Olesen [Tue, 13 Apr 2010 19:06:14 +0000 (19:06 +0000)]
Teach MachineSinking to handle easy critical edges.

Sometimes it is desirable to sink instructions along a critical edge:

x = ...
if (a && b) ...
else use(x);

The 'a && b' condition creates a critical edge to the else block, but we still
want to sink the computation of x into the block. The else block is dominated by
the parent block, so we are not pushing instructions into new code paths.

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

14 years agoFix test on non-x86 hosts.
Evan Cheng [Tue, 13 Apr 2010 18:54:04 +0000 (18:54 +0000)]
Fix test on non-x86 hosts.

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

14 years agoRe-apply 101075 and fix it properly. Just reuse the debug info of the branch instruct...
Evan Cheng [Tue, 13 Apr 2010 18:50:27 +0000 (18:50 +0000)]
Re-apply 101075 and fix it properly. Just reuse the debug info of the branch instruction being optimized. There is no need to --I which can deref off start of the BB.

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

14 years agoMake the disassembler respect the assembler dialect when printing instructions,
Chris Lattner [Tue, 13 Apr 2010 18:41:17 +0000 (18:41 +0000)]
Make the disassembler respect the assembler dialect when printing instructions,
patch by Marius Wachtler!

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

14 years agoTemporarily revert r101075, it's causing invalid iterator assertions
Eric Christopher [Tue, 13 Apr 2010 18:37:58 +0000 (18:37 +0000)]
Temporarily revert r101075, it's causing invalid iterator assertions
in a nightly tester.

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

14 years agoTeach postra machine licm to hoist more obvious invariants, e.g. instructions with...
Evan Cheng [Tue, 13 Apr 2010 18:16:00 +0000 (18:16 +0000)]
Teach postra machine licm to hoist more obvious invariants, e.g. instructions with no source operands.

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

14 years agoAdd a few comments.
Dan Gohman [Tue, 13 Apr 2010 17:07:06 +0000 (17:07 +0000)]
Add a few comments.

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

14 years agoEliminate MachineBasicBlock::const_livein_iterator and make
Dan Gohman [Tue, 13 Apr 2010 16:57:55 +0000 (16:57 +0000)]
Eliminate MachineBasicBlock::const_livein_iterator and make
MachineBasicBlock::livein_iterator a const_iterator, because
clients shouldn't ever be using the iterator interface to
mutate the livein set.

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

14 years agoRename MachineFrameInfo variables to MFI, for consistency with
Dan Gohman [Tue, 13 Apr 2010 16:56:45 +0000 (16:56 +0000)]
Rename MachineFrameInfo variables to MFI, for consistency with
the rest of CodeGen.

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

14 years agoMove MachineRegisterInfo's isLiveIn and isLiveOut out of line.
Dan Gohman [Tue, 13 Apr 2010 16:55:37 +0000 (16:55 +0000)]
Move MachineRegisterInfo's isLiveIn and isLiveOut out of line.

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

14 years agoUse MachineBasicBlock::isLiveIn.
Dan Gohman [Tue, 13 Apr 2010 16:53:51 +0000 (16:53 +0000)]
Use MachineBasicBlock::isLiveIn.

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

14 years agoDelete an unused member variable.
Dan Gohman [Tue, 13 Apr 2010 16:51:39 +0000 (16:51 +0000)]
Delete an unused member variable.

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

14 years agoTeach ScalarEvolution to simplify smax and umax when it can prove
Dan Gohman [Tue, 13 Apr 2010 16:51:03 +0000 (16:51 +0000)]
Teach ScalarEvolution to simplify smax and umax when it can prove
that one operand is always greater than another.

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

14 years agoMinor code micro-optimizations.
Dan Gohman [Tue, 13 Apr 2010 16:49:23 +0000 (16:49 +0000)]
Minor code micro-optimizations.

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

14 years agoActually... return after the check for invalid input.
Eric Christopher [Tue, 13 Apr 2010 16:41:29 +0000 (16:41 +0000)]
Actually... return after the check for invalid input.

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

14 years agoBumpPtrAllocator::Reset() doesn't need to allocate anything. (Thanks, Jakob)
Benjamin Kramer [Tue, 13 Apr 2010 16:38:06 +0000 (16:38 +0000)]
BumpPtrAllocator::Reset() doesn't need to allocate anything. (Thanks, Jakob)

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

14 years agoUpdate unittest for allocator laziness.
Benjamin Kramer [Tue, 13 Apr 2010 15:01:26 +0000 (15:01 +0000)]
Update unittest for allocator laziness.

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

14 years agoLet BumpPtrAllocator lazily allocate the first slab.
Benjamin Kramer [Tue, 13 Apr 2010 14:41:51 +0000 (14:41 +0000)]
Let BumpPtrAllocator lazily allocate the first slab.

We have some code in llvm and clang where a BumpPtrAllocator is declared in a
class but never used in the common case. Stop wasting memory there.

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

14 years agoRemove SCCVN from the CMake build system.
Owen Anderson [Tue, 13 Apr 2010 08:33:09 +0000 (08:33 +0000)]
Remove SCCVN from the CMake build system.

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

14 years agocheckpoint.
Chris Lattner [Tue, 13 Apr 2010 06:37:00 +0000 (06:37 +0000)]
checkpoint.

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

14 years agoSCCVN, we hardly knew ye!
Owen Anderson [Tue, 13 Apr 2010 05:24:08 +0000 (05:24 +0000)]
SCCVN, we hardly knew ye!

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

14 years agoFix PR6826: GraphWriter delete the generated file before "dotty" load it,
Chris Lattner [Tue, 13 Apr 2010 04:35:39 +0000 (04:35 +0000)]
Fix PR6826: GraphWriter delete the generated file before "dotty" load it,
patch by 'ether'.

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

14 years agoReplace r101053 with a fix for getSOImmValRotate() so that it will correctly
Bob Wilson [Tue, 13 Apr 2010 02:11:48 +0000 (02:11 +0000)]
Replace r101053 with a fix for getSOImmValRotate() so that it will correctly
recognize all the valid rotated immediates.  This fixes the disassembler
issue and will also help codegen for some unusual constant values.

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

14 years agoTeach IndVarSimplify how to eliminate remainder operators where the
Dan Gohman [Tue, 13 Apr 2010 01:46:36 +0000 (01:46 +0000)]
Teach IndVarSimplify how to eliminate remainder operators where the
numerator is an induction variable. For example, with code like this:

  for (i=0;i<n;++i)
    x[i%n] = 0;

IndVarSimplify will now recognize that i is always less than n inside
the loop, and eliminate the remainder.

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

14 years agoVMCore: Add Type::getIntN[Ptr]Ty, which are the obvious generic forms of
Daniel Dunbar [Tue, 13 Apr 2010 01:39:07 +0000 (01:39 +0000)]
VMCore: Add Type::getIntN[Ptr]Ty, which are the obvious generic forms of
Type::getInt{1,8,...}[Ptr]Ty, so code can consistently use the methods on Type
without occasionally needed to call IntegerType::get.

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

14 years agoIRBuilder: Add Create{Shl,LShr,And,Or,Xor} methods from uin64_t and APInt constants.
Daniel Dunbar [Tue, 13 Apr 2010 01:38:57 +0000 (01:38 +0000)]
IRBuilder: Add Create{Shl,LShr,And,Or,Xor} methods from uin64_t and APInt constants.

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

14 years agoadd llvm codegen support for -ffunction-sections and -fdata-sections,
Chris Lattner [Tue, 13 Apr 2010 00:36:43 +0000 (00:36 +0000)]
add llvm codegen support for -ffunction-sections and -fdata-sections,
patch by Sylvere Teissier!

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

14 years agoBuild system fix to make llvm-mc properly build
Sean Callanan [Mon, 12 Apr 2010 23:55:28 +0000 (23:55 +0000)]
Build system fix to make llvm-mc properly build
after edis.  Really, there ought to be some
mechanism to ensure that PARALLEL_DIRS get built
after DIRS.

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

14 years agoMicro-optimize a few hot spots.
Dan Gohman [Mon, 12 Apr 2010 23:08:18 +0000 (23:08 +0000)]
Micro-optimize a few hot spots.

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

14 years agoUse .set expression for x86 pic jump table reference to reduce assembly relocation...
Evan Cheng [Mon, 12 Apr 2010 23:07:17 +0000 (23:07 +0000)]
Use .set expression for x86 pic jump table reference to reduce assembly relocation. rdar://7738756

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

14 years agoAdd fast paths to ScalarEvolution::getSizeOf and getOffsetOf, as
Dan Gohman [Mon, 12 Apr 2010 23:03:26 +0000 (23:03 +0000)]
Add fast paths to ScalarEvolution::getSizeOf and getOffsetOf, as
they're used a lot by getNodeForGEP, which can be called a lot.
This speeds up -iv-users by around 15% on several testcases.

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

14 years agoThird time's a charm...
Bill Wendling [Mon, 12 Apr 2010 22:43:21 +0000 (22:43 +0000)]
Third time's a charm...

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

14 years agoGenericize the label test.
Bill Wendling [Mon, 12 Apr 2010 22:40:37 +0000 (22:40 +0000)]
Genericize the label test.

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

14 years agoCorrect test to test what I mean it to test.
Bill Wendling [Mon, 12 Apr 2010 22:25:42 +0000 (22:25 +0000)]
Correct test to test what I mean it to test.

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

14 years agoMicro-optimization:
Bill Wendling [Mon, 12 Apr 2010 22:19:57 +0000 (22:19 +0000)]
Micro-optimization:

If we have this situation:

    jCC  L1
    jmp  L2
L1:
  ...
L2:
  ...

We can get a small performance boost by emitting this instead:

    jnCC L2
L1:
  ...
L2:
  ...

This testcase shows an example of this:

float func(float x, float y) {
    double product = (double)x * y;
    if (product == 0.0)
        return product;
    return product - 1.0;
}

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

14 years agoSimplify this code.
Dan Gohman [Mon, 12 Apr 2010 22:12:29 +0000 (22:12 +0000)]
Simplify this code.

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

14 years agoBuild system fixes. llvm-mc depends on
Sean Callanan [Mon, 12 Apr 2010 21:55:49 +0000 (21:55 +0000)]
Build system fixes.  llvm-mc depends on
libEnhancedDisassembly, so we now build the
static library in all cases (although the shared
library is only built when requested/possible).

Also, fixed a bug where edis wasn't properly
initializing the targets it uses.

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

14 years agoSuppress LinearFunctionTestReplace when the computed backedge-taken
Dan Gohman [Mon, 12 Apr 2010 21:13:43 +0000 (21:13 +0000)]
Suppress LinearFunctionTestReplace when the computed backedge-taken
expression is a UDiv and it doesn't appear that the UDiv came from
the user's source.

ScalarEvolution has recently figured out how to compute a tripcount
expression for the inner loop in
SingleSource/Benchmarks/Shootout/sieve.c, using a udiv. Emitting a
udiv instruction dramatically slows down the enclosing loop.

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

14 years agoBug fix: made the enhanced disassembler's link
Sean Callanan [Mon, 12 Apr 2010 20:23:08 +0000 (20:23 +0000)]
Bug fix: made the enhanced disassembler's link
flags work properly when EDIS_VERSION is defined

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

14 years agoBug fix: included System/Types.h instead of
Sean Callanan [Mon, 12 Apr 2010 20:21:56 +0000 (20:21 +0000)]
Bug fix: included System/Types.h instead of
inttypes.h to allow building on Windows.

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

14 years agoSecond try at integrating the edis tester. This
Sean Callanan [Mon, 12 Apr 2010 19:43:00 +0000 (19:43 +0000)]
Second try at integrating the edis tester.  This
time I use the LIBS variable, which is not subject
to a %.a -> -l% transformation, to link llvm-mc
against libEnhancedDisassembly.

llvm-mc -edis works the same as llvm-mc
-disassemble, but outputs tokens and operands.

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

14 years agoFixed a crasher in arm disassembler within ARMInstPrinter.cpp after calling
Johnny Chen [Mon, 12 Apr 2010 18:46:53 +0000 (18:46 +0000)]
Fixed a crasher in arm disassembler within ARMInstPrinter.cpp after calling
ARM_AM::getSoImmVal(V) with a legitimate so_imm value: #245 rotate right by 2.
Introduce ARM_AM::getSOImmValOneOrNoRotate(unsigned Arg) which is called from
ARMInstPrinter.cpp's printSOImm() function, replacing ARM_AM::getSOImmVal(V).

[12:44:43] johnny:/Volumes/data/llvm/git/trunk (local-trunk) $ gdb Debug/bin/llvm-mc
GNU gdb 6.3.50-20050815 (Apple version gdb-1346) (Fri Sep 18 20:40:51 UTC 2009)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ... done

(gdb) set args  -triple=arm-apple-darwin9 -debug-only=arm-disassembler --disassemble
(gdb) r
Starting program: /Volumes/data/llvm/git/trunk/Debug/bin/llvm-mc -triple=arm-apple-darwin9 -debug-only=arm-disassembler --disassemble
Reading symbols for shared libraries ++. done
0xf5 0x71 0xf0 0x53
Opcode=201 Name=MVNi Format=ARM_FORMAT_DPFRM(4)
 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
-------------------------------------------------------------------------------------------------
| 0: 1: 0: 1| 0: 0: 1: 1| 1: 1: 1: 1| 0: 0: 0: 0| 0: 1: 1: 1| 0: 0: 0: 1| 1: 1: 1: 1| 0: 1: 0: 1|
-------------------------------------------------------------------------------------------------

mvnpls r7, Assertion failed: (V != -1 && "Not a valid so_imm value!"), function printSOImm, file ARMInstPrinter.cpp, line 229.

Program received signal SIGABRT, Aborted.
0x00007fff88c65886 in __kill ()
(gdb) bt
#0  0x00007fff88c65886 in __kill ()
#1  0x00007fff88d05eae in abort ()
#2  0x00007fff88cf2ef0 in __assert_rtn ()
#3  0x000000010020e422 in printSOImm (O=@0x1010bdf80, V=-1, VerboseAsm=false, MAI=0x1020106d0) at ARMInstPrinter.cpp:229
#4  0x000000010020e5fe in llvm::ARMInstPrinter::printSOImmOperand (this=0x1020107e0, MI=0x7fff5fbfee70, OpNum=1, O=@0x1010bdf80) at ARMInstPrinter.cpp:254
#5  0x00000001001ffbc0 in llvm::ARMInstPrinter::printInstruction (this=0x1020107e0, MI=0x7fff5fbfee70, O=@0x1010bdf80) at ARMGenAsmWriter.inc:3236
#6  0x000000010020c27c in llvm::ARMInstPrinter::printInst (this=0x1020107e0, MI=0x7fff5fbfee70, O=@0x1010bdf80) at ARMInstPrinter.cpp:182
#7  0x000000010003cbff in PrintInsts (DisAsm=@0x10200f4e0, Printer=@0x1020107e0, Bytes=@0x7fff5fbff060, SM=@0x7fff5fbff078) at Disassembler.cpp:65
#8  0x000000010003c8b4 in llvm::Disassembler::disassemble (T=@0x1010c13c0, Triple=@0x1010b6798, Buffer=@0x102010690) at Disassembler.cpp:153
#9  0x000000010004095c in DisassembleInput (ProgName=0x7fff5fbff3f0 "/Volumes/data/llvm/git/trunk/Debug/bin/llvm-mc") at llvm-mc.cpp:347
#10 0x000000010003eefb in main (argc=4, argv=0x7fff5fbff298) at llvm-mc.cpp:374
(gdb) q
The program is running.  Exit anyway? (y or n) y
[13:36:26] johnny:/Volumes/data/llvm/git/trunk (local-trunk) $

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

14 years agoRemove a #include.
Dan Gohman [Mon, 12 Apr 2010 16:26:03 +0000 (16:26 +0000)]
Remove a #include.

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

14 years agoRemove unneeded debug in PostDominator runOnFunction()
Tobias Grosser [Mon, 12 Apr 2010 15:32:55 +0000 (15:32 +0000)]
Remove unneeded debug in PostDominator runOnFunction()

The information is already available with "opt -analyze". The DominatorTree
does also not have this in its runOnFunction. So they behave now
more consistent.

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

14 years agoRemove dead code in the dotty dominance tree printer.
Tobias Grosser [Mon, 12 Apr 2010 15:02:19 +0000 (15:02 +0000)]
Remove dead code in the dotty dominance tree printer.

This template is not needed anymore as it was replaced by the
DOTGraphTraitsViewer.

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

14 years agoBoolify.
Benjamin Kramer [Mon, 12 Apr 2010 12:22:19 +0000 (12:22 +0000)]
Boolify.

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

14 years agoPlug trivial leak.
Benjamin Kramer [Mon, 12 Apr 2010 11:38:35 +0000 (11:38 +0000)]
Plug trivial leak.

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

14 years agoDelete this code, which is no longer needed.
Dan Gohman [Mon, 12 Apr 2010 08:00:22 +0000 (08:00 +0000)]
Delete this code, which is no longer needed.

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

14 years agoMove the EliminateIVUsers call back out to its original location. Now that
Dan Gohman [Mon, 12 Apr 2010 07:56:56 +0000 (07:56 +0000)]
Move the EliminateIVUsers call back out to its original location. Now that
a ScalarEvolution bug with overflow handling is fixed, the normal analysis
code will automatically decline to operate on the icmp instructions which
are responsible for the loop exit.

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

14 years agoGeneralize ScalarEvolution's PHI analysis to handle loops that don't
Dan Gohman [Mon, 12 Apr 2010 07:49:36 +0000 (07:49 +0000)]
Generalize ScalarEvolution's PHI analysis to handle loops that don't
have preheaders or dedicated exit blocks, as clients may not otherwise
need to run LoopSimplify.

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

14 years agoRewrite the overflow checking in the get{Signed,Unsigned}Range code for
Dan Gohman [Mon, 12 Apr 2010 07:39:33 +0000 (07:39 +0000)]
Rewrite the overflow checking in the get{Signed,Unsigned}Range code for
AddRecs so that it checks for overflow in the computation that it is
performing, rather than just checking hasNo{Signed,Unsigned}Wrap, since
those flags are for a different computation. This fixes a bug that
impacts an upcoming change.

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

14 years agoUse RecursivelyDeleteTriviallyDeadInstructions in EliminateIVComparisons,
Dan Gohman [Mon, 12 Apr 2010 07:29:15 +0000 (07:29 +0000)]
Use RecursivelyDeleteTriviallyDeadInstructions in EliminateIVComparisons,
instead of deleting just the user. This makes it more consistent with
other code in IndVarSimplify, and theoretically can eliminate more users
earlier.

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

14 years agoEnable post regalloc machine licm by default.
Evan Cheng [Mon, 12 Apr 2010 06:25:28 +0000 (06:25 +0000)]
Enable post regalloc machine licm by default.

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

14 years agoRemove use of exceptions from bugpoint. No deliberate functionality change!
Nick Lewycky [Mon, 12 Apr 2010 05:08:25 +0000 (05:08 +0000)]
Remove use of exceptions from bugpoint. No deliberate functionality change!

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

14 years agoVerify function prototypes before trying to optimize functions. We also
Eric Christopher [Mon, 12 Apr 2010 04:48:00 +0000 (04:48 +0000)]
Verify function prototypes before trying to optimize functions. We also
need TargetData, just return false if we don't have it.

Update testcases accordingly.

Fixes PR6807.

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

14 years agoRemove unnecessary parens.
Dan Gohman [Mon, 12 Apr 2010 02:24:01 +0000 (02:24 +0000)]
Remove unnecessary parens.

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

14 years agoMinor code simplification.
Dan Gohman [Mon, 12 Apr 2010 02:22:30 +0000 (02:22 +0000)]
Minor code simplification.

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

14 years agoRe-apply r101000, with a fix: Don't eliminate an icmp which is part of
Dan Gohman [Mon, 12 Apr 2010 02:21:50 +0000 (02:21 +0000)]
Re-apply r101000, with a fix: Don't eliminate an icmp which is part of
the loop exit test. This usually doesn't come up for a variety of
reasons, but it isn't impossible, so make IndVarSimplify handle it
conservatively.

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

14 years agowhether we enable dylibs or not depends on the host, not the target.
Chris Lattner [Mon, 12 Apr 2010 02:21:38 +0000 (02:21 +0000)]
whether we enable dylibs or not depends on the host, not the target.

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

14 years agoRevert 101000, which is breaking self-host builds.
Dan Gohman [Mon, 12 Apr 2010 00:17:10 +0000 (00:17 +0000)]
Revert 101000, which is breaking self-host builds.

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

14 years agoFix indentation.
Dan Gohman [Sun, 11 Apr 2010 23:44:58 +0000 (23:44 +0000)]
Fix indentation.

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

14 years agoTeach IndVarSimplify how to eliminate comparisons involving induction
Dan Gohman [Sun, 11 Apr 2010 23:10:12 +0000 (23:10 +0000)]
Teach IndVarSimplify how to eliminate comparisons involving induction
variables. For example, with code like this:

  for (i=0;i<n;++i)
    if (i<n)
      x[i] = 0;

IndVarSimplify will now recognize that i is always less than n inside
the loop, and eliminate the if.

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

14 years agoEnhance ScalarEvolution::isKnownPredicate with support for
Dan Gohman [Sun, 11 Apr 2010 22:16:48 +0000 (22:16 +0000)]
Enhance ScalarEvolution::isKnownPredicate with support for
loop conditions which are invariants.

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

14 years agoMinor code simplification.
Dan Gohman [Sun, 11 Apr 2010 22:13:11 +0000 (22:13 +0000)]
Minor code simplification.

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

14 years agoWhen creating a ConstantRange for [n,UINT_MAX], special case n == 0, because
Dan Gohman [Sun, 11 Apr 2010 22:12:18 +0000 (22:12 +0000)]
When creating a ConstantRange for [n,UINT_MAX], special case n == 0, because
ConstantRange(0, 0) creates an empty range rather than a full one.

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

14 years agoFix a comment.
Dan Gohman [Sun, 11 Apr 2010 22:07:56 +0000 (22:07 +0000)]
Fix a comment.

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

14 years agoAdd a cast to void to show that the return value is being
Dan Gohman [Sun, 11 Apr 2010 19:30:19 +0000 (19:30 +0000)]
Add a cast to void to show that the return value is being
intentionally ignored.

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

14 years agoDelete a dead check.
Dan Gohman [Sun, 11 Apr 2010 19:29:41 +0000 (19:29 +0000)]
Delete a dead check.

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

14 years agoDelete dead code.
Dan Gohman [Sun, 11 Apr 2010 19:28:47 +0000 (19:28 +0000)]
Delete dead code.

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

14 years agoFix a #include.
Dan Gohman [Sun, 11 Apr 2010 19:27:52 +0000 (19:27 +0000)]
Fix a #include.

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

14 years agoRename isLoopGuardedByCond to isLoopEntryGuardedByCond, to emphasise
Dan Gohman [Sun, 11 Apr 2010 19:27:13 +0000 (19:27 +0000)]
Rename isLoopGuardedByCond to isLoopEntryGuardedByCond, to emphasise
that it's only testing for the entry condition, not full loop-invariant
conditions.

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

14 years agoutostr isn't going away too soon, try to make it slightly smaller.
Benjamin Kramer [Sun, 11 Apr 2010 19:00:03 +0000 (19:00 +0000)]
utostr isn't going away too soon, try to make it slightly smaller.

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

14 years agoRemove dead argument and clean whitespace. No functionality change.
Nick Lewycky [Sat, 10 Apr 2010 23:18:13 +0000 (23:18 +0000)]
Remove dead argument and clean whitespace. No functionality change.

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

14 years agoImplement support for varargs functions without any fixed
Chris Lattner [Sat, 10 Apr 2010 19:12:44 +0000 (19:12 +0000)]
Implement support for varargs functions without any fixed
parameters in the CBE by implicitly adding a fixed argument.
This allows eliminating a work-around from DAE.  Patch by
Sylvere Teissier!

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

14 years agoconfigure: Fix default value for optimize_option, I messed up the test condition
Daniel Dunbar [Sat, 10 Apr 2010 18:56:24 +0000 (18:56 +0000)]
configure: Fix default value for optimize_option, I messed up the test condition
in r86005 and unintentionally changed the default from -O3 to -O2.

 - It's odd the things automated perf testing turns up! :)

 - Also, the configure diff is messed up slightly. It looks like someone either
   didn't regenerate configure correctly (or I didn't), or autoconf has some
   funnyness in it. Eric, any ideas?

This has been at -O2 for so long, that I am slightly nervous that this change
will uncover miscompiles of LLVM on other systems. If that is the case, I think
we should just set the default universally at -O3, and let developers/vendors
use -O3 if they want it and have tested it.

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

14 years agofix PR6743, a case where we'd delete an instruction before using it
Chris Lattner [Sat, 10 Apr 2010 18:26:57 +0000 (18:26 +0000)]
fix PR6743, a case where we'd delete an instruction before using it
in some cases.

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