oota-llvm.git
17 years agoMigrate X86 and ARM from using X86ISD::{,I}DIV and ARMISD::MULHILO{U,S} to
Dan Gohman [Mon, 8 Oct 2007 18:33:35 +0000 (18:33 +0000)]
Migrate X86 and ARM from using X86ISD::{,I}DIV and ARMISD::MULHILO{U,S} to
use ISD::{S,U}DIVREM and ISD::{S,U}MUL_HIO. Move the lowering code
associated with these operators into target-independent in LegalizeDAG.cpp
and TargetLowering.cpp.

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

17 years agoAllow x86 compare to be commutable by default.
Evan Cheng [Mon, 8 Oct 2007 18:27:46 +0000 (18:27 +0000)]
Allow x86 compare to be commutable by default.

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

17 years agoC and Objective Caml bindings for PHINode::addIncoming etc.
Gordon Henriksen [Mon, 8 Oct 2007 18:14:39 +0000 (18:14 +0000)]
C and Objective Caml bindings for PHINode::addIncoming etc.

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

17 years agoDAGCombiner support for UDIVREM/SDIVREM and UMUL_LOHI/SMUL_LOHI.
Dan Gohman [Mon, 8 Oct 2007 17:57:15 +0000 (17:57 +0000)]
DAGCombiner support for UDIVREM/SDIVREM and UMUL_LOHI/SMUL_LOHI.
Check if one of the two results unneeded so see if a simpler operator
could bs used. Also check to see if each of the two computations could be
simplified if they were split into separate operators. Factor out the code
that calls visit() so that it can be used for this purpose.

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

17 years agoLLVM does not use the old style simple isel any more.
Evan Cheng [Mon, 8 Oct 2007 17:54:24 +0000 (17:54 +0000)]
LLVM does not use the old style simple isel any more.

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

17 years agoRemove debugging printf to get build going on x86-64.
Evan Cheng [Mon, 8 Oct 2007 17:49:43 +0000 (17:49 +0000)]
Remove debugging printf to get build going on x86-64.

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

17 years agoWhen we start enabling SMUL_LOHI/UMUL_LOHI or SDIVREM/UDIVREM in
Dan Gohman [Mon, 8 Oct 2007 17:28:24 +0000 (17:28 +0000)]
When we start enabling SMUL_LOHI/UMUL_LOHI or SDIVREM/UDIVREM in
target-indepenent lowering, don't use them on PowerPC.

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

17 years agoAdd convenience overloads of SelectionDAG::getNode that take a SDVTList
Dan Gohman [Mon, 8 Oct 2007 15:49:58 +0000 (15:49 +0000)]
Add convenience overloads of SelectionDAG::getNode that take a SDVTList
and individual SDOperand operands.

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

17 years agoMove the space in overview output for commands out of each of the
Dan Gohman [Mon, 8 Oct 2007 15:45:12 +0000 (15:45 +0000)]
Move the space in overview output for commands out of each of the
commands and into the common code.

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

17 years agoSimplify getIntPtrType, allowing it to work for arbitrary pointer sizes.
Dan Gohman [Mon, 8 Oct 2007 15:16:25 +0000 (15:16 +0000)]
Simplify getIntPtrType, allowing it to work for arbitrary pointer sizes.

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

17 years agoUse correct parentheses with the '&& "..."' idiom in an assert.
Dan Gohman [Mon, 8 Oct 2007 15:13:30 +0000 (15:13 +0000)]
Use correct parentheses with the '&& "..."' idiom in an assert.

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

17 years agoIn -debug mode, dump SelectionDAGs both before and after the
Dan Gohman [Mon, 8 Oct 2007 15:12:17 +0000 (15:12 +0000)]
In -debug mode, dump SelectionDAGs both before and after the
optimization passes.

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

17 years agoFix grammar in a comment.
Dan Gohman [Mon, 8 Oct 2007 15:10:04 +0000 (15:10 +0000)]
Fix grammar in a comment.

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

17 years agoAdd explicit keywords.
Dan Gohman [Mon, 8 Oct 2007 15:08:41 +0000 (15:08 +0000)]
Add explicit keywords.

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

17 years agoUse APInt::tcExtract. It's cleaner, and works :)
Neil Booth [Mon, 8 Oct 2007 14:39:42 +0000 (14:39 +0000)]
Use APInt::tcExtract.  It's cleaner, and works :)

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

17 years agoAdd a new function tcExtract for extracting a bignum from an
Neil Booth [Mon, 8 Oct 2007 13:47:12 +0000 (13:47 +0000)]
Add a new function tcExtract for extracting a bignum from an
arbitrary range of bits embedded in the middle of another bignum.
This kind of operation is desirable in many cases of software
floating point, e.g. converting bignum integers to floating point
numbers of fixed precision (you want to extract the precision most
significant bits).

Elsewhere, add an assertion, and exit the shift functions early if
the shift count is zero.

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

17 years agoFixed downrev Ocaml compatibility.
Gordon Henriksen [Mon, 8 Oct 2007 12:16:59 +0000 (12:16 +0000)]
Fixed downrev Ocaml compatibility.

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

17 years agoBegin the process of allowing DomTree on MBB's. Step One: template DomTreeNode by...
Owen Anderson [Mon, 8 Oct 2007 07:44:39 +0000 (07:44 +0000)]
Begin the process of allowing DomTree on MBB's.  Step One: template DomTreeNode by making it a typedef of a templated DomTreeNodeBase.

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

17 years agoKill cycle of an live range is always the last use index + 1.
Evan Cheng [Mon, 8 Oct 2007 06:59:30 +0000 (06:59 +0000)]
Kill cycle of an live range is always the last use index + 1.

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

17 years agoAllow passes to just pass up "FunctionPass(&ID)" instead of "FunctionPass((intptr_t...
Chris Lattner [Mon, 8 Oct 2007 03:45:44 +0000 (03:45 +0000)]
Allow passes to just pass up "FunctionPass(&ID)" instead of "FunctionPass((intptr_t)&ID)"

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

17 years agoC and Objective Caml bindings for getFunction and getNamedGlobal. Also enhanced
Gordon Henriksen [Mon, 8 Oct 2007 03:45:09 +0000 (03:45 +0000)]
C and Objective Caml bindings for getFunction and getNamedGlobal. Also enhanced
the Objective Caml 'declare_*' functions to behave more or less like
getOrInsertFunction.

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

17 years agodisable this entirely: it is causing use of invalidated iterators and infinite looping.
Chris Lattner [Sun, 7 Oct 2007 22:00:31 +0000 (22:00 +0000)]
disable this entirely: it is causing use of invalidated iterators and infinite looping.

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

17 years agoFix many regressions on x86 by avoiding dereferencing the end iterator.
Chris Lattner [Sun, 7 Oct 2007 21:53:12 +0000 (21:53 +0000)]
Fix many regressions on x86 by avoiding dereferencing the end iterator.

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

17 years agoFinish off PR1723, by working around some strange compiler bug.
Chris Lattner [Sun, 7 Oct 2007 17:57:10 +0000 (17:57 +0000)]
Finish off PR1723, by working around some strange compiler bug.

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

17 years agoC and Objective Caml bindings for GlobalVariable::isConstant.
Gordon Henriksen [Sun, 7 Oct 2007 17:31:42 +0000 (17:31 +0000)]
C and Objective Caml bindings for GlobalVariable::isConstant.

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

17 years agoAdd back convertFromSignExtendedInteger.
Neil Booth [Sun, 7 Oct 2007 12:15:41 +0000 (12:15 +0000)]
Add back convertFromSignExtendedInteger.

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

17 years agoNow that convertFromUnsignedParts has a sane, constant interface,
Neil Booth [Sun, 7 Oct 2007 12:10:57 +0000 (12:10 +0000)]
Now that convertFromUnsignedParts has a sane, constant interface,
convertFromZeroExtendedInteger can be simplified as it doesn't need
to make a copy of the source bignum.

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

17 years agoReimplement convertFromUnsignedInteger so it is passed a const bignum.
Neil Booth [Sun, 7 Oct 2007 12:07:53 +0000 (12:07 +0000)]
Reimplement convertFromUnsignedInteger so it is passed a const bignum.
It used to modify its argument in-place.

This interface is saner and the implementation more efficient.  It will
be needed for decimal->binary conversion.

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

17 years agoconvertFromInteger, as originally written, expected sign-extended
Neil Booth [Sun, 7 Oct 2007 11:45:55 +0000 (11:45 +0000)]
convertFromInteger, as originally written, expected sign-extended
input.  APInt unfortunately zero-extends signed integers, so Dale
modified the function to expect zero-extended input.  Make this
assumption explicit in the function name.

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

17 years agocombineLostFractions does not need to be a member function
Neil Booth [Sun, 7 Oct 2007 08:51:21 +0000 (08:51 +0000)]
combineLostFractions does not need to be a member function

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

17 years agoSome more problems noticed by Curtis
Daniel Berlin [Sun, 7 Oct 2007 04:47:57 +0000 (04:47 +0000)]
Some more problems noticed by Curtis

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

17 years agoC and Objective Caml bindings for PATypeHolder.
Gordon Henriksen [Sun, 7 Oct 2007 00:13:35 +0000 (00:13 +0000)]
C and Objective Caml bindings for PATypeHolder.

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

17 years agoBindings for the verifier.
Gordon Henriksen [Sat, 6 Oct 2007 21:00:36 +0000 (21:00 +0000)]
Bindings for the verifier.

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

17 years agoDeleting some unnecessary glue.
Gordon Henriksen [Sat, 6 Oct 2007 17:10:44 +0000 (17:10 +0000)]
Deleting some unnecessary glue.

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

17 years agoAdopting a uniform naming convention for type constructors in
Gordon Henriksen [Sat, 6 Oct 2007 16:56:09 +0000 (16:56 +0000)]
Adopting a uniform naming convention for type constructors in
bindings (part le deux).

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

17 years agoOops, I really wanted to commit this part also :)
Anton Korobeynikov [Sat, 6 Oct 2007 16:39:43 +0000 (16:39 +0000)]
Oops, I really wanted to commit this part also :)

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

17 years agoMove merge code into new helper function.
Anton Korobeynikov [Sat, 6 Oct 2007 16:17:49 +0000 (16:17 +0000)]
Move merge code into new helper function.

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

17 years agoAdopting a uniform naming convention for type constructors in bindings.
Gordon Henriksen [Sat, 6 Oct 2007 16:05:20 +0000 (16:05 +0000)]
Adopting a uniform naming convention for type constructors in bindings.

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

17 years agoAdopting a uniform naming convention for constant constructors in bindings.
Gordon Henriksen [Sat, 6 Oct 2007 15:11:06 +0000 (15:11 +0000)]
Adopting a uniform naming convention for constant constructors in bindings.

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

17 years agoAdding C and Ocaml bindings for ConstantExpr.
Gordon Henriksen [Sat, 6 Oct 2007 14:29:36 +0000 (14:29 +0000)]
Adding C and Ocaml bindings for ConstantExpr.

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

17 years agoInclude DataTypes.h to provide intptr_t type. This fixes OpenBSD compilation of this...
Anton Korobeynikov [Sat, 6 Oct 2007 13:07:11 +0000 (13:07 +0000)]
Include DataTypes.h to provide intptr_t type. This fixes OpenBSD compilation of this file.
Inspired by Laurence Tratt's patch

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

17 years agoReapply 42677.
Evan Cheng [Sat, 6 Oct 2007 08:19:55 +0000 (08:19 +0000)]
Reapply 42677.

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

17 years agoOops. Forgot this.
Evan Cheng [Sat, 6 Oct 2007 08:09:29 +0000 (08:09 +0000)]
Oops. Forgot this.

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

17 years agoCleaner, more general exponent output.
Neil Booth [Sat, 6 Oct 2007 07:29:25 +0000 (07:29 +0000)]
Cleaner, more general exponent output.

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

17 years agosilence warnings in no-assert build.
Chris Lattner [Sat, 6 Oct 2007 06:13:42 +0000 (06:13 +0000)]
silence warnings in no-assert build.

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

17 years agorevert evan's patch until the header is committed
Chris Lattner [Sat, 6 Oct 2007 06:08:17 +0000 (06:08 +0000)]
revert evan's patch until the header is committed

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

17 years agoAdded DAG xforms. e.g.
Evan Cheng [Sat, 6 Oct 2007 02:46:29 +0000 (02:46 +0000)]
Added DAG xforms. e.g.
(vextract (v4f32 s2v (f32 load $addr)), 0) -> (f32 load $addr)
(vextract (v4i32 bc (v4f32 s2v (f32 load $addr))), 0) -> (i32 load $addr)
Remove x86 specific patterns.

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

17 years agoNext powerpc long double bits. Comparisons work,
Dale Johannesen [Sat, 6 Oct 2007 01:24:11 +0000 (01:24 +0000)]
Next powerpc long double bits.  Comparisons work,
although not well, and shortening FP converts.

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

17 years agoMake test work on non-x86 hosts.
Dale Johannesen [Sat, 6 Oct 2007 01:22:39 +0000 (01:22 +0000)]
Make test work on non-x86 hosts.

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

17 years agoFix and clarify some comments.
Neil Booth [Sat, 6 Oct 2007 00:43:45 +0000 (00:43 +0000)]
Fix and clarify some comments.

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

17 years agoGeneralize tcFullMultiply so that the operands can be of differing
Neil Booth [Sat, 6 Oct 2007 00:24:48 +0000 (00:24 +0000)]
Generalize tcFullMultiply so that the operands can be of differing
part widths.  Also, return the number of parts actually required to
hold the result's value.
Remove an over-cautious condition from rounding of float->hex conversion.

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

17 years agoWrapping Value::dump.
Gordon Henriksen [Sat, 6 Oct 2007 00:08:49 +0000 (00:08 +0000)]
Wrapping Value::dump.

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

17 years agoRemoving the silly CHelpers header by rolling wrap and unwrap into the C
Gordon Henriksen [Fri, 5 Oct 2007 23:59:36 +0000 (23:59 +0000)]
Removing the silly CHelpers header by rolling wrap and unwrap into the C
bindings headers themselves, hidden behind #ifdef __cplusplus.

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

17 years agoTest case for 3-address conversion.
Evan Cheng [Fri, 5 Oct 2007 23:33:09 +0000 (23:33 +0000)]
Test case for 3-address conversion.

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

17 years agoCommute x86 cmove instructions by swapping the operands and change the condition
Evan Cheng [Fri, 5 Oct 2007 23:13:21 +0000 (23:13 +0000)]
Commute x86 cmove instructions by swapping the operands and change the condition
to its inverse.
Testing this as llcbeta

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

17 years agoThis is done.
Evan Cheng [Fri, 5 Oct 2007 22:34:59 +0000 (22:34 +0000)]
This is done.

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

17 years agoEnable convertToThreeAddress for X86 by default.
Evan Cheng [Fri, 5 Oct 2007 22:31:10 +0000 (22:31 +0000)]
Enable convertToThreeAddress for X86 by default.

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

17 years agoFix bug in updating dominance frontier after loop
Devang Patel [Fri, 5 Oct 2007 22:29:34 +0000 (22:29 +0000)]
Fix bug in updating dominance frontier after loop
unswitch when frontier includes basic blocks that
are not inside loop.

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

17 years agoINC64_32r -> LEA64_32r is better than INC64_32r -> LEA32r, but it still can
Evan Cheng [Fri, 5 Oct 2007 21:55:32 +0000 (21:55 +0000)]
INC64_32r -> LEA64_32r is better than INC64_32r -> LEA32r, but it still can
cause performance degradation.

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

17 years agoIn 64-bit mode, avoid using leal with 32-bit 32-bit address size, e.g.
Evan Cheng [Fri, 5 Oct 2007 20:34:26 +0000 (20:34 +0000)]
In 64-bit mode, avoid using leal with 32-bit 32-bit address size, e.g.
leal 1(%ecx), %edi, which requires 67H prefix.

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

17 years agoFirst round of ppc long double. call/return and
Dale Johannesen [Fri, 5 Oct 2007 20:04:43 +0000 (20:04 +0000)]
First round of ppc long double.  call/return and
basic arithmetic works.
Rename RTLIB long double functions to distinguish
different flavors of long double; the lib functions
have different names, alas.

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

17 years agoAdd support to convert more 64-bit instructions to 3-address instructions.
Evan Cheng [Fri, 5 Oct 2007 18:20:36 +0000 (18:20 +0000)]
Add support to convert more 64-bit instructions to 3-address instructions.

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

17 years agoADC and SBB uses EFLAGS.
Evan Cheng [Fri, 5 Oct 2007 17:59:57 +0000 (17:59 +0000)]
ADC and SBB uses EFLAGS.

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

17 years agoMark count method const.
Chris Lattner [Fri, 5 Oct 2007 17:40:38 +0000 (17:40 +0000)]
Mark count method const.

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

17 years agoChange a few more spaces to tabs in assembly output.
Dan Gohman [Fri, 5 Oct 2007 15:58:41 +0000 (15:58 +0000)]
Change a few more spaces to tabs in assembly output.

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

17 years agoChange a space to a tab in the assembly output of a .globl directive
Dan Gohman [Fri, 5 Oct 2007 15:54:58 +0000 (15:54 +0000)]
Change a space to a tab in the assembly output of a .globl directive
for consistency.

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

17 years agoLegalize support for MUL_LOHI and DIVREM.
Dan Gohman [Fri, 5 Oct 2007 14:17:22 +0000 (14:17 +0000)]
Legalize support for MUL_LOHI and DIVREM.

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

17 years agoFix a typo in a comment.
Dan Gohman [Fri, 5 Oct 2007 14:11:58 +0000 (14:11 +0000)]
Fix a typo in a comment.

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

17 years agoProvide names for MUL_LOHI and DIVREM operators.
Dan Gohman [Fri, 5 Oct 2007 14:11:04 +0000 (14:11 +0000)]
Provide names for MUL_LOHI and DIVREM operators.

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

17 years agoSMUL_LOHI and UMUL_LOHI are commutative.
Dan Gohman [Fri, 5 Oct 2007 14:09:33 +0000 (14:09 +0000)]
SMUL_LOHI and UMUL_LOHI are commutative.

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

17 years agoDefine target-indepenent SDNode types for multiply and divide that
Dan Gohman [Fri, 5 Oct 2007 14:07:56 +0000 (14:07 +0000)]
Define target-indepenent SDNode types for multiply and divide that
produce two results.

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

17 years agoFix typo in comment.
Duncan Sands [Fri, 5 Oct 2007 10:37:00 +0000 (10:37 +0000)]
Fix typo in comment.

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

17 years agoTesting convertToThreeeAddress as X86 llcbeta.
Evan Cheng [Fri, 5 Oct 2007 08:04:01 +0000 (08:04 +0000)]
Testing convertToThreeeAddress as X86 llcbeta.

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

17 years agoFix intersectWithComplement bug noticed by Curtis Dunham
Daniel Berlin [Fri, 5 Oct 2007 05:10:53 +0000 (05:10 +0000)]
Fix intersectWithComplement bug noticed by Curtis Dunham
Optimize |= case for empty RHS

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

17 years agoNew test case.
Evan Cheng [Fri, 5 Oct 2007 01:44:22 +0000 (01:44 +0000)]
New test case.

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

17 years agoChain producing nodes cannot be moved, not chain reading nodes.
Evan Cheng [Fri, 5 Oct 2007 01:42:35 +0000 (01:42 +0000)]
Chain producing nodes cannot be moved, not chain reading nodes.

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

17 years agoOops. Didn't mean to leave this in.
Evan Cheng [Fri, 5 Oct 2007 01:39:40 +0000 (01:39 +0000)]
Oops. Didn't mean to leave this in.

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

17 years agoIf a node that defines a physical register that is expensive to copy. The
Evan Cheng [Fri, 5 Oct 2007 01:39:18 +0000 (01:39 +0000)]
If a node that defines a physical register that is expensive to copy. The
scheduler will try a number of tricks in order to avoid generating the
copies. This may not be possible in case the node produces a chain value
that prevent movement. Try unfolding the load from the node before to allow
it to be moved / cloned.

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

17 years agoAdded storeRegToAddr, loadRegFromAddr, and unfoldMemoryOperand's.
Evan Cheng [Fri, 5 Oct 2007 01:34:55 +0000 (01:34 +0000)]
Added storeRegToAddr, loadRegFromAddr, and unfoldMemoryOperand's.

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

17 years agoNot needed any more.
Evan Cheng [Fri, 5 Oct 2007 01:34:14 +0000 (01:34 +0000)]
Not needed any more.

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

17 years agoForgot these.
Evan Cheng [Fri, 5 Oct 2007 01:33:45 +0000 (01:33 +0000)]
Forgot these.

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

17 years ago- Added a few target hooks to generate load / store instructions from / to any
Evan Cheng [Fri, 5 Oct 2007 01:32:41 +0000 (01:32 +0000)]
- Added a few target hooks to generate load / store instructions from / to any
address (not just from / to frameindexes).
- Added target hooks to unfold load / store instructions / SDNodes into separate
load, data processing, store instructions / SDNodes.

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

17 years agoAdd a variant of getTargetNode() that takes a vector of MVT::ValueType.
Evan Cheng [Fri, 5 Oct 2007 01:10:49 +0000 (01:10 +0000)]
Add a variant of getTargetNode() that takes a vector of MVT::ValueType.

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

17 years agoSilence a warning.
Evan Cheng [Fri, 5 Oct 2007 01:09:32 +0000 (01:09 +0000)]
Silence a warning.

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

17 years agoFix the previous bug a slightly different way (by modifying how find_next works)
Daniel Berlin [Thu, 4 Oct 2007 21:27:17 +0000 (21:27 +0000)]
Fix the previous bug a slightly different way (by modifying how find_next works)

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

17 years agoFix off by one error in iterator
Daniel Berlin [Thu, 4 Oct 2007 21:18:20 +0000 (21:18 +0000)]
Fix off by one error in iterator

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

17 years agoSupport Objective C++ too.
Bill Wendling [Thu, 4 Oct 2007 18:47:25 +0000 (18:47 +0000)]
Support Objective C++ too.

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

17 years agoAdded testcase for creation of metadata with null pointers.
Bill Wendling [Thu, 4 Oct 2007 18:46:06 +0000 (18:46 +0000)]
Added testcase for creation of metadata with null pointers.

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

17 years agoadd a note.
Chris Lattner [Thu, 4 Oct 2007 15:47:27 +0000 (15:47 +0000)]
add a note.

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

17 years agoun-XFAIL this test.
Bill Wendling [Thu, 4 Oct 2007 09:33:08 +0000 (09:33 +0000)]
un-XFAIL this test.

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

17 years agoIt helps a lot when you check for the end of your list before randomly
Daniel Berlin [Thu, 4 Oct 2007 05:29:36 +0000 (05:29 +0000)]
It helps a lot when you check for the end of your list before randomly
dereferencing things.

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

17 years agoMake SparseBitVector::set actually work properly when sets are not in ascending or...
Daniel Berlin [Thu, 4 Oct 2007 05:25:51 +0000 (05:25 +0000)]
Make SparseBitVector::set actually work properly when sets are not in ascending or descending order.

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

17 years agoDo use the actual ocaml stdlib (not the install dir) to find the
Gordon Henriksen [Thu, 4 Oct 2007 00:07:50 +0000 (00:07 +0000)]
Do use the actual ocaml stdlib (not the install dir) to find the
caml/*.h headers.

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

17 years agoAdd APFloat -> hexadecimal string conversion, as per %a and %A in C99.
Neil Booth [Wed, 3 Oct 2007 22:26:02 +0000 (22:26 +0000)]
Add APFloat -> hexadecimal string conversion, as per %a and %A in C99.
Useful for diagnostics and debugging.

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

17 years agoCompletely merge the implementation details of DomTree and PostDomTree.
Owen Anderson [Wed, 3 Oct 2007 21:25:45 +0000 (21:25 +0000)]
Completely merge the implementation details of DomTree and PostDomTree.

Also, add a FIXME for a bug in PostDomTree calculation I noticed while writing this,

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

17 years agoAdd a GraphTraits partial specialization to make the inverse of an inverse be the...
Owen Anderson [Wed, 3 Oct 2007 21:24:38 +0000 (21:24 +0000)]
Add a GraphTraits partial specialization to make the inverse of an inverse be the same as the underlying graph.

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

17 years agoFix 80 col violation.
Devang Patel [Wed, 3 Oct 2007 21:17:43 +0000 (21:17 +0000)]
Fix 80 col violation.

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

17 years agoRefactor code in a separate method.
Devang Patel [Wed, 3 Oct 2007 21:16:08 +0000 (21:16 +0000)]
Refactor code in a separate method.

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

17 years agoAdd initial iterator support for folding set.
Chris Lattner [Wed, 3 Oct 2007 21:12:09 +0000 (21:12 +0000)]
Add initial iterator support for folding set.

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

17 years agoClarify that shifts that are too large are undefined.
Chris Lattner [Wed, 3 Oct 2007 21:01:14 +0000 (21:01 +0000)]
Clarify that shifts that are too large are undefined.

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