oota-llvm.git
18 years agoConvert the remaining instructions over, branches and calls. Fix a couple
Chris Lattner [Sat, 17 Dec 2005 06:54:41 +0000 (06:54 +0000)]
Convert the remaining instructions over, branches and calls.  Fix a couple
minor bugs

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

18 years agoconvert FP instructions to use an asmstring and operand list, allowing FP
Chris Lattner [Sat, 17 Dec 2005 06:32:52 +0000 (06:32 +0000)]
convert FP instructions to use an asmstring and operand list, allowing FP
programs to work on V8 again

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

18 years agoAdded truncate.
Evan Cheng [Sat, 17 Dec 2005 02:02:50 +0000 (02:02 +0000)]
Added truncate.

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

18 years agoAdded anyext, modelled as zext on X86.
Evan Cheng [Sat, 17 Dec 2005 01:47:57 +0000 (01:47 +0000)]
Added anyext, modelled as zext on X86.

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

18 years agoYet another variant of getTargetNode().
Evan Cheng [Sat, 17 Dec 2005 01:44:51 +0000 (01:44 +0000)]
Yet another variant of getTargetNode().

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

18 years agoAdded some isel ideas.
Evan Cheng [Sat, 17 Dec 2005 01:25:19 +0000 (01:25 +0000)]
Added some isel ideas.

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

18 years agoAdded support for cmp, test, and conditional move instructions.
Evan Cheng [Sat, 17 Dec 2005 01:24:02 +0000 (01:24 +0000)]
Added support for cmp, test, and conditional move instructions.

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

18 years agoOnly lower SELECT when using DAG based isel.
Evan Cheng [Sat, 17 Dec 2005 01:22:13 +0000 (01:22 +0000)]
Only lower SELECT when using DAG based isel.

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

18 years agoX86 lowers SELECT to a cmp / test followed by a conditional move.
Evan Cheng [Sat, 17 Dec 2005 01:21:05 +0000 (01:21 +0000)]
X86 lowers SELECT to a cmp / test followed by a conditional move.

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

18 years agoSupport for read / write from explicit registers with FlagVT type.
Evan Cheng [Sat, 17 Dec 2005 01:19:28 +0000 (01:19 +0000)]
Support for read / write from explicit registers with FlagVT type.

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

18 years agoRemove hidden DOS characters.
Evan Cheng [Sat, 17 Dec 2005 01:03:57 +0000 (01:03 +0000)]
Remove hidden DOS characters.

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

18 years agoFix VC++ level 4 warnings. Because a base class has declared these private, VC+...
Jeff Cohen [Sat, 17 Dec 2005 00:19:22 +0000 (00:19 +0000)]
Fix VC++ level 4 warnings.  Because a base class has declared these private, VC++ complains it cannot automatically generate this methods.

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

18 years agoFix VC++ level 4 warnings.
Jeff Cohen [Sat, 17 Dec 2005 00:18:06 +0000 (00:18 +0000)]
Fix VC++ level 4 warnings.

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

18 years agoTurn on string pooling for smaller binaries.
Jeff Cohen [Sat, 17 Dec 2005 00:14:47 +0000 (00:14 +0000)]
Turn on string pooling for smaller binaries.

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

18 years agoAdded source file/line correspondence for dwarf (PowerPC only at this point.)
Jim Laskey [Fri, 16 Dec 2005 22:45:29 +0000 (22:45 +0000)]
Added source file/line correspondence for dwarf (PowerPC only at this point.)

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

18 years agoWeak and linkonce global vars should still have a .globl emitted for them
Chris Lattner [Fri, 16 Dec 2005 21:46:14 +0000 (21:46 +0000)]
Weak and linkonce global vars should still have a .globl emitted for them

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

18 years agoAdd a second vector type to the VRRC register class, and fix some patterns
Nate Begeman [Fri, 16 Dec 2005 09:19:13 +0000 (09:19 +0000)]
Add a second vector type to the VRRC register class, and fix some patterns
so that tablegen can infer all types.

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

18 years agoadd some notes
Chris Lattner [Fri, 16 Dec 2005 07:20:53 +0000 (07:20 +0000)]
add some notes

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

18 years agoAdd a couple more instrs
Chris Lattner [Fri, 16 Dec 2005 07:18:48 +0000 (07:18 +0000)]
Add a couple more instrs

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

18 years agoremove some dead code
Chris Lattner [Fri, 16 Dec 2005 07:16:02 +0000 (07:16 +0000)]
remove some dead code

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

18 years agoasmprint pseudo instrs
Chris Lattner [Fri, 16 Dec 2005 07:13:26 +0000 (07:13 +0000)]
asmprint pseudo instrs

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

18 years agoAutogenerate asmprinter for F3_2 instructions
Chris Lattner [Fri, 16 Dec 2005 07:10:02 +0000 (07:10 +0000)]
Autogenerate asmprinter for F3_2 instructions

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

18 years agoSwitch F3_1 instructions over to use AsmStrings
Chris Lattner [Fri, 16 Dec 2005 06:52:00 +0000 (06:52 +0000)]
Switch F3_1 instructions over to use AsmStrings

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

18 years agoPlug in basic hooks for an autogenerated asm printer to fill in.
Chris Lattner [Fri, 16 Dec 2005 06:34:17 +0000 (06:34 +0000)]
Plug in basic hooks for an autogenerated asm printer to fill in.

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

18 years agoAdd operand info for F3_[12] instructions, getting V8 back to basic functionality.
Chris Lattner [Fri, 16 Dec 2005 06:25:42 +0000 (06:25 +0000)]
Add operand info for F3_[12] instructions, getting V8 back to basic functionality.
With this, Regression/CodeGen/SparcV8/basictest.ll now passes.  Lets hear it
for regression tests :)

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

18 years agoA truly trivial testcase to ensure sparcv8 doesn't get completely broken
Chris Lattner [Fri, 16 Dec 2005 06:24:55 +0000 (06:24 +0000)]
A truly trivial testcase to ensure sparcv8 doesn't get completely broken
again.

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

18 years agoRemove JIT support, which doesn't work.
Chris Lattner [Fri, 16 Dec 2005 06:06:07 +0000 (06:06 +0000)]
Remove JIT support, which doesn't work.

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

18 years agoadd some simple operand info
Chris Lattner [Fri, 16 Dec 2005 06:02:58 +0000 (06:02 +0000)]
add some simple operand info

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

18 years agorename option for consistency with -mcpu -mattr etc
Chris Lattner [Fri, 16 Dec 2005 05:19:55 +0000 (05:19 +0000)]
rename option for consistency with -mcpu -mattr etc

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

18 years agorename options
Chris Lattner [Fri, 16 Dec 2005 05:19:35 +0000 (05:19 +0000)]
rename options

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

18 years agorename option
Chris Lattner [Fri, 16 Dec 2005 05:19:18 +0000 (05:19 +0000)]
rename option

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

18 years agoDocument -mcpu -mattr -triple
Chris Lattner [Fri, 16 Dec 2005 05:18:53 +0000 (05:18 +0000)]
Document -mcpu -mattr -triple

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

18 years agoprovide an option to override the target triple in a module from the commandline.
Chris Lattner [Fri, 16 Dec 2005 05:00:21 +0000 (05:00 +0000)]
provide an option to override the target triple in a module from the commandline.

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

18 years agoprovide an option to override the target triple in a module from the command
Chris Lattner [Fri, 16 Dec 2005 04:59:57 +0000 (04:59 +0000)]
provide an option to override the target triple in a module from the command
line.

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

18 years agoUpdate the darwin handling of linkonce & weak functions and GV stubs. This
Chris Lattner [Fri, 16 Dec 2005 00:22:14 +0000 (00:22 +0000)]
Update the darwin handling of linkonce & weak functions and GV stubs. This
should work in all permutations.

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

18 years agoDon't globalize internal functions
Chris Lattner [Fri, 16 Dec 2005 00:07:30 +0000 (00:07 +0000)]
Don't globalize internal functions

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

18 years ago* Promote all 1 bit entities to 8 bit.
Evan Cheng [Thu, 15 Dec 2005 19:49:23 +0000 (19:49 +0000)]
* Promote all 1 bit entities to 8 bit.
* Handling extload (1 bit -> 8 bit) and remove C++ code that handle 1 bit
zextload.

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

18 years agoDon't create SEXTLOAD/ZEXTLOAD instructions that the target doesn't support
Chris Lattner [Thu, 15 Dec 2005 19:02:38 +0000 (19:02 +0000)]
Don't create SEXTLOAD/ZEXTLOAD instructions that the target doesn't support
if after legalize.  This fixes IA64 failures.

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

18 years agoAdded frameindex, constpool, globaladdr, and externalsym as root nodes of
Evan Cheng [Thu, 15 Dec 2005 08:31:04 +0000 (08:31 +0000)]
Added frameindex, constpool, globaladdr, and externalsym as root nodes of
leaaddr.

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

18 years agoAdded constpool, frameindex, and externalsym nodes.
Evan Cheng [Thu, 15 Dec 2005 08:29:48 +0000 (08:29 +0000)]
Added constpool, frameindex, and externalsym nodes.

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

18 years agoHandling zero extension of 1 bit value.
Evan Cheng [Thu, 15 Dec 2005 01:02:48 +0000 (01:02 +0000)]
Handling zero extension of 1 bit value.

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

18 years agoUse MOV8rm to load 1 bit value.
Evan Cheng [Thu, 15 Dec 2005 00:59:17 +0000 (00:59 +0000)]
Use MOV8rm to load 1 bit value.

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

18 years agoRemove a now unused statistic.
Nate Begeman [Wed, 14 Dec 2005 22:56:16 +0000 (22:56 +0000)]
Remove a now unused statistic.

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

18 years agoUse the new predicate support that Evan Cheng added to remove some code
Nate Begeman [Wed, 14 Dec 2005 22:54:33 +0000 (22:54 +0000)]
Use the new predicate support that Evan Cheng added to remove some code
from the DAGToDAG cpp file.  This adds pattern support for vector and
scalar fma, which passes test/Regression/CodeGen/PowerPC/fma.ll, and
does the right thing in the presence of -disable-excess-fp-precision.

Allows us to match:
void %foo(<4 x float> * %a) {
entry:
  %tmp1 = load <4 x float> * %a;
  %tmp2 = mul <4 x float> %tmp1, %tmp1
  %tmp3 = add <4 x float> %tmp2, %tmp1
  store <4 x float> %tmp3, <4 x float> *%a
  ret void
}

As:

_foo:
        li r2, 0
        lvx v0, r2, r3
        vmaddfp v0, v0, v0, v0
        stvx v0, r2, r3
        blr

Or, with llc -disable-excess-fp-precision,

_foo:
        li r2, 0
        lvx v0, r2, r3
        vxor v1, v1, v1
        vmaddfp v1, v0, v0, v1
        vaddfp v0, v1, v0
        stvx v0, r2, r3
        blr

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

18 years agoAdd a case for float just to make sure the patterns for both precisions
Nate Begeman [Wed, 14 Dec 2005 22:51:13 +0000 (22:51 +0000)]
Add a case for float just to make sure the patterns for both precisions
are matching

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

18 years agoFixed a typo: line 2323: MOVSX16rm8 -> MOVZX16rm8. This was the cause fo 12/14/2005...
Evan Cheng [Wed, 14 Dec 2005 22:28:18 +0000 (22:28 +0000)]
Fixed a typo: line 2323: MOVSX16rm8 -> MOVZX16rm8. This was the cause fo 12/14/2005 hbd failure.

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

18 years agoAdded predicate !NoExcessFPPrecision to FMADD, FMADDS, FMSUB, and FMSUBS.
Evan Cheng [Wed, 14 Dec 2005 22:07:12 +0000 (22:07 +0000)]
Added predicate !NoExcessFPPrecision to FMADD, FMADDS, FMSUB, and FMSUBS.

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

18 years agoAdded support to specify predicates.
Evan Cheng [Wed, 14 Dec 2005 22:02:59 +0000 (22:02 +0000)]
Added support to specify predicates.

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

18 years agoFix printing of the instructions.
Chris Lattner [Wed, 14 Dec 2005 22:01:07 +0000 (22:01 +0000)]
Fix printing of the instructions.

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

18 years agoFixed extload type profile. The 4th operand is a ValueType node with type
Evan Cheng [Wed, 14 Dec 2005 19:40:54 +0000 (19:40 +0000)]
Fixed extload type profile. The 4th operand is a ValueType node with type
OtherVT, it cannot be compare to type of 1st operand which is an integer type.

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

18 years agoWhen folding loads into ops, immediately replace uses of the op with the
Chris Lattner [Wed, 14 Dec 2005 19:25:30 +0000 (19:25 +0000)]
When folding loads into ops, immediately replace uses of the op with the
load.  This reduces number of worklist iterations and avoid missing optimizations
depending on folding of things into sext_inreg nodes (which aren't supported by
all targets).
Tested by Regression/CodeGen/X86/extend.ll:test2

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

18 years agonew testcase, each function should have one extension instr in it
Chris Lattner [Wed, 14 Dec 2005 19:24:08 +0000 (19:24 +0000)]
new testcase, each function should have one extension instr in it

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

18 years agoRemove -start-group and -end-group no-op options, accidentally committed
Reid Spencer [Wed, 14 Dec 2005 19:08:51 +0000 (19:08 +0000)]
Remove -start-group and -end-group no-op options, accidentally committed
in last patch.

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

18 years agoFix the (zext (zextload)) case to trigger, similarly for sign extends.
Chris Lattner [Wed, 14 Dec 2005 19:05:06 +0000 (19:05 +0000)]
Fix the (zext (zextload)) case to trigger, similarly for sign extends.
Allow (zext (truncate)) to apply after legalize if the target supports
AND (which all do).

This compiles
short %foo() {
        %tmp.0 = load ubyte* %X         ; <ubyte> [#uses=1]
        %tmp.3 = cast ubyte %tmp.0 to short             ; <short> [#uses=1]
        ret short %tmp.3
}

to:
_foo:
        movzbl _X, %eax
        ret

instead of:

_foo:
        movzbl _X, %eax
        movzbl %al, %eax
        ret

thanks to Evan for pointing this out.

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

18 years agoFix Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll, a crash on undefined
Chris Lattner [Wed, 14 Dec 2005 17:23:59 +0000 (17:23 +0000)]
Fix Transforms/ScalarRepl/2005-12-14-UnionPromoteCrash.ll, a crash on undefined
behavior in 126.gcc on big-endian systems.

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

18 years agonew (undefined) testcase, distilled from 126.gcc that scalarrepl crashes on
Chris Lattner [Wed, 14 Dec 2005 17:23:20 +0000 (17:23 +0000)]
new (undefined) testcase, distilled from 126.gcc that scalarrepl crashes on

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

18 years agoFix a miscompilation in crafty due to a recent patch
Chris Lattner [Wed, 14 Dec 2005 07:58:38 +0000 (07:58 +0000)]
Fix a miscompilation in crafty due to a recent patch

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

18 years agoAdded sext and zext patterns.
Evan Cheng [Wed, 14 Dec 2005 02:22:27 +0000 (02:22 +0000)]
Added sext and zext patterns.

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

18 years agoSkip over srcvalue nodes when generating ISEL code.
Evan Cheng [Wed, 14 Dec 2005 02:21:57 +0000 (02:21 +0000)]
Skip over srcvalue nodes when generating ISEL code.

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

18 years agoAdded sextld + zextld DAG nodes.
Evan Cheng [Wed, 14 Dec 2005 02:21:01 +0000 (02:21 +0000)]
Added sextld + zextld DAG nodes.

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

18 years agoFold (zext (load x) to (zextload x).
Evan Cheng [Wed, 14 Dec 2005 02:19:23 +0000 (02:19 +0000)]
Fold (zext (load x) to (zextload x).

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

18 years agoAdd support for fmul node of type v4f32.
Nate Begeman [Wed, 14 Dec 2005 00:34:09 +0000 (00:34 +0000)]
Add support for fmul node of type v4f32.

void %foo(<4 x float> * %a) {
entry:
  %tmp1 = load <4 x float> * %a;
  %tmp2 = mul <4 x float> %tmp1, %tmp1
  store <4 x float> %tmp2, <4 x float> *%a
  ret void
}

Is selected to:

_foo:
        li r2, 0
        lvx v0, r2, r3
        vxor v1, v1, v1
        vmaddfp v0, v0, v0, v1
        stvx v0, r2, r3
        blr

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

18 years agoPrepare support for AltiVec multiply, divide, and sqrt.
Nate Begeman [Tue, 13 Dec 2005 22:55:22 +0000 (22:55 +0000)]
Prepare support for AltiVec multiply, divide, and sqrt.

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

18 years agoAdjust the constructor to the Linker class to take an argument that names
Reid Spencer [Tue, 13 Dec 2005 20:00:37 +0000 (20:00 +0000)]
Adjust the constructor to the Linker class to take an argument that names
the module being constructed. This is used to correctly name the module.
Previously the name of the linker tool was used which produces confusing
output when the module identifier is used in an error message.

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

18 years agoImprove ResolveFunctions to:
Reid Spencer [Tue, 13 Dec 2005 19:56:51 +0000 (19:56 +0000)]
Improve ResolveFunctions to:
a) use better local variable names (OldMT -> OldFT) where "M" is used to
   mean "Function" (perhaps it was previously "Method"?)
b) print out the module identifier in a warning message so that it is
   possible to track down in which module the error occurred.

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

18 years agoDon't lump the filename and working dir together
Chris Lattner [Tue, 13 Dec 2005 17:40:33 +0000 (17:40 +0000)]
Don't lump the filename and working dir together

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

18 years agoAdd load + store folding srl and sra patterns.
Evan Cheng [Tue, 13 Dec 2005 07:24:22 +0000 (07:24 +0000)]
Add load + store folding srl and sra patterns.

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

18 years agoUse the shared asmprinter code for printing special llvm globals
Chris Lattner [Tue, 13 Dec 2005 06:32:50 +0000 (06:32 +0000)]
Use the shared asmprinter code for printing special llvm globals

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

18 years agoAdd a couple more fields, move ctor init list to .cpp file, add support
Chris Lattner [Tue, 13 Dec 2005 06:32:10 +0000 (06:32 +0000)]
Add a couple more fields, move ctor init list to .cpp file, add support
for emitting the ctor/dtor list for common targets.

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

18 years agoAdd ELF and darwin support for static ctors and dtors
Chris Lattner [Tue, 13 Dec 2005 04:53:51 +0000 (04:53 +0000)]
Add ELF and darwin support for static ctors and dtors

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

18 years agoreindent a loop, unswitch a loop. No functionality changes
Chris Lattner [Tue, 13 Dec 2005 04:33:58 +0000 (04:33 +0000)]
reindent a loop, unswitch a loop.  No functionality changes

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

18 years agoLowering constant pool entries on ppc exposed a bug in the recently added
Nate Begeman [Tue, 13 Dec 2005 03:03:23 +0000 (03:03 +0000)]
Lowering constant pool entries on ppc exposed a bug in the recently added
ConstantVec legalizing code, which would return constantpool nodes that
were not of the target's pointer type.

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

18 years agoBeautify a few patterns.
Evan Cheng [Tue, 13 Dec 2005 02:40:18 +0000 (02:40 +0000)]
Beautify a few patterns.

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

18 years agoSome shl patterns which do load + store folding.
Evan Cheng [Tue, 13 Dec 2005 02:34:51 +0000 (02:34 +0000)]
Some shl patterns which do load + store folding.

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

18 years agoA few helper fragments for loads. e.g. (i8 (load addr:$src)) -> (loadi8 addr:$src...
Evan Cheng [Tue, 13 Dec 2005 01:57:51 +0000 (01:57 +0000)]
A few helper fragments for loads. e.g. (i8 (load addr:$src)) -> (loadi8 addr:$src). Only to improve readibility.

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

18 years agoAdd and, or, and xor patterns which fold load + stores.
Evan Cheng [Tue, 13 Dec 2005 01:41:36 +0000 (01:41 +0000)]
Add and, or, and xor patterns which fold load + stores.

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

18 years agoAdd inc + dec patterns which fold load + stores.
Evan Cheng [Tue, 13 Dec 2005 01:02:47 +0000 (01:02 +0000)]
Add inc + dec patterns which fold load + stores.

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

18 years agoAdd neg and not patterns which fold load + stores.
Evan Cheng [Tue, 13 Dec 2005 00:54:44 +0000 (00:54 +0000)]
Add neg and not patterns which fold load + stores.

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

18 years agoMissed a couple redundant explicit type casts.
Evan Cheng [Tue, 13 Dec 2005 00:25:07 +0000 (00:25 +0000)]
Missed a couple redundant explicit type casts.

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

18 years agoFix some bad choice of names: i16SExt8 ->i16immSExt8, etc.
Evan Cheng [Tue, 13 Dec 2005 00:14:11 +0000 (00:14 +0000)]
Fix some bad choice of names: i16SExt8 ->i16immSExt8, etc.

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

18 years ago* Split immSExt8 to i16SExt8 and i32SExt8 for i16 and i32 immediate operands.
Evan Cheng [Tue, 13 Dec 2005 00:01:09 +0000 (00:01 +0000)]
* Split immSExt8 to i16SExt8 and i32SExt8 for i16 and i32 immediate operands.
  This enables the removal of some explicit type casts.
* Rename immZExt8 to i16ZExt8 as well.

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

18 years agoAdd some integer mul patterns.
Evan Cheng [Mon, 12 Dec 2005 23:47:46 +0000 (23:47 +0000)]
Add some integer mul patterns.

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

18 years agoBug fix: CodeGenMap[N] = ... -> CodeGenMap[N.getValue(0)] = ...
Evan Cheng [Mon, 12 Dec 2005 23:45:21 +0000 (23:45 +0000)]
Bug fix: CodeGenMap[N] = ... -> CodeGenMap[N.getValue(0)] = ...

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

18 years agoAt top of generated isel SelectCode() is this:
Evan Cheng [Mon, 12 Dec 2005 23:22:48 +0000 (23:22 +0000)]
At top of generated isel SelectCode() is this:

  if (!N.Val->hasOneUse()) {
    std::map<SDOperand, SDOperand>::iterator CGMI = CodeGenMap.find(N);
    if (CGMI != CodeGenMap.end()) return CGMI->second;
  }

Suppose a DAG like this:

           X
         ^   ^
        /     \
      USE1    USE2

Suppose USE1 is being selected first and during which X is selected and
returned a new node. After this, USE1 is no longer an use of X. During USE2
selection, X will be selected again since it has only one use!

The fix is to always query CodeGenMap.

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

18 years agoAccept and ignore prefetches for now
Chris Lattner [Mon, 12 Dec 2005 22:51:16 +0000 (22:51 +0000)]
Accept and ignore prefetches for now

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

18 years agoFix CodeGen/Generic/2005-12-12-ExpandSextInreg.ll
Chris Lattner [Mon, 12 Dec 2005 22:27:43 +0000 (22:27 +0000)]
Fix CodeGen/Generic/2005-12-12-ExpandSextInreg.ll

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

18 years agoTestcase for a problem that reid ran into
Chris Lattner [Mon, 12 Dec 2005 22:27:22 +0000 (22:27 +0000)]
Testcase for a problem that reid ran into

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

18 years agoAdd some sub patterns.
Evan Cheng [Mon, 12 Dec 2005 21:54:05 +0000 (21:54 +0000)]
Add some sub patterns.

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

18 years agoWhen SelectLEAAddr() fails, it shouldn't cause the side effect of having the
Evan Cheng [Mon, 12 Dec 2005 21:49:40 +0000 (21:49 +0000)]
When SelectLEAAddr() fails, it shouldn't cause the side effect of having the
base or index operands being selected.

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

18 years agoFor ISD::RET, if # of operands >= 2, try selection the real data dep. operand
Evan Cheng [Mon, 12 Dec 2005 20:32:18 +0000 (20:32 +0000)]
For ISD::RET, if # of operands >= 2, try selection the real data dep. operand
first before the chain.
e.g.
int X;

int foo(int x)
{
  x += X + 37;
  return x;
}

If chain operand is selected first, we would generate:
movl X, %eax
movl 4(%esp), %ecx
leal 37(%ecx,%eax), %eax

rather than
movl $37, %eax
addl 4(%esp), %eax
addl X, %eax

which does not require %ecx. (Due to ADD32rm not matching.)

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

18 years agofix FP selects
Andrew Lenharth [Mon, 12 Dec 2005 20:30:09 +0000 (20:30 +0000)]
fix FP selects

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

18 years agoremove some never-completed and now-obsolete code.
Chris Lattner [Mon, 12 Dec 2005 20:12:20 +0000 (20:12 +0000)]
remove some never-completed and now-obsolete code.

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

18 years agoAdd a few more add / store patterns. e.g. ADD32mi8.
Evan Cheng [Mon, 12 Dec 2005 19:45:23 +0000 (19:45 +0000)]
Add a few more add / store patterns. e.g. ADD32mi8.

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

18 years agoBug fix: finding the correct incoming chain for pattern with nested src operand....
Evan Cheng [Mon, 12 Dec 2005 19:37:43 +0000 (19:37 +0000)]
Bug fix: finding the correct incoming chain for pattern with nested src operand. And a minor change to make output code slightly more readible.

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

18 years agorestore a more restricted select
Andrew Lenharth [Mon, 12 Dec 2005 17:43:52 +0000 (17:43 +0000)]
restore a more restricted select

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

18 years agoImplement a little hack for parity with GCC on crafty. This speeds up
Chris Lattner [Mon, 12 Dec 2005 07:19:13 +0000 (07:19 +0000)]
Implement a little hack for parity with GCC on crafty.  This speeds up
186.crafty by about 16% (from 15.109s to 13.045s) on my system.

This turns allocas with unions/casts into scalars.  For example crafty has
something like this:

    union doub {
      unsigned short i[4];
      long long d;
    };
int f(long long a) {
  return ((union doub){.d=a}).i[1];
}

Instead of generating loads and stores to an alloca, we now promote the
whole thing to a scalar long value.

This implements: Transforms/ScalarRepl/AggregatePromote.ll

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

18 years agonew testcase: sra should be able to eliminate all of these alloca's, despite
Chris Lattner [Mon, 12 Dec 2005 07:18:59 +0000 (07:18 +0000)]
new testcase: sra should be able to eliminate all of these alloca's, despite
the presense of pointer casts

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

18 years agoSend an indicator to llvm-testresults if the build failed
Chris Lattner [Sun, 11 Dec 2005 19:55:39 +0000 (19:55 +0000)]
Send an indicator to llvm-testresults if the build failed

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

18 years agoFix typo :(
Chris Lattner [Sun, 11 Dec 2005 18:43:13 +0000 (18:43 +0000)]
Fix typo :(

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

18 years agoMinor tweak to get isel opt
Chris Lattner [Sun, 11 Dec 2005 09:05:13 +0000 (09:05 +0000)]
Minor tweak to get isel opt

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