oota-llvm.git
18 years agoDocument the new -post-link-opts option.
Reid Spencer [Wed, 21 Dec 2005 05:13:06 +0000 (05:13 +0000)]
Document the new -post-link-opts option.

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

18 years agonew testcase, fails on X86 and probably others
Chris Lattner [Wed, 21 Dec 2005 05:09:57 +0000 (05:09 +0000)]
new testcase, fails on X86 and probably others

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

18 years agoImplement PR512:
Reid Spencer [Wed, 21 Dec 2005 05:03:23 +0000 (05:03 +0000)]
Implement PR512:
This patch adds a -post-link-opts option to llvm-ld which allows an arbitrary
program to optimize bytecode after linking. The program is passed two file
names. The first is the input (linked bytecode) the second is where it must
place its output (presumably after optimizing). If the output file is bytecode,
it is used as a substitute for the input. This will allow things like poolalloc
to be written as a separate program instead of a loadable module or built into
LLVM.

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

18 years agoDocument the new --enable-debug-runtime configure option.
Reid Spencer [Wed, 21 Dec 2005 03:46:45 +0000 (03:46 +0000)]
Document the new --enable-debug-runtime configure option.

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

18 years agoImplement fix for PR471:
Reid Spencer [Wed, 21 Dec 2005 03:31:53 +0000 (03:31 +0000)]
Implement fix for PR471:
* Add --enable-debug-runtime option, defaults to disabled
* Pass the new config var, DEBUG_RUNTIME, to Makefiles
* Don't use -Wa,-strip-debug if debug-runtime is enabled

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

18 years agoLower ConstantAggregateZero into zeros
Chris Lattner [Wed, 21 Dec 2005 02:43:26 +0000 (02:43 +0000)]
Lower ConstantAggregateZero into zeros

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

18 years agoRemove ISD::RET select code. Now tblgen'd.
Evan Cheng [Wed, 21 Dec 2005 02:41:57 +0000 (02:41 +0000)]
Remove ISD::RET select code. Now tblgen'd.

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

18 years ago* Added lowering hook for external weak global address. It inserts a load
Evan Cheng [Wed, 21 Dec 2005 02:39:21 +0000 (02:39 +0000)]
* Added lowering hook for external weak global address. It inserts a load
  for Darwin.
* Added lowering hook for ISD::RET. It inserts CopyToRegs for the return
  value (or store / fld / copy to ST(0) for floating point value). This
  eliminate the need to write C++ code to handle RET with variable number
  of operands.

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

18 years agoDon't emit a null terminator, nor anything after it, to the ctor/dtor list
Chris Lattner [Wed, 21 Dec 2005 01:17:37 +0000 (01:17 +0000)]
Don't emit a null terminator, nor anything after it, to the ctor/dtor list

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

18 years agoSSE2 floating point load / store patterns. SSE2 fp to int conversion patterns.
Evan Cheng [Tue, 20 Dec 2005 22:59:51 +0000 (22:59 +0000)]
SSE2 floating point load / store patterns. SSE2 fp to int conversion patterns.

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

18 years agoFlip the meaning of FPContractions to reflect Requires<[]> change.
Evan Cheng [Tue, 20 Dec 2005 20:08:53 +0000 (20:08 +0000)]
Flip the meaning of FPContractions to reflect Requires<[]> change.

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

18 years agoFix the semantic of Requires<[cond]> to mean if (!cond) goto PXXFail;
Evan Cheng [Tue, 20 Dec 2005 20:08:01 +0000 (20:08 +0000)]
Fix the semantic of Requires<[cond]> to mean if (!cond) goto PXXFail;

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

18 years agoThis ugly patch works around a GCC bug where it is compiling SelectCode to
Chris Lattner [Tue, 20 Dec 2005 19:41:03 +0000 (19:41 +0000)]
This ugly patch works around a GCC bug where it is compiling SelectCode to
use too much stack space, overflowing the stack for large functions.  Instead
of emitting new SDOperands in each match block, we emit some common ones at
the top of SelectCode then reuse them when possible.

This reduces the stack size of SelectCode from 28K to 21K.  Note that GCC
compiles it to 512 bytes :-/

I've filed GCC PR 25505 to track this.

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

18 years agoRun lower-switch after lower-invoke.
Chris Lattner [Tue, 20 Dec 2005 08:00:11 +0000 (08:00 +0000)]
Run lower-switch after lower-invoke.

Only run lower-allocations and lower-select for the simple isel

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

18 years agoReserve G1 for frame offset stuff and use it to handle large stack frames.
Chris Lattner [Tue, 20 Dec 2005 07:56:31 +0000 (07:56 +0000)]
Reserve G1 for frame offset stuff and use it to handle large stack frames.
For example, instead of emitting this:

test:
        save -40112, %o6, %o6   ;; imm too large
        add %i6, -40016, %o0    ;; imm too large
        call caller
        nop
        restore %g0, %g0, %g0
        retl
        nop

emit this:

test:
        sethi 4194264, %g1
        or %g1, 848, %g1
        save %o6, %g1, %o6
        sethi 4194264, %g1
        add %g1, %i6, %g1
        add %i1, 944, %o0
        call caller
        nop
        restore %g0, %g0, %g0
        retl
        nop

which doesn't cause the assembler to barf.

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

18 years agoAdded X86 readport patterns.
Evan Cheng [Tue, 20 Dec 2005 07:38:38 +0000 (07:38 +0000)]
Added X86 readport patterns.

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

18 years agoNow support instructions with implicit write to non-flag registers.
Evan Cheng [Tue, 20 Dec 2005 07:37:41 +0000 (07:37 +0000)]
Now support instructions with implicit write to non-flag registers.

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

18 years agoAdded a hook to print out names of target specific DAG nodes.
Evan Cheng [Tue, 20 Dec 2005 06:22:03 +0000 (06:22 +0000)]
Added a hook to print out names of target specific DAG nodes.

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

18 years agoAdded a break that I meant to include originally, for efficiency. Basically
Patrick Meredith [Tue, 20 Dec 2005 02:03:23 +0000 (02:03 +0000)]
Added a break that I meant to include originally, for efficiency.  Basically
it keeps it from trying to add the same node to the node set
over and over if it matches multiple given patterns.  Also in cases where there
are a lot of patterns to be matched, and it matches an early one, this
will make the script run slightly faster.  It's more there because it logically
should be, than anything else, I mean, Python is never going to be fast ;-)

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

18 years agoFix a nasty latent bug in the legalizer that was triggered by my patch
Chris Lattner [Tue, 20 Dec 2005 00:53:54 +0000 (00:53 +0000)]
Fix a nasty latent bug in the legalizer that was triggered by my patch
last night, breaking crafty and twolf.  Make sure that the newly found
legal nodes are themselves not re-legalized until the next iteration.

Also, since this functionality exists now, we can reduce number of legalizer
iterations by depending on this behavior instead of having to misuse 'do
another iteration' to get the same effect.

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

18 years agoPattern-match return. Includes gross hack!
Nate Begeman [Tue, 20 Dec 2005 00:26:01 +0000 (00:26 +0000)]
Pattern-match return.  Includes gross hack!

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

18 years agoLefted out a fix in the previous check in.
Evan Cheng [Tue, 20 Dec 2005 00:06:17 +0000 (00:06 +0000)]
Lefted out a fix in the previous check in.

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

18 years agoFix a couple of the FIXMEs, thanks to suggestion from Chris. This allows
Nate Begeman [Mon, 19 Dec 2005 23:40:42 +0000 (23:40 +0000)]
Fix a couple of the FIXMEs, thanks to suggestion from Chris.  This allows
us to load and store vectors directly at a pointer (offset of zero) by
using r0 as the base register.  This also requires some asm printer work
to satisfy the darwin assembler.

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

We now produce:
_foo:
        lvx v0, 0, r3
        vaddfp v0, v0, v0
        stvx v0, 0, r3
        blr

Instead of:
_foo:
        li r2, 0
        lvx v0, r2, r3
        vaddfp v0, v0, v0
        stvx v0, r2, r3
        blr

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

18 years agoConvert load/store over to being pattern matched
Nate Begeman [Mon, 19 Dec 2005 23:25:09 +0000 (23:25 +0000)]
Convert load/store over to being pattern matched

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

18 years agoX86 conditional branch support.
Evan Cheng [Mon, 19 Dec 2005 23:12:38 +0000 (23:12 +0000)]
X86 conditional branch support.

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

18 years agoPrint out opcode number if it's an unknown target node.
Evan Cheng [Mon, 19 Dec 2005 23:11:49 +0000 (23:11 +0000)]
Print out opcode number if it's an unknown target node.

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

18 years agoFix another bug related to chain / flag.
Evan Cheng [Mon, 19 Dec 2005 22:40:04 +0000 (22:40 +0000)]
Fix another bug related to chain / flag.

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

18 years agoIt's essential we clear CodeGenMap after isel every basic block!
Evan Cheng [Mon, 19 Dec 2005 22:36:02 +0000 (22:36 +0000)]
It's essential we clear CodeGenMap after isel every basic block!

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

18 years agoFix a case where the DAG Combiner would accidentally CSE flag-producing nodes,
Chris Lattner [Mon, 19 Dec 2005 22:21:21 +0000 (22:21 +0000)]
Fix a case where the DAG Combiner would accidentally CSE flag-producing nodes,
creating graphs that cannot be scheduled.

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

18 years agoAdded the llvm-kernel project to the list of automatically configured
John Criswell [Mon, 19 Dec 2005 20:27:24 +0000 (20:27 +0000)]
Added the llvm-kernel project to the list of automatically configured
projects.

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

18 years agoPrefix DSA specific options with dsa.
John Criswell [Mon, 19 Dec 2005 20:14:38 +0000 (20:14 +0000)]
Prefix DSA specific options with dsa.
Make the dsa-alloc-list and dsa-free-list options hidden.

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

18 years agoAdded an option to specify the names of heap freeing functions.
John Criswell [Mon, 19 Dec 2005 19:54:23 +0000 (19:54 +0000)]
Added an option to specify the names of heap freeing functions.

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

18 years agoAdded a command line option that allows the user to specify a list of
John Criswell [Mon, 19 Dec 2005 17:38:39 +0000 (17:38 +0000)]
Added a command line option that allows the user to specify a list of
functions that allocate memory.

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

18 years agoAmend comment.
Jim Laskey [Mon, 19 Dec 2005 16:32:26 +0000 (16:32 +0000)]
Amend comment.

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

18 years agoCreate a strong dependency for loads following stores. This will leave a
Jim Laskey [Mon, 19 Dec 2005 16:30:13 +0000 (16:30 +0000)]
Create a strong dependency for loads following stores.  This will leave a
latency period between the two.

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

18 years agoFix pifft by correcting the case when a i64/f64 straddles O5 and memory:
Chris Lattner [Mon, 19 Dec 2005 07:57:53 +0000 (07:57 +0000)]
Fix pifft by correcting the case when a i64/f64 straddles O5 and memory:
we were storing into [FP+88] instead of [FP+92].
Improve codegen by emitting [FP+92], instead of emitting a copy of FP into
another GPR which wouldn't be coallesced because FP isn't register allocated.

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

18 years agoFixes for a number of bugs: save flag results in CodeGenMap, folded chains
Evan Cheng [Mon, 19 Dec 2005 07:18:51 +0000 (07:18 +0000)]
Fixes for a number of bugs: save flag results in CodeGenMap, folded chains
may not all have ResNo == 0.

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

18 years agodon't emit 'add %o6, 0, %o6' instructions
Chris Lattner [Mon, 19 Dec 2005 02:51:12 +0000 (02:51 +0000)]
don't emit 'add %o6, 0, %o6' instructions

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

18 years agoFix calls to functions returning i64
Chris Lattner [Mon, 19 Dec 2005 02:15:51 +0000 (02:15 +0000)]
Fix calls to functions returning i64

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

18 years agoCorrect bool truncstore operand order
Chris Lattner [Mon, 19 Dec 2005 02:06:50 +0000 (02:06 +0000)]
Correct bool truncstore operand order

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

18 years agoadd the other bool zextload as well
Chris Lattner [Mon, 19 Dec 2005 01:44:58 +0000 (01:44 +0000)]
add the other bool zextload as well

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

18 years agoimplement zextload bool
Chris Lattner [Mon, 19 Dec 2005 01:43:04 +0000 (01:43 +0000)]
implement zextload bool

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

18 years agomark some unsupported ops as unsupported
Chris Lattner [Mon, 19 Dec 2005 01:39:40 +0000 (01:39 +0000)]
mark some unsupported ops as unsupported

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

18 years agoThis is a script to extract nodes and edges associated with those nodes
Patrick Meredith [Mon, 19 Dec 2005 01:23:31 +0000 (01:23 +0000)]
This is a script to extract nodes and edges associated with those nodes
from a dot file that is the output of DSA.  Nodes to extract
are specified by giving the name of the node seen in the graphical
representation, i.e. in the .ps if the node is specified %xyz
asking for just x, xy, or xyz will retain it in the output file.
Because it operates on substrings underspecifying may result
in additional unexpected nodes.  Be as specific as possible.
Obviously, however, if you ask for %xyz and there is a
getelementptr of %xyz you will get both nodes.  Some manual
editing may still be necessary because of this, but this script
can pare down 10,000 line files to 20 line files, making like easier.

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

18 years agoFix syntax for indirect calls. This fixes Olden/mst
Chris Lattner [Mon, 19 Dec 2005 01:22:53 +0000 (01:22 +0000)]
Fix syntax for indirect calls.  This fixes Olden/mst

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

18 years agoKeep stack frames 8-byte aligned. This fixes olden/voronoi
Chris Lattner [Mon, 19 Dec 2005 01:15:13 +0000 (01:15 +0000)]
Keep stack frames 8-byte aligned.  This fixes olden/voronoi

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

18 years agoapparently rdy isn't actually a psuedo instruction. Use rd %y
Chris Lattner [Mon, 19 Dec 2005 00:53:02 +0000 (00:53 +0000)]
apparently rdy isn't actually a psuedo instruction.  Use rd %y

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

18 years agoadd fneg/fabs support for doubles
Chris Lattner [Mon, 19 Dec 2005 00:50:12 +0000 (00:50 +0000)]
add fneg/fabs support for doubles

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

18 years agoVarious cleanups to this pass, no functionality change
Chris Lattner [Mon, 19 Dec 2005 00:46:20 +0000 (00:46 +0000)]
Various cleanups to this pass, no functionality change

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

18 years agoadd bool truncstores
Chris Lattner [Mon, 19 Dec 2005 00:19:21 +0000 (00:19 +0000)]
add bool truncstores

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

18 years agoElimiante SP and FP, which weren't members of the IntRegs register class
Chris Lattner [Mon, 19 Dec 2005 00:06:52 +0000 (00:06 +0000)]
Elimiante SP and FP, which weren't members of the IntRegs register class

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

18 years agoMake sure to relegalize new nodes
Chris Lattner [Sun, 18 Dec 2005 23:54:29 +0000 (23:54 +0000)]
Make sure to relegalize new nodes

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

18 years agoThe sun assembler only supports .xword in V9 mode.
Chris Lattner [Sun, 18 Dec 2005 23:36:45 +0000 (23:36 +0000)]
The sun assembler only supports .xword in V9 mode.

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

18 years agoConfigure the asmwriter to allow constant pools to be printed correctly
Chris Lattner [Sun, 18 Dec 2005 23:35:05 +0000 (23:35 +0000)]
Configure the asmwriter to allow constant pools to be printed correctly

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

18 years agoadd support for integer extloads
Chris Lattner [Sun, 18 Dec 2005 23:18:37 +0000 (23:18 +0000)]
add support for integer extloads

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

18 years agoAdd support for undef
Chris Lattner [Sun, 18 Dec 2005 23:10:57 +0000 (23:10 +0000)]
Add support for undef

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

18 years agoAdd support for calls to external symbols
Chris Lattner [Sun, 18 Dec 2005 23:07:11 +0000 (23:07 +0000)]
Add support for calls to external symbols

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

18 years agowe have no memcpy
Chris Lattner [Sun, 18 Dec 2005 23:00:27 +0000 (23:00 +0000)]
we have no memcpy

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

18 years agoFix a crash on a call with no arguments
Chris Lattner [Sun, 18 Dec 2005 22:57:47 +0000 (22:57 +0000)]
Fix a crash on a call with no arguments

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

18 years agoKeep VC++ happy.
Jeff Cohen [Sun, 18 Dec 2005 22:20:05 +0000 (22:20 +0000)]
Keep VC++ happy.

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

18 years agoThis is handled by the autogen'd code
Chris Lattner [Sun, 18 Dec 2005 21:06:11 +0000 (21:06 +0000)]
This is handled by the autogen'd code

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

18 years agoHandle basic block nodes
Chris Lattner [Sun, 18 Dec 2005 21:05:44 +0000 (21:05 +0000)]
Handle basic block nodes

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

18 years agoChange return lowering so that we can autogen the matching code.
Chris Lattner [Sun, 18 Dec 2005 21:03:04 +0000 (21:03 +0000)]
Change return lowering so that we can autogen the matching code.

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

18 years agoAdd an accessor
Chris Lattner [Sun, 18 Dec 2005 21:00:53 +0000 (21:00 +0000)]
Add an accessor

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

18 years agoImplement Calls for V8. This would be completely autogenerated except for
Chris Lattner [Sun, 18 Dec 2005 15:55:15 +0000 (15:55 +0000)]
Implement Calls for V8.  This would be completely autogenerated except for
a small bug in tblgen.  When that is fixed, we can remove the ISD::Call case
in Select.

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

18 years agoMore fixes for Selection of copyto/fromreg with a flag
Chris Lattner [Sun, 18 Dec 2005 15:45:51 +0000 (15:45 +0000)]
More fixes for Selection of copyto/fromreg with a flag

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

18 years agoMore corrections for flagged copyto/from reg
Chris Lattner [Sun, 18 Dec 2005 15:36:21 +0000 (15:36 +0000)]
More corrections for flagged copyto/from reg

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

18 years agoSelect copytoreg and copyfromreg nodes that have flag operands correctly.
Chris Lattner [Sun, 18 Dec 2005 15:28:25 +0000 (15:28 +0000)]
Select copytoreg and copyfromreg nodes that have flag operands correctly.

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

18 years agolegalize copytoreg and copyfromreg nodes that have flag operands correctly.
Chris Lattner [Sun, 18 Dec 2005 15:27:43 +0000 (15:27 +0000)]
legalize copytoreg and copyfromreg nodes that have flag operands correctly.

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

18 years agoImplement the full V8 ABI for incoming arguments.
Chris Lattner [Sun, 18 Dec 2005 13:33:06 +0000 (13:33 +0000)]
Implement the full V8 ABI for incoming arguments.

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

18 years agoPush ops list, asm string, and pattern all the way up to InstV8. Move the
Chris Lattner [Sun, 18 Dec 2005 08:21:00 +0000 (08:21 +0000)]
Push ops list, asm string, and pattern all the way up to InstV8.  Move the
InstV8 class to the InstrFormats file where it belongs.

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

18 years agoGive V8 select_cc, in the spirit of the PPC backend
Chris Lattner [Sun, 18 Dec 2005 08:13:54 +0000 (08:13 +0000)]
Give V8 select_cc, in the spirit of the PPC backend

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

18 years agoremove some unused instructions
Chris Lattner [Sun, 18 Dec 2005 07:15:17 +0000 (07:15 +0000)]
remove some unused instructions

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

18 years agoV8 doesn't have FP extload
Chris Lattner [Sun, 18 Dec 2005 07:13:32 +0000 (07:13 +0000)]
V8 doesn't have FP extload

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

18 years agosimplifications, fix typo
Chris Lattner [Sun, 18 Dec 2005 07:09:06 +0000 (07:09 +0000)]
simplifications, fix typo

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

18 years agoadd a node, for completeness
Chris Lattner [Sun, 18 Dec 2005 07:05:21 +0000 (07:05 +0000)]
add a node, for completeness

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

18 years agoAdd frameindex support
Chris Lattner [Sun, 18 Dec 2005 06:59:57 +0000 (06:59 +0000)]
Add frameindex support
Add support for copying (e.g. returning) doubles
Add support for F<->I instructions

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

18 years agoTighten up some checks
Chris Lattner [Sun, 18 Dec 2005 06:40:34 +0000 (06:40 +0000)]
Tighten up some checks

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

18 years agoFix a bug Sabre was having where the DAG root was a group. The group dominator
Jim Laskey [Sun, 18 Dec 2005 04:40:52 +0000 (04:40 +0000)]
Fix a bug Sabre was having where the DAG root was a group.  The group dominator
needed to be added to the ordering list, not the first member of the group.

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

18 years agoGroups were not emitted if the dominator node and the node in the ordering list
Jim Laskey [Sun, 18 Dec 2005 03:59:21 +0000 (03:59 +0000)]
Groups were not emitted if the dominator node and the node in the ordering list
were not the same node.  Ultimately the test was bogus.

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

18 years agoSince extload can also be used by FP, split STDIntExtLoad into two parts,
Nate Begeman [Sun, 18 Dec 2005 02:48:48 +0000 (02:48 +0000)]
Since extload can also be used by FP, split STDIntExtLoad into two parts,
one for use with extload, one for use with sextload and zextload, which
are integer only.

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

18 years agoAdd constant pool support, including folding into addresses.
Chris Lattner [Sun, 18 Dec 2005 02:37:35 +0000 (02:37 +0000)]
Add constant pool support, including folding into addresses.
Pretty print addresses a bit, to not print [%r1+%g0]: just print [%r1]

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

18 years agoTeach the addressing mode stuff to fold "%lo" into 'ri' addressing modes,
Chris Lattner [Sun, 18 Dec 2005 02:27:00 +0000 (02:27 +0000)]
Teach the addressing mode stuff to fold "%lo" into 'ri' addressing modes,
allowing us to compile this:

to this:

%G1 = external global int
%G2 = external global int
void %test() {
        %X = load int* %G1
        store int %X, int* %G2
        ret void
}

test:
        save -96, %sp, %sp
        sethi %hi(G1), %l0
        ld [%l0+%lo(G1)], %l0
        sethi %hi(G2), %l1
        st %l0, [%l1+%lo(G2)]
        restore %g0, %g0, %g0
        retl
        nop

instead of this:

test:
        save -96, %sp, %sp
        sethi %hi(G1), %l0
        or %g0, %lo(G1), %l1
        ld [%l1+%l0], %l0
        sethi %hi(G2), %l1
        or %g0, %lo(G2), %l2
        st %l0, [%l2+%l1]
        restore %g0, %g0, %g0
        retl
        nop

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

18 years agoAdd initial support for global variables, and fix a bug in addr mode selection
Chris Lattner [Sun, 18 Dec 2005 02:10:39 +0000 (02:10 +0000)]
Add initial support for global variables, and fix a bug in addr mode selection
where we didn't select the operands.

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

18 years agoClaiming that branch targets are registers is not very wholesome. Change them
Chris Lattner [Sun, 18 Dec 2005 01:46:58 +0000 (01:46 +0000)]
Claiming that branch targets are registers is not very wholesome.  Change them
to be basic blocks.  Also, add uncond branches.

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

18 years agoAdd unordered comparisons
Chris Lattner [Sun, 18 Dec 2005 01:41:39 +0000 (01:41 +0000)]
Add unordered comparisons

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

18 years agoAdd patterns to the rest of the int condbranches and some of the fp branches
Chris Lattner [Sun, 18 Dec 2005 01:38:19 +0000 (01:38 +0000)]
Add patterns to the rest of the int condbranches and some of the fp branches

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

18 years agoAdd initial conditional branch support. This doesn't actually work yet due
Chris Lattner [Sun, 18 Dec 2005 01:20:35 +0000 (01:20 +0000)]
Add initial conditional branch support.  This doesn't actually work yet due
to a bug in the scheduler.

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

18 years agoSimplify code
Chris Lattner [Sun, 18 Dec 2005 01:03:46 +0000 (01:03 +0000)]
Simplify code

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

18 years agoEliminate CMPri, which is a synonym for SUBCCri
Chris Lattner [Sat, 17 Dec 2005 23:52:08 +0000 (23:52 +0000)]
Eliminate CMPri, which is a synonym for SUBCCri

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

18 years agoallow custom expansion of BR_CC
Chris Lattner [Sat, 17 Dec 2005 23:46:46 +0000 (23:46 +0000)]
allow custom expansion of BR_CC

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

18 years agoadd fneg,fabs,fsqrt instructions
Chris Lattner [Sat, 17 Dec 2005 23:20:27 +0000 (23:20 +0000)]
add fneg,fabs,fsqrt instructions

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

18 years agoAdd patterns for fround/fextend and the funny fsmuld instruction
Chris Lattner [Sat, 17 Dec 2005 23:14:30 +0000 (23:14 +0000)]
Add patterns for fround/fextend and the funny fsmuld instruction

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

18 years agoAdd FP +,-,*,/
Chris Lattner [Sat, 17 Dec 2005 23:10:46 +0000 (23:10 +0000)]
Add FP +,-,*,/

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

18 years agoGive patterns to F3_3 instructions
Chris Lattner [Sat, 17 Dec 2005 23:05:35 +0000 (23:05 +0000)]
Give patterns to F3_3 instructions

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

18 years agoImplement 64-bit add/sub, make sure to receive and return 64-bit args with
Chris Lattner [Sat, 17 Dec 2005 22:55:57 +0000 (22:55 +0000)]
Implement 64-bit add/sub, make sure to receive and return 64-bit args with
the right halves in the right regs

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

18 years agoimplement div and rem
Chris Lattner [Sat, 17 Dec 2005 22:39:19 +0000 (22:39 +0000)]
implement div and rem

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

18 years agoimplement MULHU/MULHS for 64-bit multiplies
Chris Lattner [Sat, 17 Dec 2005 22:30:00 +0000 (22:30 +0000)]
implement MULHU/MULHS for 64-bit multiplies

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

18 years agoAdd patterns for multiply, simplify Y register handling stuff, add RDY instruction
Chris Lattner [Sat, 17 Dec 2005 22:22:53 +0000 (22:22 +0000)]
Add patterns for multiply, simplify Y register handling stuff, add RDY instruction

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

18 years agoMake the addressing modes smarter
Chris Lattner [Sat, 17 Dec 2005 21:25:27 +0000 (21:25 +0000)]
Make the addressing modes smarter

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