Chris Lattner
e0e4cc7fd5
Teach instcombine's sext elimination logic to be more aggressive.
...
Previously, instcombine would only promote an expression tree to
the larger type if doing so eliminated two casts. This is because
a need to manually do the sign extend after the promoted expression
tree with two shifts. Now, we keep track of whether the result of
the computation is going to be properly sign extended already. If
so, we can unconditionally promote the expression, which allows us
to zap more sext's.
This implements rdar://6598839 (aka gcc pr38751)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92815 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-06 01:56:21 +00:00
Jakob Stoklund Olesen
8efadf94b5
Add <imp-def> and <imp-kill> operands when replacing virtual sub-register defs and kills.
...
An instruction like this:
%reg1097:1<def> = VMOVSR %R3<kill>, 14, %reg0
Must be replaced with this when substituting physical registers:
%S0<def> = VMOVSR %R3<kill>, 14, %reg0, %D0<imp-def>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92812 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-06 00:29:28 +00:00
Bill Wendling
3f09487404
The previous code could potentially cause a cycle. Allow ordering w.r.t. a 0 order.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92810 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-06 00:23:35 +00:00
Bill Wendling
cfeea4b92a
Only check the ordering if there is an ordering for each nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92807 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-06 00:09:23 +00:00
Bill Wendling
247fb4ebd3
Add a semi-primitive form of scheduling via the "SDNode ordering" to the
...
bottom-up scheduler. We prefer the lower order number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92806 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 23:48:12 +00:00
Chris Lattner
68c6e8998b
simplify this code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92800 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 23:00:30 +00:00
Dan Gohman
d7d1a29003
Move this test from test/Transforms/IndVarSimplify to
...
test/CodeGen/X86, as doesn't use -indvars, and it does use
llc -march=x86-64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92799 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 22:52:54 +00:00
Bill Wendling
9f7c5c0dca
Don't assign the shift the same type as the variable being shifted. This could
...
result in illegal types for the SHL operator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92797 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 22:39:10 +00:00
Johnny Chen
8314299161
Undo r92785, it caused test failure.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92796 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 22:37:28 +00:00
Chris Lattner
94aab49339
make this a static function instead of a method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92795 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 22:30:42 +00:00
Dan Gohman
7c3ecb6838
Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGen
...
uses several kinds of opcode values which are not declared within
that enum. This fixes PR5946.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92794 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 22:26:32 +00:00
Victor Hernandez
bf170d4c2f
Re-add parsing of function-local metadata; this time with testcase.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92793 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 22:22:14 +00:00
Chris Lattner
7a34d6c450
more rearrangement and cleanup, fix my test failure.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92792 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 22:21:18 +00:00
Chris Lattner
274ad68cc7
cleanup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92790 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 22:07:33 +00:00
Chris Lattner
c0f79af143
remove two trunc xforms that are subsumed by EvaluateInDifferentType.
...
The only difference is that EvaluateInDifferentType checks to ensure
they are profitable before doing them :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92788 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 22:01:41 +00:00
Chris Lattner
c04d3d37e4
merge some tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92786 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:54:09 +00:00
Johnny Chen
83f1136cfd
Add Rt2 to the asm format string for 32-bit Thumb load/store register dual
...
instructions. Thumb does not have the restriction that t2 = t+1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92785 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:51:46 +00:00
Chris Lattner
50ca0204c5
merge cast2 into cast.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92784 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:48:13 +00:00
Devang Patel
69d02e0a17
Allow null to be an element of NamedMDNode. e.g. !llvm.stuff = !{!0, !1 , null}
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92783 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:47:32 +00:00
Chris Lattner
6ae68a28b9
remove useless test.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92782 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:46:22 +00:00
Chris Lattner
8e66905ce8
another example.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92781 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:43:08 +00:00
Jakob Stoklund Olesen
e5319202af
Don't specify CR sub-registers as implicit defs of BL instructions.
...
It is enough to give the super registers CR0, CR1, ..., and specifying the
sub-registers as well causes confusion in the liveness computations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92778 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:38:37 +00:00
Chris Lattner
022bd99d10
remove a useless negative test, add a rdar # to an xfail that I'm working on.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92777 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:37:44 +00:00
Chris Lattner
a8f3ebbf5c
clean up tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92776 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:32:59 +00:00
Chris Lattner
464dc81803
just remove this xform which is subsumed by others.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92775 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:16:30 +00:00
Victor Hernandez
771150accb
Fix comment for CheckDebugInfoIntrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92774 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:13:46 +00:00
Chris Lattner
49bdfefc8d
move a trunc-specific transform out of commonIntCastTransforms into visitTrunc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92773 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:11:17 +00:00
Dan Gohman
dda30cd4af
Restore dump() methods to Loop and MachineLoop.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92772 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:08:02 +00:00
Benjamin Kramer
8c65f6e71c
Move remaining stuff to the isInteger predicate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92771 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:05:54 +00:00
Chris Lattner
718bf3f89d
move a zext specific xform out of commonIntCastTransforms into visitZExt and modernize it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92770 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 21:04:47 +00:00
Jakob Stoklund Olesen
b31defe94c
Remove livein checks from machine code verifier.
...
A phi operand that is implicitly defined in a predecessor becomes an undefined
register after phi elimination. This causes a lot of false positives when the
verifier is checking if live-in registers are live-out from all predecessors.
Removing the verifier checks seems like a better solution than insisting on
IMPLICIT_DEF instructions in predecessor blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92769 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 20:59:36 +00:00
Chris Lattner
f86d799a29
move a trunc-specific xform out of commonIntCastTransforms into visitTrunc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92768 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 20:57:30 +00:00
Chris Lattner
3168c7dd25
reduce indentation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92766 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 20:56:24 +00:00
Anton Korobeynikov
6ca835dedf
Regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92763 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 20:45:43 +00:00
Anton Korobeynikov
0addbf5817
Proper deduce z/System LLVM target from target triple when
...
--enable-targets=host is specified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92762 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 20:45:13 +00:00
Devang Patel
3e30c2a3c5
NamedMDNode is a collection MDNodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92761 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 20:41:31 +00:00
Benjamin Kramer
11acaa374c
Convert a ton of simple integer type equality tests to the new predicate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92760 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 20:07:06 +00:00
Benjamin Kramer
13be48701d
Add a new predicate for integer type equality tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92759 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 20:04:48 +00:00
David Greene
6786d5e183
Add an !eq() operator to TableGen. It operates on strings only.
...
Use !cast<string>() to compare other types of objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92754 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 19:11:42 +00:00
Dan Gohman
5f7775c85e
Add an entry on SmallBitVector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92747 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 18:24:00 +00:00
Chris Lattner
033574074d
optimize comparisons against cttz/ctlz/ctpop, patch by Alastair Lynn!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92745 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 18:09:56 +00:00
Dan Gohman
aceba31b7a
Delete useless trailing semicolons.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92740 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 17:55:26 +00:00
Dan Gohman
ba25f0924e
Nick Lewycky pointed out that this code makes changes unconditionally.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92739 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 17:50:58 +00:00
David Greene
f0fd3afeff
Have TableGen emit code that uses dbgs() rather than errs().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92738 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 17:47:41 +00:00
Devang Patel
ee890edd69
If a scope has only one instruction then first instruction is also the last instruction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92736 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 16:59:17 +00:00
Dan Gohman
9fff2187a2
Set Changed properly after calling DeleteDeadPHIs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92735 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 16:31:45 +00:00
Dan Gohman
321a813c53
Use do+while instead of while for loops which obviously have a
...
non-zero trip count. Use SmallVector's pop_back_val().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92734 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 16:27:25 +00:00
Dan Gohman
b7a9f2b504
Fix indentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92733 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 16:20:55 +00:00
Dan Gohman
90fe0bd68c
Make RecursivelyDeleteTriviallyDeadInstructions,
...
RecursivelyDeleteDeadPHINode, and DeleteDeadPHIs return a flag
indicating whether they made any changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92732 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 15:45:31 +00:00
Dan Gohman
ad2cee44e0
Some versions of GCC don't like non-static data members in sizeof
...
in this context.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92731 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-05 15:28:21 +00:00