Evan Cheng [Mon, 8 Oct 2007 22:16:29 +0000 (22:16 +0000)]
Bug fix. X86 was emitting redundant setcc and test instructions before a conditional move.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42774
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Oct 2007 21:27:12 +0000 (21:27 +0000)]
Call getFunctionNumber() instead of referencing FunctionNumber directly,
for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42769
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Oct 2007 21:15:07 +0000 (21:15 +0000)]
Mark the prefetch intrinsic as IntrWriteArgMem, instead of the
default of IntrWriteMem, to at least indicate that it doesn't
"capture" the argument pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42768
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Oct 2007 20:48:12 +0000 (20:48 +0000)]
These two tests now require only three multiply instructions,
instead of four.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42765
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Oct 2007 18:42:45 +0000 (18:42 +0000)]
Various improvements to the documentation, contributed by
Joshua Haberman!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42763
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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