oota-llvm.git
18 years agoRefactor some code into a function
Chris Lattner [Mon, 3 Oct 2005 01:04:44 +0000 (01:04 +0000)]
Refactor some code into a function

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

18 years agoThis break is bogus and I have no idea why it was there. Basically it prevents
Chris Lattner [Mon, 3 Oct 2005 00:37:33 +0000 (00:37 +0000)]
This break is bogus and I have no idea why it was there.  Basically it prevents
memoizing code when IV's are used by phinodes outside of loops.  In a simple
example, we were getting this code before (note that r6 and r7 are isomorphic
IV's):

        li r6, 0
        or r7, r6, r6
LBB_test_3:     ; no_exit
        lwz r2, 0(r3)
        cmpw cr0, r2, r5
        or r2, r7, r7
        beq cr0, LBB_test_5     ; loopexit
LBB_test_4:     ; endif
        addi r2, r7, 1
        addi r7, r7, 1
        addi r3, r3, 4
        addi r6, r6, 1
        cmpw cr0, r6, r4
        blt cr0, LBB_test_3     ; no_exit

Now we get:

        li r6, 0
LBB_test_3:     ; no_exit
        or r2, r6, r6
        lwz r6, 0(r3)
        cmpw cr0, r6, r5
        beq cr0, LBB_test_6     ; loopexit
LBB_test_4:     ; endif
        addi r3, r3, 4
        addi r6, r2, 1
        cmpw cr0, r6, r4
        blt cr0, LBB_test_3     ; no_exit

this was noticed in em3d.

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

18 years agowhen checking if we should move a split edge block outside of a loop,
Chris Lattner [Mon, 3 Oct 2005 00:31:52 +0000 (00:31 +0000)]
when checking if we should move a split edge block outside of a loop,
check the presplit pred, not the post-split pred.  This was causing us
to make the wrong decision in some cases, leaving the critical edge block
in the loop.

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

18 years agoThis member can be const too
Chris Lattner [Mon, 3 Oct 2005 00:21:25 +0000 (00:21 +0000)]
This member can be const too

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

18 years agoput the right labels on the data
Chris Lattner [Sun, 2 Oct 2005 21:51:38 +0000 (21:51 +0000)]
put the right labels on the data

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

18 years agoFix a problem where the legalizer would run out of stack space on extremely
Chris Lattner [Sun, 2 Oct 2005 17:49:46 +0000 (17:49 +0000)]
Fix a problem where the legalizer would run out of stack space on extremely
large basic blocks because it was purely recursive.  This switches it to an
iterative/recursive hybrid.

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

18 years agosilence a bogus warning
Chris Lattner [Sun, 2 Oct 2005 16:30:51 +0000 (16:30 +0000)]
silence a bogus warning

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

18 years agosilence some warnings
Chris Lattner [Sun, 2 Oct 2005 16:29:36 +0000 (16:29 +0000)]
silence some warnings

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

18 years agosilence a warning
Chris Lattner [Sun, 2 Oct 2005 16:27:59 +0000 (16:27 +0000)]
silence a warning

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

19 years agoadd patterns for float binops and fma ops
Chris Lattner [Sun, 2 Oct 2005 07:46:28 +0000 (07:46 +0000)]
add patterns for float binops and fma ops

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

19 years agoSort the cpu and features table, so that the alpha backend doesn't fail EVERY
Chris Lattner [Sun, 2 Oct 2005 07:13:52 +0000 (07:13 +0000)]
Sort the cpu and features table, so that the alpha backend doesn't fail EVERY
compile with an assertion that the tables are not sorted!

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

19 years agoAdd assertions to the trivial scheduler to check that the value types match
Chris Lattner [Sun, 2 Oct 2005 07:10:55 +0000 (07:10 +0000)]
Add assertions to the trivial scheduler to check that the value types match
up between defs and uses.

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

19 years agoanother solution to the fsel issue. Instead of having 4 variants, just force
Chris Lattner [Sun, 2 Oct 2005 07:07:49 +0000 (07:07 +0000)]
another solution to the fsel issue.  Instead of having 4 variants, just force
the comparison to be 64-bits.  This is fine because extensions from float
to double are free.

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

19 years agofsel can take a different FP type for the comparison and for the result. As such
Chris Lattner [Sun, 2 Oct 2005 06:58:23 +0000 (06:58 +0000)]
fsel can take a different FP type for the comparison and for the result.  As such
split the FSEL family into 4 things instead of just two.

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

19 years agofix an f32/f64 type mismatch
Chris Lattner [Sun, 2 Oct 2005 06:37:13 +0000 (06:37 +0000)]
fix an f32/f64 type mismatch

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

19 years agoCodegen CopyFromReg using the regclass that matches the valuetype of the
Chris Lattner [Sun, 2 Oct 2005 06:34:16 +0000 (06:34 +0000)]
Codegen CopyFromReg using the regclass that matches the valuetype of the
destination vreg.

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

19 years agoAdjust to change in ctor
Chris Lattner [Sun, 2 Oct 2005 06:23:51 +0000 (06:23 +0000)]
Adjust to change in ctor

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

19 years agoEmit the value type for each register class.
Chris Lattner [Sun, 2 Oct 2005 06:23:37 +0000 (06:23 +0000)]
Emit the value type for each register class.

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

19 years agoExpose the actual valuetype of each register class
Chris Lattner [Sun, 2 Oct 2005 06:23:19 +0000 (06:23 +0000)]
Expose the actual valuetype of each register class

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

19 years agoMinor tweak to the branch selector. When emitting a two-way branch, and if
Chris Lattner [Sat, 1 Oct 2005 23:06:26 +0000 (23:06 +0000)]
Minor tweak to the branch selector.  When emitting a two-way branch, and if
we're in a single-mbb loop, make sure to emit the backwards branch as the
conditional branch instead of the uncond branch.  For example, emit this:

LBBl29_z__44:
        stw r9, 0(r15)
        stw r9, 4(r15)
        stw r9, 8(r15)
        stw r9, 12(r15)
        addi r15, r15, 16
        addi r8, r8, 1
        cmpw cr0, r8, r28
        ble cr0, LBBl29_z__44
        b LBBl29_z__48                   *** NOT PART OF LOOP

Instead of:

LBBl29_z__44:
        stw r9, 0(r15)
        stw r9, 4(r15)
        stw r9, 8(r15)
        stw r9, 12(r15)
        addi r15, r15, 16
        addi r8, r8, 1
        cmpw cr0, r8, r28
        bgt cr0, LBBl29_z__48            *** PART OF LOOP!
        b LBBl29_z__44

The former sequence has one fewer dispatch group for the loop body.

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

19 years agolike the comment says, enable this
Chris Lattner [Sat, 1 Oct 2005 23:02:40 +0000 (23:02 +0000)]
like the comment says, enable this

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

19 years agoAdd some very paranoid checking for operand/result reg class matchup
Chris Lattner [Sat, 1 Oct 2005 07:45:09 +0000 (07:45 +0000)]
Add some very paranoid checking for operand/result reg class matchup
For instructions that define multiple results, use the right regclass
to define the result, not always the rc of result #0

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

19 years agoFix VC++ warnings.
Jeff Cohen [Sat, 1 Oct 2005 03:57:14 +0000 (03:57 +0000)]
Fix VC++ warnings.

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

19 years agofix typo
Chris Lattner [Sat, 1 Oct 2005 02:51:36 +0000 (02:51 +0000)]
fix typo

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

19 years agoModify the ppc backend to use two register classes for FP: F8RC and F4RC.
Chris Lattner [Sat, 1 Oct 2005 01:35:02 +0000 (01:35 +0000)]
Modify the ppc backend to use two register classes for FP: F8RC and F4RC.
These are used to represent float and double values, and the two regclasses
contain the same physical registers.

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

19 years agoAnnotate nodes with their addresses if a graph requests it.
Chris Lattner [Sat, 1 Oct 2005 00:19:21 +0000 (00:19 +0000)]
Annotate nodes with their addresses if a graph requests it.

This is Jim's feature implemented so that graphs could 'opt-in' and get
this behavior.  This is currently used by selection dags.

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

19 years agoadd a method
Chris Lattner [Sat, 1 Oct 2005 00:17:07 +0000 (00:17 +0000)]
add a method

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

19 years agotypo
Jim Laskey [Sat, 1 Oct 2005 00:08:23 +0000 (00:08 +0000)]
typo

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

19 years ago1. Simplify the gathering of node groups.
Jim Laskey [Sat, 1 Oct 2005 00:03:07 +0000 (00:03 +0000)]
1. Simplify the gathering of node groups.

2. Printing node groups when displaying nodes.

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

19 years agoShould be using flag and not chain.
Jim Laskey [Fri, 30 Sep 2005 23:43:37 +0000 (23:43 +0000)]
Should be using flag and not chain.

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

19 years agoRemove some now-dead code.
Nate Begeman [Fri, 30 Sep 2005 21:28:27 +0000 (21:28 +0000)]
Remove some now-dead code.

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

19 years agomore specific tests of subtarget stuff
Andrew Lenharth [Fri, 30 Sep 2005 20:30:24 +0000 (20:30 +0000)]
more specific tests of subtarget stuff

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

19 years agosubtarget support for CIX and FIX extentions (the only 2 I care about right now)
Andrew Lenharth [Fri, 30 Sep 2005 20:24:38 +0000 (20:24 +0000)]
subtarget support for CIX and FIX extentions (the only 2 I care about right now)

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

19 years agoReverting change moving to selection dag graph.
Jim Laskey [Fri, 30 Sep 2005 19:33:41 +0000 (19:33 +0000)]
Reverting change moving to selection dag graph.

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

19 years agoAdded allnodes_size for scheduling support.
Jim Laskey [Fri, 30 Sep 2005 19:27:01 +0000 (19:27 +0000)]
Added allnodes_size for scheduling support.

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

19 years ago1. Made things node-centric (from operand).
Jim Laskey [Fri, 30 Sep 2005 19:15:27 +0000 (19:15 +0000)]
1. Made things node-centric (from operand).

2. Added node groups to handle flagged nodes.

3. Started weaning simple scheduling off existing emitter.

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

19 years agoAdd the node name (thus the address) to node label.
Jim Laskey [Fri, 30 Sep 2005 19:11:53 +0000 (19:11 +0000)]
Add the node name (thus the address) to node label.

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

19 years agoRename MRegisterDesc -> TargetRegisterDesc for consistency
Chris Lattner [Fri, 30 Sep 2005 17:49:27 +0000 (17:49 +0000)]
Rename MRegisterDesc -> TargetRegisterDesc for consistency

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

19 years agoUpdate the discussion of TargetRegisterDesc
Chris Lattner [Fri, 30 Sep 2005 17:46:55 +0000 (17:46 +0000)]
Update the discussion of TargetRegisterDesc

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

19 years agoremove some more initializers
Chris Lattner [Fri, 30 Sep 2005 17:41:05 +0000 (17:41 +0000)]
remove some more initializers

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

19 years agotrim down the target info structs now that we have a preferred spill register class...
Chris Lattner [Fri, 30 Sep 2005 17:38:36 +0000 (17:38 +0000)]
trim down the target info structs now that we have a preferred spill register class for each callee save register

Why is V9 maintaining these tables manually? ugh!

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

19 years agotrim down the target info structs now that we have a preferred spill register class...
Chris Lattner [Fri, 30 Sep 2005 17:35:22 +0000 (17:35 +0000)]
trim down the target info structs now that we have a preferred spill register class for each callee save register

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

19 years agonow that we have a reg class to spill with, get this info from the regclass
Chris Lattner [Fri, 30 Sep 2005 17:19:22 +0000 (17:19 +0000)]
now that we have a reg class to spill with, get this info from the regclass

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

19 years agoconstant fold these calls
Chris Lattner [Fri, 30 Sep 2005 17:16:59 +0000 (17:16 +0000)]
constant fold these calls

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

19 years agosimplify this code using the new regclass info passed in
Chris Lattner [Fri, 30 Sep 2005 17:12:38 +0000 (17:12 +0000)]
simplify this code using the new regclass info passed in

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

19 years agoNow that we have getCalleeSaveRegClasses() info, use it to pass the register
Chris Lattner [Fri, 30 Sep 2005 16:59:07 +0000 (16:59 +0000)]
Now that we have getCalleeSaveRegClasses() info, use it to pass the register
class into the spill/reload methods.  Targets can now rely on that argument.

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

19 years agoexpose a new virtual method
Chris Lattner [Fri, 30 Sep 2005 07:06:37 +0000 (07:06 +0000)]
expose a new virtual method

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

19 years agostub out a virtual method
Chris Lattner [Fri, 30 Sep 2005 06:55:18 +0000 (06:55 +0000)]
stub out a virtual method

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

19 years agoCompute a preferred spill register class for each callee-save register
Chris Lattner [Fri, 30 Sep 2005 06:44:45 +0000 (06:44 +0000)]
Compute a preferred spill register class for each callee-save register

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

19 years agoCR registers are not used by this "target"
Chris Lattner [Fri, 30 Sep 2005 06:43:58 +0000 (06:43 +0000)]
CR registers are not used by this "target"

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

19 years agothese registers don't belong to any register classes, so don't mark them
Chris Lattner [Fri, 30 Sep 2005 06:42:24 +0000 (06:42 +0000)]
these registers don't belong to any register classes, so don't mark them
as callee save.  They can never be generated by the compiler.

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

19 years agoFix a warning
Chris Lattner [Fri, 30 Sep 2005 06:09:50 +0000 (06:09 +0000)]
Fix a warning

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

19 years agoRegenerate
Chris Lattner [Fri, 30 Sep 2005 04:53:25 +0000 (04:53 +0000)]
Regenerate

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

19 years agoRefactor this a bit to move ParsingTemplateArgs to only apply to classes,
Chris Lattner [Fri, 30 Sep 2005 04:53:04 +0000 (04:53 +0000)]
Refactor this a bit to move ParsingTemplateArgs to only apply to classes,
not defs.

Implement support for forward definitions of classes.  This implements
TableGen/ForwardRef.td.

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

19 years agoAdd a test that you can forward ref a class.
Chris Lattner [Fri, 30 Sep 2005 04:52:43 +0000 (04:52 +0000)]
Add a test that you can forward ref a class.

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

19 years agoRegenerate
Chris Lattner [Fri, 30 Sep 2005 04:42:56 +0000 (04:42 +0000)]
Regenerate

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

19 years agoGenerate a parse error instead of a checked exception if template args are
Chris Lattner [Fri, 30 Sep 2005 04:42:31 +0000 (04:42 +0000)]
Generate a parse error instead of a checked exception if template args are
used on a def.

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

19 years agoNow that self referential classes are supported, get rid of a work-around.
Chris Lattner [Fri, 30 Sep 2005 04:13:23 +0000 (04:13 +0000)]
Now that self referential classes are supported, get rid of a work-around.

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

19 years agoregenerate
Chris Lattner [Fri, 30 Sep 2005 04:11:27 +0000 (04:11 +0000)]
regenerate

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

19 years agoRefactor the grammar a bit to implement TableGen/ForwardRef.td
Chris Lattner [Fri, 30 Sep 2005 04:10:49 +0000 (04:10 +0000)]
Refactor the grammar a bit to implement TableGen/ForwardRef.td

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

19 years agoCheck that we can refer to the same class we are defining.
Chris Lattner [Fri, 30 Sep 2005 04:10:17 +0000 (04:10 +0000)]
Check that we can refer to the same class we are defining.

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

19 years agoallow regs to be in multiple reg classes
Chris Lattner [Fri, 30 Sep 2005 01:33:48 +0000 (01:33 +0000)]
allow regs to be in multiple reg classes

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

19 years agopass extra args
Chris Lattner [Fri, 30 Sep 2005 01:31:52 +0000 (01:31 +0000)]
pass extra args

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

19 years agothese methods get extra args
Chris Lattner [Fri, 30 Sep 2005 01:30:55 +0000 (01:30 +0000)]
these methods get extra args

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

19 years agoPass extra regclasses into spilling code
Chris Lattner [Fri, 30 Sep 2005 01:29:42 +0000 (01:29 +0000)]
Pass extra regclasses into spilling code

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

19 years agoChange this code ot pass register classes into the stack slot spiller/reloader
Chris Lattner [Fri, 30 Sep 2005 01:29:00 +0000 (01:29 +0000)]
Change this code ot pass register classes into the stack slot spiller/reloader
code.  PrologEpilogInserter hasn't been updated yet though, so targets cannot
use this info.

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

19 years agoChange these methods to take RC's
Chris Lattner [Fri, 30 Sep 2005 01:28:14 +0000 (01:28 +0000)]
Change these methods to take RC's

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

19 years agoUse the 32-bit version for now
Chris Lattner [Fri, 30 Sep 2005 00:05:05 +0000 (00:05 +0000)]
Use the 32-bit version for now

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

19 years agoAdd a bunch of patterns for F64 FP ops, add some more integer ops
Chris Lattner [Thu, 29 Sep 2005 23:34:24 +0000 (23:34 +0000)]
Add a bunch of patterns for F64 FP ops, add some more integer ops

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

19 years agoRemove code for patterns that are autogenerated
Chris Lattner [Thu, 29 Sep 2005 23:33:31 +0000 (23:33 +0000)]
Remove code for patterns that are autogenerated

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

19 years agobegining alpha subtarget support
Andrew Lenharth [Thu, 29 Sep 2005 22:54:56 +0000 (22:54 +0000)]
begining alpha subtarget support

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

19 years agotblgen autogens this pattern now
Chris Lattner [Thu, 29 Sep 2005 22:37:24 +0000 (22:37 +0000)]
tblgen autogens this pattern now

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

19 years agoTeach tablegen to reassociate operators when possible. This allows it to
Chris Lattner [Thu, 29 Sep 2005 22:36:54 +0000 (22:36 +0000)]
Teach tablegen to reassociate operators when possible.  This allows it to
find all of teh pattern matches for EQV from one definition

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

19 years agocopy and paste error
Andrew Lenharth [Thu, 29 Sep 2005 21:11:57 +0000 (21:11 +0000)]
copy and paste error

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

19 years agonow that tblgen is smarter, this pattern is not needed. Also, tblgen
Chris Lattner [Thu, 29 Sep 2005 19:29:15 +0000 (19:29 +0000)]
now that tblgen is smarter, this pattern is not needed.  Also, tblgen
now inverts commuted versions of ANDC/ORC with the current .td file.

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

19 years agoTeach tblgen to build permutations of instructions, so that the target author
Chris Lattner [Thu, 29 Sep 2005 19:28:10 +0000 (19:28 +0000)]
Teach tblgen to build permutations of instructions, so that the target author
doesn't have to specify them manually.  It currently handles associativity,
e.g. knowing that (X*Y)+Z  also matches  X+(Y*Z)  and will be extended in
the future.

It is smart enough to not introduce duplicate patterns or patterns that can
never match.

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

19 years agoInsert stores after phi nodes in the normal dest. This fixes
Chris Lattner [Thu, 29 Sep 2005 17:44:20 +0000 (17:44 +0000)]
Insert stores after phi nodes in the normal dest.  This fixes
LowerInvoke/2005-08-03-InvokeWithPHI.ll

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

19 years agoconsistency with other cases, no functionality change
Chris Lattner [Thu, 29 Sep 2005 17:38:52 +0000 (17:38 +0000)]
consistency with other cases, no functionality change

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

19 years agoMake the JIT default to the DAG isel instead of the pattern isel, like LLC.
Chris Lattner [Thu, 29 Sep 2005 17:31:03 +0000 (17:31 +0000)]
Make the JIT default to the DAG isel instead of the pattern isel, like LLC.
The Pattern isel has some strange memory corruption issues going on. :(

This should have been converted over anyway, but it got forgotten somehow
when switching to the dag isel.

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

19 years agoFix two bugs in my patch earlier today that broke int->fp conversion on X86.
Chris Lattner [Thu, 29 Sep 2005 06:44:39 +0000 (06:44 +0000)]
Fix two bugs in my patch earlier today that broke int->fp conversion on X86.

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

19 years agoFold isascii into a simple comparison. This speeds up 197.parser by 7.4%,
Chris Lattner [Thu, 29 Sep 2005 06:17:27 +0000 (06:17 +0000)]
Fold isascii into a simple comparison.  This speeds up 197.parser by 7.4%,
bringing the LLC time down to the CBE time.

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

19 years agonew testcase for isascii
Chris Lattner [Thu, 29 Sep 2005 06:16:37 +0000 (06:16 +0000)]
new testcase for isascii

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

19 years agoremove a bunch of unneeded stuff, or self evident comments
Chris Lattner [Thu, 29 Sep 2005 06:16:11 +0000 (06:16 +0000)]
remove a bunch of unneeded stuff, or self evident comments

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

19 years agoadd a new testcase
Chris Lattner [Thu, 29 Sep 2005 06:11:34 +0000 (06:11 +0000)]
add a new testcase

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

19 years agoImplement a couple of memcmp folds from the todo list
Chris Lattner [Thu, 29 Sep 2005 04:54:20 +0000 (04:54 +0000)]
Implement a couple of memcmp folds from the todo list

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

19 years agoSilence VC++ redeclaration warnings.
Jeff Cohen [Thu, 29 Sep 2005 01:59:49 +0000 (01:59 +0000)]
Silence VC++ redeclaration warnings.

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

19 years agoNever rely on ReplaceAllUsesWith when selecting, use CodeGenMap instead.
Chris Lattner [Thu, 29 Sep 2005 00:59:32 +0000 (00:59 +0000)]
Never rely on ReplaceAllUsesWith when selecting, use CodeGenMap instead.
ReplaceAllUsesWith does not replace scalars SDOperand floating around on
the stack, permitting things to be selected multiple times.

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

19 years agoCodegen ADD X, IMM -> addis/addi if needed.
Chris Lattner [Wed, 28 Sep 2005 23:07:13 +0000 (23:07 +0000)]
Codegen ADD X, IMM -> addis/addi if needed.
This implements PowerPC/fold-li.ll

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

19 years agoadd a testcase for a feature we regressed on because noone wrote the test! :(
Chris Lattner [Wed, 28 Sep 2005 23:03:11 +0000 (23:03 +0000)]
add a testcase for a feature we regressed on because noone wrote the test! :(

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

19 years agoAutogen MUL, move FP cases together
Chris Lattner [Wed, 28 Sep 2005 22:53:16 +0000 (22:53 +0000)]
Autogen MUL, move FP cases together

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

19 years agodisentangle FP from INT versions of div/mul
Chris Lattner [Wed, 28 Sep 2005 22:50:24 +0000 (22:50 +0000)]
disentangle FP from INT versions of div/mul

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

19 years agoUse the autogenerated matcher for ADD/SUB
Chris Lattner [Wed, 28 Sep 2005 22:47:28 +0000 (22:47 +0000)]
Use the autogenerated matcher for ADD/SUB

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

19 years agoadd a patter for SUBFIC
Chris Lattner [Wed, 28 Sep 2005 22:47:06 +0000 (22:47 +0000)]
add a patter for SUBFIC

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

19 years agoMark int binops as int-only, add FP binops. Mark FADD/FMUL as commutative but
Chris Lattner [Wed, 28 Sep 2005 22:38:27 +0000 (22:38 +0000)]
Mark int binops as int-only, add FP binops.  Mark FADD/FMUL as commutative but
not associative.  Add [SU]REM.

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

19 years agowrap a long line
Chris Lattner [Wed, 28 Sep 2005 22:30:58 +0000 (22:30 +0000)]
wrap a long line

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

19 years agoAdd FP versions of the binary operators, keeping the int and fp worlds seperate.
Chris Lattner [Wed, 28 Sep 2005 22:29:58 +0000 (22:29 +0000)]
Add FP versions of the binary operators, keeping the int and fp worlds seperate.

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

19 years agoAdd FP versions of the binary operators, keeping the int and fp worlds seperate.
Chris Lattner [Wed, 28 Sep 2005 22:29:17 +0000 (22:29 +0000)]
Add FP versions of the binary operators, keeping the int and fp worlds seperate.
Though I have done extensive testing, it is possible that this will break
things in configs I can't test.  Please let me know if this causes a problem
and I'll fix it ASAP.

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

19 years agoAdd FP versions of the binary operators, keeping the int and fp worlds seperate.
Chris Lattner [Wed, 28 Sep 2005 22:28:18 +0000 (22:28 +0000)]
Add FP versions of the binary operators, keeping the int and fp worlds seperate.

Though I have done extensive testing, it is possible that this will break
things in configs I can't test.  Please let me know if this causes a problem
and I'll fix it ASAP.

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

19 years agoMark associative nodes as associative
Chris Lattner [Wed, 28 Sep 2005 20:58:39 +0000 (20:58 +0000)]
Mark associative nodes as associative

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

19 years agoadd support for an associative marker
Chris Lattner [Wed, 28 Sep 2005 20:58:06 +0000 (20:58 +0000)]
add support for an associative marker

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