oota-llvm.git
18 years agoInvert the TargetLowering flag that controls divide by consant expansion.
Nate Begeman [Fri, 21 Oct 2005 00:02:42 +0000 (00:02 +0000)]
Invert the TargetLowering flag that controls divide by consant expansion.
Add a new flag to TargetLowering indicating if the target has really cheap
  signed division by powers of two, make ppc use it.  This will probably go
  away in the future.
Implement some more ISD::SDIV folds in the dag combiner
Remove now dead code in the x86 backend.

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

18 years agoInst cleanup. As a bonus, operands are in the correct order for cmovs. Expect new...
Andrew Lenharth [Thu, 20 Oct 2005 23:58:36 +0000 (23:58 +0000)]
Inst cleanup.  As a bonus, operands are in the correct order for cmovs.  Expect new stuff to pass in the JIT tonight

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

18 years agoUse a literal to define ineg instead of immzero
Chris Lattner [Thu, 20 Oct 2005 23:30:37 +0000 (23:30 +0000)]
Use a literal to define ineg instead of immzero

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

18 years agoFix a conditional so we don't access past the end of the range. Thanks to
Chris Lattner [Thu, 20 Oct 2005 22:50:10 +0000 (22:50 +0000)]
Fix a conditional so we don't access past the end of the range.  Thanks to
Andrew for bringing this to my attn.

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

18 years agoadded a few 1 operand form stuff. Seems to break regalloc on alpha. sigh
Andrew Lenharth [Thu, 20 Oct 2005 19:39:24 +0000 (19:39 +0000)]
added a few 1 operand form stuff.  Seems to break regalloc on alpha.  sigh

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

18 years agoadd cttz and ctpop
Andrew Lenharth [Thu, 20 Oct 2005 19:38:11 +0000 (19:38 +0000)]
add cttz and ctpop

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

18 years agoFix a couple bugs in the const div stuff where we'd generate MULHS/MULHU
Nate Begeman [Thu, 20 Oct 2005 17:45:03 +0000 (17:45 +0000)]
Fix a couple bugs in the const div stuff where we'd generate MULHS/MULHU
for types that aren't legal, and fail a divisor is less than zero
comparison, which would cause us to drop a subtract.

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

18 years agodon't use llabs with apparently VC++ doesn't have
Chris Lattner [Thu, 20 Oct 2005 17:01:00 +0000 (17:01 +0000)]
don't use llabs with apparently VC++ doesn't have

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

18 years agoFix order of eval problem from when I refactored this into a function.
Chris Lattner [Thu, 20 Oct 2005 16:56:40 +0000 (16:56 +0000)]
Fix order of eval problem from when I refactored this into a function.

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

18 years agoSounds good, finish the intop conversion.
Andrew Lenharth [Thu, 20 Oct 2005 14:42:48 +0000 (14:42 +0000)]
Sounds good, finish the intop conversion.

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

18 years agoAdd some more patterns for i64 on ppc
Nate Begeman [Thu, 20 Oct 2005 07:51:08 +0000 (07:51 +0000)]
Add some more patterns for i64 on ppc

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

18 years agoadd a new method, play around with some code.
Chris Lattner [Thu, 20 Oct 2005 07:39:25 +0000 (07:39 +0000)]
add a new method, play around with some code.

Fix a *bug* in the extendIntervalEndTo method.  In particular, if adding
[2:10) to an interval containing [0:2),[10:30), we produced [0:10),[10,30).
Which is not the most smart thing to do.  Now produce [0:30).

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

18 years agoadd a new method
Chris Lattner [Thu, 20 Oct 2005 07:37:59 +0000 (07:37 +0000)]
add a new method

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

18 years agoRefactor some code, pulling it out into a function. No functionality change.
Chris Lattner [Thu, 20 Oct 2005 06:06:30 +0000 (06:06 +0000)]
Refactor some code, pulling it out into a function.  No functionality change.

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

18 years agoDo NOT touch FP ops with LSR. This fixes a testcase Nate sent me from an
Chris Lattner [Thu, 20 Oct 2005 04:47:10 +0000 (04:47 +0000)]
Do NOT touch FP ops with LSR.  This fixes a testcase Nate sent me from an
inner loop like this:

LBB_RateConvertMono8AltiVec_2:  ; no_exit
        lis r2, ha16(.CPI_RateConvertMono8AltiVec_0)
        lfs f3, lo16(.CPI_RateConvertMono8AltiVec_0)(r2)
        fmr f3, f3
        fadd f0, f2, f0
        fadd f3, f0, f3
        fcmpu cr0, f3, f1
        bge cr0, LBB_RateConvertMono8AltiVec_2  ; no_exit

to an inner loop like this:

LBB_RateConvertMono8AltiVec_1:  ; no_exit
        fsub f2, f2, f1
        fcmpu cr0, f2, f1
        fmr f0, f2
        bge cr0, LBB_RateConvertMono8AltiVec_1  ; no_exit

Doh! good catch!

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

18 years agoAdd some pattern fragments to simplify the repetitive parts of the patterns
Chris Lattner [Thu, 20 Oct 2005 04:21:06 +0000 (04:21 +0000)]
Add some pattern fragments to simplify the repetitive parts of the patterns
for some common ops and use them for a few examples.  Andrew, if you like
this, feel free to convert the rest over, if you hate it, feel free to
revert.

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

18 years agosimplify this a bit by using immediates
Chris Lattner [Thu, 20 Oct 2005 03:57:03 +0000 (03:57 +0000)]
simplify this a bit by using immediates

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

18 years agoMove the target constant divide optimization up into the dag combiner, so
Nate Begeman [Thu, 20 Oct 2005 02:15:44 +0000 (02:15 +0000)]
Move the target constant divide optimization up into the dag combiner, so
that the nodes can be folded with other nodes, and we can not duplicate
code in every backend.  Alpha will probably want this too.

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

18 years agoEnable targets to say that integer divide is expensive, which will trigger
Nate Begeman [Thu, 20 Oct 2005 02:14:14 +0000 (02:14 +0000)]
Enable targets to say that integer divide is expensive, which will trigger
an upcoming optimization in the DAG Combiner.

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

18 years agoforgot this one
Andrew Lenharth [Thu, 20 Oct 2005 00:29:02 +0000 (00:29 +0000)]
forgot this one

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

18 years agoret 0; works, not much else
Andrew Lenharth [Thu, 20 Oct 2005 00:28:31 +0000 (00:28 +0000)]
ret 0; works, not much else

still lots of uglyness.
Maybe calls will come soon.
Fixing the return value of things will be necessary to make alpha work.

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

18 years agoThis fixes PR638:
John Criswell [Wed, 19 Oct 2005 20:07:15 +0000 (20:07 +0000)]
This fixes PR638:
Regression/CodeGen/Generic/2004-02-08-UnwindSupport.llx

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

18 years agoAdded InstrSchedClass to each of the PowerPC Instructions.
Jim Laskey [Wed, 19 Oct 2005 19:51:16 +0000 (19:51 +0000)]
Added InstrSchedClass to each of the PowerPC Instructions.

Note that when adding new instructions that you should refer to the table at the
bottom of PPCSchedule.td.

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

18 years agoMoved to Regression/Codegen/Generic.
John Criswell [Wed, 19 Oct 2005 18:52:52 +0000 (18:52 +0000)]
Moved to Regression/Codegen/Generic.

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

18 years agoThis is a generic test for all code generators. It originally came from
John Criswell [Wed, 19 Oct 2005 18:51:07 +0000 (18:51 +0000)]
This is a generic test for all code generators.  It originally came from
Regression/Codegen/X86.

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

18 years agoWrite patterns for the various shl and srl patterns that don't involve
Nate Begeman [Wed, 19 Oct 2005 18:42:01 +0000 (18:42 +0000)]
Write patterns for the various shl and srl patterns that don't involve
doing something clever.

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

18 years agoForce i386 code generation for an i386 specific test.
John Criswell [Wed, 19 Oct 2005 18:30:39 +0000 (18:30 +0000)]
Force i386 code generation for an i386 specific test.

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

18 years agoPush processor descriptions to the top of target and add command line info.
Jim Laskey [Wed, 19 Oct 2005 13:34:52 +0000 (13:34 +0000)]
Push processor descriptions to the top of target and add command line info.

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

18 years agoadd support for literal immediates in patterns to match, allowing us to
Chris Lattner [Wed, 19 Oct 2005 04:41:05 +0000 (04:41 +0000)]
add support for literal immediates in patterns to match, allowing us to
write things like this:

def : Pat<(add GPRC:$in, 12),
          (ADD12 GPRC:$in)>;

Andrew: if this isn't enough or doesn't work for you, please lemme know.

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

18 years agonow that tblgen is smarter, use integers directly. This should help Andrew too
Chris Lattner [Wed, 19 Oct 2005 04:32:04 +0000 (04:32 +0000)]
now that tblgen is smarter, use integers directly.  This should help Andrew too

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

18 years agoAdd basic support for integer constants in pattern results.
Chris Lattner [Wed, 19 Oct 2005 04:30:56 +0000 (04:30 +0000)]
Add basic support for integer constants in pattern results.

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

18 years agoFix some checking that was causing duraid to get a perplexing assertion
Chris Lattner [Wed, 19 Oct 2005 04:12:14 +0000 (04:12 +0000)]
Fix some checking that was causing duraid to get a perplexing assertion
instead of a happy error message

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

18 years agoAdd support for patterns that have physical registers in them. Testcase:
Chris Lattner [Wed, 19 Oct 2005 02:07:26 +0000 (02:07 +0000)]
Add support for patterns that have physical registers in them.  Testcase:

def : Pat<(trunc G8RC:$in),
          (OR8To4 G8RC:$in, X0)>;

Even though this doesn't make any sense on PPC :)

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

18 years agoAsserting here is to violent
Chris Lattner [Wed, 19 Oct 2005 01:55:23 +0000 (01:55 +0000)]
Asserting here is to violent

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

18 years agoteach ppc backend these are copies
Chris Lattner [Wed, 19 Oct 2005 01:50:36 +0000 (01:50 +0000)]
teach ppc backend these are copies

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

18 years agoMake this work with the internalize change
Chris Lattner [Wed, 19 Oct 2005 01:41:47 +0000 (01:41 +0000)]
Make this work with the internalize change

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

18 years agoConvert these cases to patterns
Chris Lattner [Wed, 19 Oct 2005 01:38:02 +0000 (01:38 +0000)]
Convert these cases to patterns

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

18 years agoNate wants to define 'Pat's which turn into instructions that don't have
Chris Lattner [Wed, 19 Oct 2005 01:27:22 +0000 (01:27 +0000)]
Nate wants to define 'Pat's which turn into instructions that don't have
patterns.  Certainly a logical request.

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

18 years agoWoo, it kinda works. We now generate this atrociously bad, but correct,
Nate Begeman [Wed, 19 Oct 2005 01:12:32 +0000 (01:12 +0000)]
Woo, it kinda works.  We now generate this atrociously bad, but correct,
code for long long foo(long long a, long long b) { return a + b; }

_foo:
        or r2, r3, r3
        or r3, r4, r4
        or r4, r5, r5
        or r5, r6, r6
        rldicr r2, r2, 32, 31
        rldicl r3, r3, 0, 32
        rldicr r4, r4, 32, 31
        rldicl r5, r5, 0, 32
        or r2, r3, r2
        or r3, r5, r4
        add r4, r3, r2
        rldicl r2, r4, 32, 32
        or r4, r4, r4
        or r3, r2, r2
        blr

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

18 years agoTestcase that crashes llvmgcc in type layout
Chris Lattner [Wed, 19 Oct 2005 00:52:21 +0000 (00:52 +0000)]
Testcase that crashes llvmgcc in type layout

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

18 years agoapply some tblgen majik to simplify the X register definitions
Chris Lattner [Wed, 19 Oct 2005 00:17:55 +0000 (00:17 +0000)]
apply some tblgen majik to simplify the X register definitions

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

18 years agoTeach Legalize how to do something with EXTRACT_ELEMENT when the type of
Nate Begeman [Wed, 19 Oct 2005 00:06:56 +0000 (00:06 +0000)]
Teach Legalize how to do something with EXTRACT_ELEMENT when the type of
the pair of elements is a legal type.

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

18 years agoMake a new reg class for 64 bit regs that aliases the 32 bit regs. This
Nate Begeman [Wed, 19 Oct 2005 00:05:37 +0000 (00:05 +0000)]
Make a new reg class for 64 bit regs that aliases the 32 bit regs.  This
will have to tide us over until we get real subreg support, but it prevents
the PrologEpilogInserter from spilling 8 byte GPRs on a G4 processor.

Add some initial support for TRUNCATE and ANY_EXTEND, but they don't
currently work due to issues with ScheduleDAG.  Something wll have to be
figured out.

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

18 years agoAdd the ability to lower return instructions to TargetLowering. This
Nate Begeman [Tue, 18 Oct 2005 23:23:37 +0000 (23:23 +0000)]
Add the ability to lower return instructions to TargetLowering.  This
allows us to lower legal return types to something else, to meet ABI
requirements (such as that i64 be returned in two i32 regs on Darwin/ppc).

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

18 years agoFix Generic/2005-10-18-ZeroSizeStackObject.ll by not requesting a zero
Chris Lattner [Tue, 18 Oct 2005 22:14:06 +0000 (22:14 +0000)]
Fix Generic/2005-10-18-ZeroSizeStackObject.ll by not requesting a zero
sized stack object if either the array size or the type size is zero.

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

18 years agonew testcase
Chris Lattner [Tue, 18 Oct 2005 22:13:39 +0000 (22:13 +0000)]
new testcase

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

18 years agoremove hack
Chris Lattner [Tue, 18 Oct 2005 22:11:42 +0000 (22:11 +0000)]
remove hack

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

18 years agoThis was never updated for the project makefile changes
Chris Lattner [Tue, 18 Oct 2005 18:50:26 +0000 (18:50 +0000)]
This was never updated for the project makefile changes

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

18 years agoThis never got updated to reflect the project makefile changes
Chris Lattner [Tue, 18 Oct 2005 18:48:30 +0000 (18:48 +0000)]
This never got updated to reflect the project makefile changes

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

18 years agoSimple edits; remove unimplimented cases and clarify long haul SLU cases.
Jim Laskey [Tue, 18 Oct 2005 16:59:23 +0000 (16:59 +0000)]
Simple edits; remove unimplimented cases and clarify long haul SLU cases.

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

18 years agoFix the JIT encoding of LWA, LD, STD, and STDU.
Chris Lattner [Tue, 18 Oct 2005 16:51:22 +0000 (16:51 +0000)]
Fix the JIT encoding of LWA, LD, STD, and STDU.

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

18 years agoChecking in first round of scheduling tablegen files. Not tied in as yet.
Jim Laskey [Tue, 18 Oct 2005 16:23:40 +0000 (16:23 +0000)]
Checking in first round of scheduling tablegen files.  Not tied in as yet.

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

18 years agoadd a case
Chris Lattner [Tue, 18 Oct 2005 06:30:51 +0000 (06:30 +0000)]
add a case

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

18 years agoFix PR637
Chris Lattner [Tue, 18 Oct 2005 06:29:43 +0000 (06:29 +0000)]
Fix PR637

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

18 years agoAdd an option to this pass. If it is set, we are allowed to internalize
Chris Lattner [Tue, 18 Oct 2005 06:29:22 +0000 (06:29 +0000)]
Add an option to this pass.  If it is set, we are allowed to internalize
all but main.  If it's not set, we can still internalize, but only if an
explicit symbol list is provided.

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

18 years agoadd an option to the internalize pass
Chris Lattner [Tue, 18 Oct 2005 06:28:16 +0000 (06:28 +0000)]
add an option to the internalize pass

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

18 years agoFold (select C, load A, load B) -> load (select C, A, B). This happens quite
Chris Lattner [Tue, 18 Oct 2005 06:04:22 +0000 (06:04 +0000)]
Fold (select C, load A, load B) -> load (select C, A, B).  This happens quite
a lot throughout many programs.  In particular, specfp triggers it a bunch for
constant FP nodes when you have code like  cond ? 1.0 : -1.0.

If the PPC ISel exposed the loads implicit in pic references to external globals,
we would be able to eliminate a load in cases like this as well:

%X = external global int
%Y = external global int
int* %test4(bool %C) {
        %G = select bool %C, int* %X, int* %Y
        ret int* %G
}

Note that this breaks things that use SrcValue's (see the fixme), but since nothing
uses them yet, this is ok.

Also, simplify some code to use hasOneUse() on an SDOperand instead of hasNUsesOfValue directly.

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

18 years agoDuraid pointed out that it is impolite to emit PPC:: into the IA64 backend
Chris Lattner [Tue, 18 Oct 2005 04:41:01 +0000 (04:41 +0000)]
Duraid pointed out that it is impolite to emit PPC:: into the IA64 backend

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

18 years agoDo the right thing and enable 64 bit regs under the control of a subtarget
Nate Begeman [Tue, 18 Oct 2005 00:56:42 +0000 (00:56 +0000)]
Do the right thing and enable 64 bit regs under the control of a subtarget
option.  Currently the only way to enable this is to specify the
64bitregs mattr flag.  It is never enabled by default on any config yet.

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

18 years agoFirst bits of 64 bit PowerPC stuff, currently disabled. A lot of this is
Nate Begeman [Tue, 18 Oct 2005 00:28:58 +0000 (00:28 +0000)]
First bits of 64 bit PowerPC stuff, currently disabled.  A lot of this is
purely mechanical.

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

18 years agoImplement some feedback from Chris re: constant canonicalization
Nate Begeman [Tue, 18 Oct 2005 00:28:13 +0000 (00:28 +0000)]
Implement some feedback from Chris re: constant canonicalization

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

18 years agoLegalize BUILD_PAIR appropriately for upcoming 64 bit PowerPC work.
Nate Begeman [Tue, 18 Oct 2005 00:27:41 +0000 (00:27 +0000)]
Legalize BUILD_PAIR appropriately for upcoming 64 bit PowerPC work.

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

18 years agoUse %s instead of hard coding the input filename.
John Criswell [Mon, 17 Oct 2005 21:54:18 +0000 (21:54 +0000)]
Use %s instead of hard coding the input filename.
This allows the test to work when srcdir != objdir.

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

18 years agofold fmul X, +2.0 -> fadd X, X;
Nate Begeman [Mon, 17 Oct 2005 20:40:11 +0000 (20:40 +0000)]
fold fmul X, +2.0 -> fadd X, X;

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

18 years agoMake this work for FP constantexprs
Chris Lattner [Mon, 17 Oct 2005 20:18:38 +0000 (20:18 +0000)]
Make this work for FP constantexprs

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

18 years agoOops, X+0.0 isn't foldable, but X+-0.0 is.
Chris Lattner [Mon, 17 Oct 2005 17:56:38 +0000 (17:56 +0000)]
Oops, X+0.0 isn't foldable, but X+-0.0 is.

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

18 years agorelax this a bit, as we only support the default rounding mode
Chris Lattner [Mon, 17 Oct 2005 17:49:32 +0000 (17:49 +0000)]
relax this a bit, as we only support the default rounding mode

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

18 years agoApparently, people object to floating pointers. Picky picky.
Chris Lattner [Mon, 17 Oct 2005 15:19:24 +0000 (15:19 +0000)]
Apparently, people object to floating pointers.  Picky picky.

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

18 years agoAs requested, a blurb on sub-targets.
Jim Laskey [Mon, 17 Oct 2005 12:19:10 +0000 (12:19 +0000)]
As requested, a blurb on sub-targets.

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

18 years agofix some grammar-o's I noticed
Chris Lattner [Mon, 17 Oct 2005 04:18:41 +0000 (04:18 +0000)]
fix some grammar-o's I noticed

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

18 years agoFeedback from Nate.
Chris Lattner [Mon, 17 Oct 2005 03:09:31 +0000 (03:09 +0000)]
Feedback from Nate.

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

18 years agoDocument -view-isel-dags and -view-sched-dags
Chris Lattner [Mon, 17 Oct 2005 01:40:33 +0000 (01:40 +0000)]
Document -view-isel-dags and -view-sched-dags

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

18 years agoAdd notes about MF.viewCFG() and friends.
Chris Lattner [Mon, 17 Oct 2005 01:36:23 +0000 (01:36 +0000)]
Add notes about MF.viewCFG() and friends.

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

18 years agoadd a trivial fold
Chris Lattner [Mon, 17 Oct 2005 01:07:11 +0000 (01:07 +0000)]
add a trivial fold

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

18 years agoAdd a bunch of info about the isel autogenerator. Review appreciated!
Chris Lattner [Sun, 16 Oct 2005 20:02:19 +0000 (20:02 +0000)]
Add a bunch of info about the isel autogenerator.  Review appreciated!

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

18 years agoFill this out some more. Add description of MBB/MF. Fix some broken links,
Chris Lattner [Sun, 16 Oct 2005 18:31:08 +0000 (18:31 +0000)]
Fill this out some more.  Add description of MBB/MF.  Fix some broken links,
turn some broken <a name> into <a href>'s.

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

18 years agoAdd a stub for the TargetSubtarget class. Jim, please fill a blurb in here
Chris Lattner [Sun, 16 Oct 2005 17:06:07 +0000 (17:06 +0000)]
Add a stub for the TargetSubtarget class.  Jim, please fill a blurb in here
when you get a chance.

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

18 years agoUpdate this significantly, mention subtarget and isel generation support.
Chris Lattner [Sun, 16 Oct 2005 17:03:22 +0000 (17:03 +0000)]
Update this significantly, mention subtarget and isel generation support.

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

18 years agoMore PPC32 -> PPC changes, as well as merging some classes that were
Nate Begeman [Sun, 16 Oct 2005 05:39:50 +0000 (05:39 +0000)]
More PPC32 -> PPC changes, as well as merging some classes that were
redundant after the change.

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

18 years agoMake the generated code significantly more memory efficient, by using
Chris Lattner [Sun, 16 Oct 2005 01:41:58 +0000 (01:41 +0000)]
Make the generated code significantly more memory efficient, by using
SelectNodeTo instead of getTargetNode when possible.

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

18 years agoupdate this a little bit to talk about the dag combiner and remove inaccuracies.
Chris Lattner [Sun, 16 Oct 2005 00:36:38 +0000 (00:36 +0000)]
update this a little bit to talk about the dag combiner and remove inaccuracies.
This still doesn't talk about autogen much

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

18 years agoFix this logic.
Chris Lattner [Sat, 15 Oct 2005 22:35:40 +0000 (22:35 +0000)]
Fix this logic.

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

18 years agoAdd a case we were missing that was causing us to fail CodeGen/PowerPC/rlwinm.ll...
Chris Lattner [Sat, 15 Oct 2005 22:18:08 +0000 (22:18 +0000)]
Add a case we were missing that was causing us to fail CodeGen/PowerPC/rlwinm.ll:test3

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

18 years agoRemove some dead code now that the dag combiner exists.
Nate Begeman [Sat, 15 Oct 2005 22:08:02 +0000 (22:08 +0000)]
Remove some dead code now that the dag combiner exists.

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

18 years agoRemove some dead code: the ORI/ORIS cases are autogen'd. This makes
Chris Lattner [Sat, 15 Oct 2005 22:06:18 +0000 (22:06 +0000)]
Remove some dead code: the ORI/ORIS cases are autogen'd.  This makes
SelectIntImmediateExpr dead.

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

18 years agoprune #includes
Chris Lattner [Sat, 15 Oct 2005 21:58:54 +0000 (21:58 +0000)]
prune #includes

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

18 years agoThese instructions are now autogenerated
Chris Lattner [Sat, 15 Oct 2005 21:44:56 +0000 (21:44 +0000)]
These instructions are now autogenerated

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

18 years agoAdd a pattern for FSQRTS
Chris Lattner [Sat, 15 Oct 2005 21:44:15 +0000 (21:44 +0000)]
Add a pattern for FSQRTS

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

18 years agoremove dead code
Chris Lattner [Sat, 15 Oct 2005 21:40:12 +0000 (21:40 +0000)]
remove dead code

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

18 years agoImplement the last major missing piece in the DAG isel generator: when emitting
Chris Lattner [Sat, 15 Oct 2005 21:34:21 +0000 (21:34 +0000)]
Implement the last major missing piece in the DAG isel generator: when emitting
a pattern match, make sure to emit the (minimal number of) type checks that
verify the pattern matches this specific instruction.  This allows FMA32
patterns to not match double expressions for example.

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

18 years agoUse getExtLoad here instead of getNode, as extloads produce two values. This
Chris Lattner [Sat, 15 Oct 2005 20:24:07 +0000 (20:24 +0000)]
Use getExtLoad here instead of getNode, as extloads produce two values.  This
fixes a legalize failure on SPASS for itanium.

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

18 years agoremove broken SRA/rlwimi case
Chris Lattner [Sat, 15 Oct 2005 19:04:48 +0000 (19:04 +0000)]
remove broken SRA/rlwimi case

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

18 years agoRename PPC32*.h to PPC*.h
Chris Lattner [Fri, 14 Oct 2005 23:59:06 +0000 (23:59 +0000)]
Rename PPC32*.h to PPC*.h

This completes the grand PPC file renaming

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

18 years agoMerge PPCJITInfo.h and PPC32JITInfo.h. Note that the PowerPCJITInfo
Chris Lattner [Fri, 14 Oct 2005 23:53:41 +0000 (23:53 +0000)]
Merge PPCJITInfo.h and PPC32JITInfo.h.  Note that the PowerPCJITInfo
and PPC32JITInfo classes should be merged.

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

18 years agoRename PowerPC*.h to PPC*.h
Chris Lattner [Fri, 14 Oct 2005 23:51:18 +0000 (23:51 +0000)]
Rename PowerPC*.h to PPC*.h

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

18 years agoRename PowerPCInstrBuilder.h -> PPC*
Chris Lattner [Fri, 14 Oct 2005 23:45:43 +0000 (23:45 +0000)]
Rename PowerPCInstrBuilder.h -> PPC*

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

18 years agoNuke the PowerPCTargetMachine.h header. Note that the PowerPCTargetMachine
Chris Lattner [Fri, 14 Oct 2005 23:44:05 +0000 (23:44 +0000)]
Nuke the PowerPCTargetMachine.h header.  Note that the PowerPCTargetMachine
still should be merged into the PPC32TargetMachine class

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

18 years agoRename PowerPC*.td -> PPC*.td
Chris Lattner [Fri, 14 Oct 2005 23:40:39 +0000 (23:40 +0000)]
Rename PowerPC*.td -> PPC*.td

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

18 years agoThese are dead
Chris Lattner [Fri, 14 Oct 2005 23:38:51 +0000 (23:38 +0000)]
These are dead

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

18 years agoEliminate PowerPC.td and PPC32.td, consolidating them into PPC.td
Chris Lattner [Fri, 14 Oct 2005 23:37:35 +0000 (23:37 +0000)]
Eliminate PowerPC.td and PPC32.td, consolidating them into PPC.td

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