oota-llvm.git
18 years agonew testcase from a FIXME in the code
Chris Lattner [Tue, 14 Mar 2006 08:13:09 +0000 (08:13 +0000)]
new testcase from a FIXME in the code

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

18 years agoextract some code into a method, no functionality change
Chris Lattner [Tue, 14 Mar 2006 07:11:11 +0000 (07:11 +0000)]
extract some code into a method, no functionality change

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

18 years agotransformation implemented
Chris Lattner [Tue, 14 Mar 2006 06:57:34 +0000 (06:57 +0000)]
transformation implemented

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

18 years agoPromote shifts by a constant to multiplies so that we can reassociate
Chris Lattner [Tue, 14 Mar 2006 06:55:18 +0000 (06:55 +0000)]
Promote shifts by a constant to multiplies so that we can reassociate
(x<<1)+(y<<1) -> (X+Y)<<1.  This implements
Transforms/Reassociate/shift-factor.ll

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

18 years agoTest that we can reassociate (x<<1)+(y<<1) -> (X+Y)<<1.
Chris Lattner [Tue, 14 Mar 2006 06:54:32 +0000 (06:54 +0000)]
Test that we can reassociate (x<<1)+(y<<1) -> (X+Y)<<1.

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

18 years agoAllow a sequence of digits at the end of the directory name when trying to
Reid Spencer [Tue, 14 Mar 2006 06:08:05 +0000 (06:08 +0000)]
Allow a sequence of digits at the end of the directory name when trying to
determine the top directory. This allows the tool to find the correct top
directory when you have something like:

   /x/llvm
   /x/llvm2
   /x/llvm3

Previously the scripts would always find /x/llvm even if you were in the
llvm2 or llvm3 directory because the pattern didn't allow the digits at
the end of the path.

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

18 years agoChange llvm.cs.uiuc.edu -> llvm.org
Reid Spencer [Tue, 14 Mar 2006 06:05:05 +0000 (06:05 +0000)]
Change llvm.cs.uiuc.edu -> llvm.org

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

18 years agoAdd a newline at the end to avoid gcc warnings.
Reid Spencer [Tue, 14 Mar 2006 05:59:52 +0000 (05:59 +0000)]
Add a newline at the end to avoid gcc warnings.

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

18 years agoConvert llvm.cs.uiuc.edu -> llvm.org
Reid Spencer [Tue, 14 Mar 2006 05:54:52 +0000 (05:54 +0000)]
Convert llvm.cs.uiuc.edu -> llvm.org

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

18 years agoChange docs for llvm.cs.uiuc.edu -> llvm.org
Reid Spencer [Tue, 14 Mar 2006 05:42:07 +0000 (05:42 +0000)]
Change docs for llvm.cs.uiuc.edu -> llvm.org

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

18 years agoChanges docs for llvm.cs.uiuc.edu -> llvm.org
Reid Spencer [Tue, 14 Mar 2006 05:39:39 +0000 (05:39 +0000)]
Changes docs for llvm.cs.uiuc.edu -> llvm.org

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

18 years ago1. Handle removal of all arguments for a morphed intrinsic.
Jim Laskey [Tue, 14 Mar 2006 02:00:35 +0000 (02:00 +0000)]
1. Handle removal of all arguments for a morphed intrinsic.
2. Remove the declaration of llvm.dbg.declare.

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

18 years agoRemove the use of llvm.dbg.declare.
Jim Laskey [Tue, 14 Mar 2006 01:53:11 +0000 (01:53 +0000)]
Remove the use of llvm.dbg.declare.

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

18 years agoPPC LSR pass should use target lowering hooks.
Evan Cheng [Mon, 13 Mar 2006 23:56:51 +0000 (23:56 +0000)]
PPC LSR pass should use target lowering hooks.

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

18 years agoAdded getTargetLowering() to TargetMachine. Refactored targets to support this.
Evan Cheng [Mon, 13 Mar 2006 23:20:37 +0000 (23:20 +0000)]
Added getTargetLowering() to TargetMachine. Refactored targets to support this.

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

18 years agoUpdate
Evan Cheng [Mon, 13 Mar 2006 23:19:10 +0000 (23:19 +0000)]
Update

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

18 years agoAdd LSR hooks.
Evan Cheng [Mon, 13 Mar 2006 23:18:16 +0000 (23:18 +0000)]
Add LSR hooks.

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

18 years agoAdded getTargetLowering() - returns DAG lowering info.
Evan Cheng [Mon, 13 Mar 2006 23:17:42 +0000 (23:17 +0000)]
Added getTargetLowering() - returns DAG lowering info.

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

18 years agoAdded target lowering hooks which LSR consults to make more intelligent
Evan Cheng [Mon, 13 Mar 2006 23:14:23 +0000 (23:14 +0000)]
Added target lowering hooks which LSR consults to make more intelligent
transformation decisions.

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

18 years agoHandle builtins that directly correspond to GCC builtins.
Chris Lattner [Mon, 13 Mar 2006 23:09:05 +0000 (23:09 +0000)]
Handle builtins that directly correspond to GCC builtins.

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

18 years agoemit a mapping from LLVM intrinsic -> GCC builtins.
Chris Lattner [Mon, 13 Mar 2006 23:08:44 +0000 (23:08 +0000)]
emit a mapping from LLVM intrinsic -> GCC builtins.

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

18 years agoVerify that packed type operands have the right size and base type.
Chris Lattner [Mon, 13 Mar 2006 22:38:57 +0000 (22:38 +0000)]
Verify that packed type operands have the right size and base type.

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

18 years agoAdd a first ppc altivec intrinsic. Add packed type support.
Chris Lattner [Mon, 13 Mar 2006 22:38:32 +0000 (22:38 +0000)]
Add a first ppc altivec intrinsic.  Add packed type support.

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

18 years agoFor functions that use vector registers, save VRSAVE, mark used
Chris Lattner [Mon, 13 Mar 2006 21:52:10 +0000 (21:52 +0000)]
For functions that use vector registers, save VRSAVE, mark used
registers, and update it on entry to each function, then restore it on exit.

This compiles:

void func(vfloat *a, vfloat *b, vfloat *c) {
        *a = *b * *c + *c;
}

to this:

_func:
        mfspr r2, 256
        oris r6, r2, 49152
        mtspr 256, r6
        lvx v0, 0, r5
        lvx v1, 0, r4
        vmaddfp v0, v1, v0, v0
        stvx v0, 0, r3
        mtspr 256, r2
        blr

GCC produces this (which has additional stack accesses):

_func:
        mfspr r0,256
        stw r0,-4(r1)
        oris r0,r0,0xc000
        mtspr 256,r0
        lvx v0,0,r5
        lvx v1,0,r4
        lwz r12,-4(r1)
        vmaddfp v0,v0,v1,v0
        stvx v0,0,r3
        mtspr 256,r12
        blr

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

18 years agoOptimizing to calloc() to malloc() + memset() can be bad on some platforms.
Evan Cheng [Mon, 13 Mar 2006 21:22:43 +0000 (21:22 +0000)]
Optimizing to calloc() to malloc() + memset() can be bad on some platforms.

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

18 years agomake sure dead token factor nodes are removed by the dag combiner.
Chris Lattner [Mon, 13 Mar 2006 18:37:30 +0000 (18:37 +0000)]
make sure dead token factor nodes are removed by the dag combiner.

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

18 years agoBring makefile back into compliance with standard by using
Reid Spencer [Mon, 13 Mar 2006 17:57:31 +0000 (17:57 +0000)]
Bring makefile back into compliance with standard by using
$(Echo) instead of @echo

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

18 years agoHandle the removal of the debug chain.
Jim Laskey [Mon, 13 Mar 2006 13:07:37 +0000 (13:07 +0000)]
Handle the removal of the debug chain.

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

18 years agoremove two implemented items
Chris Lattner [Mon, 13 Mar 2006 06:52:22 +0000 (06:52 +0000)]
remove two implemented items

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

18 years agoFold X+Y -> X|Y when safe. This implements:
Chris Lattner [Mon, 13 Mar 2006 06:51:27 +0000 (06:51 +0000)]
Fold X+Y -> X|Y when safe.  This implements:
Regression/CodeGen/PowerPC/and_add.ll

a case that occurs with dynamic allocas of constant size.

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

18 years agonew testcase
Chris Lattner [Mon, 13 Mar 2006 06:50:47 +0000 (06:50 +0000)]
new testcase

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

18 years agoI can't convince myself that this is safe, remove the recursive call.
Chris Lattner [Mon, 13 Mar 2006 06:42:16 +0000 (06:42 +0000)]
I can't convince myself that this is safe, remove the recursive call.

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

18 years agoadd a couple of missing folds
Chris Lattner [Mon, 13 Mar 2006 06:26:26 +0000 (06:26 +0000)]
add a couple of missing folds

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

18 years agoFor targets with FABS/FNEG support, lower copysign to an integer load,
Chris Lattner [Mon, 13 Mar 2006 06:08:38 +0000 (06:08 +0000)]
For targets with FABS/FNEG support, lower copysign to an integer load,
a select and FABS/FNEG.

This speeds up a trivial (aka stupid) copysign benchmark I wrote from 6.73s
to 2.64s, woo.

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

18 years agoFix a couple of bugs that broke the alpha tester build
Chris Lattner [Mon, 13 Mar 2006 05:23:59 +0000 (05:23 +0000)]
Fix a couple of bugs that broke the alpha tester build

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

18 years agoHandle cracked instructions in dispatch group formation.
Chris Lattner [Mon, 13 Mar 2006 05:20:04 +0000 (05:20 +0000)]
Handle cracked instructions in dispatch group formation.

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

18 years agoMark instructions that are cracked by the PPC970 decoder as such.
Chris Lattner [Mon, 13 Mar 2006 05:15:10 +0000 (05:15 +0000)]
Mark instructions that are cracked by the PPC970 decoder as such.

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

18 years agoSeveral big changes:
Chris Lattner [Sun, 12 Mar 2006 09:13:49 +0000 (09:13 +0000)]
Several big changes:
1. Use flags on the instructions in the .td file to indicate the PPC970 unit
   type instead of a table in the .cpp file.  Much cleaner.
2. Change the hazard recognizer to build d-groups according to the actual
   algorithm used, not my flawed understanding of it.
3. Model "must be in the first slot" and "must be the only instr in a group"
   accurately.

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

18 years agoDon't advance the hazard recognizer when there are no hazards and no instructions
Chris Lattner [Sun, 12 Mar 2006 09:01:41 +0000 (09:01 +0000)]
Don't advance the hazard recognizer when there are no hazards and no instructions
to be emitted.

Don't add one to the latency of a completed instruction if the latency of the
op is 0.

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

18 years agoChain operands aren't real uses: they don't require the full latency of the
Chris Lattner [Sun, 12 Mar 2006 03:52:09 +0000 (03:52 +0000)]
Chain operands aren't real uses: they don't require the full latency of the
predecessor to finish before they can start.

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

18 years agoAs a pending queue data structure to keep track of instructions whose
Chris Lattner [Sun, 12 Mar 2006 00:38:57 +0000 (00:38 +0000)]
As a pending queue data structure to keep track of instructions whose
operands have all issued, but whose results are not yet available.  This
allows us to compile:

int G;
int test(int A, int B, int* P) {
   return (G+A)*(B+1);
}

to:

_test:
        lis r2, ha16(L_G$non_lazy_ptr)
        addi r4, r4, 1
        lwz r2, lo16(L_G$non_lazy_ptr)(r2)
        lwz r2, 0(r2)
        add r2, r2, r3
        mullw r3, r2, r4
        blr

instead of this, which has a stall between the lis/lwz:

_test:
        lis r2, ha16(L_G$non_lazy_ptr)
        lwz r2, lo16(L_G$non_lazy_ptr)(r2)
        addi r4, r4, 1
        lwz r2, 0(r2)
        add r2, r2, r3
        mullw r3, r2, r4
        blr

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

18 years agoMark llvm.stacksave as only reading memory, this fixes
Chris Lattner [Sun, 12 Mar 2006 00:04:28 +0000 (00:04 +0000)]
Mark llvm.stacksave as only reading memory, this fixes
Regression/Transforms/InstCombine/stacksaverestore.ll

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

18 years agorename priorityqueue -> availablequeue. When a node is scheduled, remember
Chris Lattner [Sat, 11 Mar 2006 22:44:37 +0000 (22:44 +0000)]
rename priorityqueue -> availablequeue.  When a node is scheduled, remember
which cycle it lands on.

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

18 years agoMake CurrCycle a local var instead of an instance var
Chris Lattner [Sat, 11 Mar 2006 22:34:41 +0000 (22:34 +0000)]
Make CurrCycle a local var instead of an instance var

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

18 years agoMove some methods around so that BU specific code is together, TD specific code
Chris Lattner [Sat, 11 Mar 2006 22:28:35 +0000 (22:28 +0000)]
Move some methods around so that BU specific code is together, TD specific code
is together, and direction independent code is together.

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

18 years agomerge preds/chainpreds -> preds set
Chris Lattner [Sat, 11 Mar 2006 22:24:20 +0000 (22:24 +0000)]
merge preds/chainpreds -> preds set
merge succs/chainsuccs -> succs set

This has no functionality change, simplifies the code, and reduces the size
of sunits.

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

18 years agoblr is a branch too
Chris Lattner [Sat, 11 Mar 2006 21:49:49 +0000 (21:49 +0000)]
blr is a branch too

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

18 years agoadd an example
Chris Lattner [Sat, 11 Mar 2006 20:20:40 +0000 (20:20 +0000)]
add an example

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

18 years agoadd a note
Chris Lattner [Sat, 11 Mar 2006 20:17:08 +0000 (20:17 +0000)]
add a note

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

18 years agoFix PR681 by using the standard Lengauer and Tarjan algorithm for dominator
Nate Begeman [Sat, 11 Mar 2006 02:20:46 +0000 (02:20 +0000)]
Fix PR681 by using the standard Lengauer and Tarjan algorithm for dominator
set construction, rather than intersecting various std::sets.  This reduces
the memory usage for the testcase in PR681 from 496 to 26MB of ram on my
darwin system, and reduces the runtime from 32.8 to 0.8 seconds on a
2.5GHz G5.  This also enables future code sharing between Dom and PostDom
now that they share near-identical implementations.

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

18 years agofix pasto in generate assertion msg
Chris Lattner [Sat, 11 Mar 2006 00:20:47 +0000 (00:20 +0000)]
fix pasto in generate assertion msg

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

18 years agoDoh!
Evan Cheng [Sat, 11 Mar 2006 00:13:10 +0000 (00:13 +0000)]
Doh!

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

18 years agoAdded a parameter to control whether Constant::getStringValue() would chop
Evan Cheng [Fri, 10 Mar 2006 23:52:03 +0000 (23:52 +0000)]
Added a parameter to control whether Constant::getStringValue() would chop
off the result string at the first null terminator.

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

18 years agoremove some dead code
Chris Lattner [Fri, 10 Mar 2006 23:14:22 +0000 (23:14 +0000)]
remove some dead code

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

18 years agoremove ShouldEmitDebugFunctions, a hack to support llvm-db via the jit
Chris Lattner [Fri, 10 Mar 2006 22:49:05 +0000 (22:49 +0000)]
remove ShouldEmitDebugFunctions, a hack to support llvm-db via the jit

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

18 years agoscrape out bits of llvm-db
Chris Lattner [Fri, 10 Mar 2006 22:48:19 +0000 (22:48 +0000)]
scrape out bits of llvm-db

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

18 years agoRemove UnixLocalInferiorProcess: debugging via the JIT isn't a good idea.
Chris Lattner [Fri, 10 Mar 2006 22:39:48 +0000 (22:39 +0000)]
Remove UnixLocalInferiorProcess: debugging via the JIT isn't a good idea.

Perhaps llvm-db will turn into a read debugger someday.

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

18 years agoSimplify this testcase
Chris Lattner [Fri, 10 Mar 2006 22:32:18 +0000 (22:32 +0000)]
Simplify this testcase

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

18 years agoreorder these to make it work with static libraries
Chris Lattner [Fri, 10 Mar 2006 21:01:34 +0000 (21:01 +0000)]
reorder these to make it work with static libraries

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

18 years agoteach the JIT to encode vector registers
Chris Lattner [Fri, 10 Mar 2006 20:19:50 +0000 (20:19 +0000)]
teach the JIT to encode vector registers

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

18 years agoFix another broken intrinsic.
Chris Lattner [Fri, 10 Mar 2006 18:01:03 +0000 (18:01 +0000)]
Fix another broken intrinsic.

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

18 years agoweak globals on darwin require an extra load, breaking this test
Chris Lattner [Fri, 10 Mar 2006 17:55:10 +0000 (17:55 +0000)]
weak globals on darwin require an extra load, breaking this test

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

18 years agoFix incorrect definitions of these intrinsics, which broke a bunch of
Chris Lattner [Fri, 10 Mar 2006 17:48:34 +0000 (17:48 +0000)]
Fix incorrect definitions of these intrinsics, which broke a bunch of
stuff last night.

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

18 years agoMove simple-selector-specific types to the simple selector.
Chris Lattner [Fri, 10 Mar 2006 07:51:18 +0000 (07:51 +0000)]
Move simple-selector-specific types to the simple selector.

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

18 years agoSimplify the interface to the schedulers, to not pass the selected heuristicin.
Chris Lattner [Fri, 10 Mar 2006 07:49:12 +0000 (07:49 +0000)]
Simplify the interface to the schedulers, to not pass the selected heuristicin.

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

18 years agoSimplify the interface to the schedulers, to not pass the selected heuristic
Chris Lattner [Fri, 10 Mar 2006 07:48:52 +0000 (07:48 +0000)]
Simplify the interface to the schedulers, to not pass the selected heuristic
in.

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

18 years agoMove some simple-sched-specific instance vars to the simple scheduler.
Chris Lattner [Fri, 10 Mar 2006 07:42:02 +0000 (07:42 +0000)]
Move some simple-sched-specific instance vars to the simple scheduler.

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

18 years agoprune #includes
Chris Lattner [Fri, 10 Mar 2006 07:37:35 +0000 (07:37 +0000)]
prune #includes

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

18 years agomove some simple scheduler methods into the simple scheduler
Chris Lattner [Fri, 10 Mar 2006 07:35:21 +0000 (07:35 +0000)]
move some simple scheduler methods into the simple scheduler

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

18 years agoMake EmitNode take a SDNode instead of a NodeInfo*
Chris Lattner [Fri, 10 Mar 2006 07:28:36 +0000 (07:28 +0000)]
Make EmitNode take a SDNode instead of a NodeInfo*

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

18 years agoMove the VRBase field from NodeInfo to being a separate, explicit, map.
Chris Lattner [Fri, 10 Mar 2006 07:25:12 +0000 (07:25 +0000)]
Move the VRBase field from NodeInfo to being a separate, explicit, map.

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

18 years agoStore VRBase in a map, not in NodeInfo.
Chris Lattner [Fri, 10 Mar 2006 07:24:45 +0000 (07:24 +0000)]
Store VRBase in a map, not in NodeInfo.

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

18 years agono need to build groups anymore
Chris Lattner [Fri, 10 Mar 2006 07:15:58 +0000 (07:15 +0000)]
no need to build groups anymore

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

18 years agoCreate SUnits directly from the SelectionDAG.
Chris Lattner [Fri, 10 Mar 2006 07:13:32 +0000 (07:13 +0000)]
Create SUnits directly from the SelectionDAG.

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

18 years agoPush PrepareNodeInfo/IdentifyGroups down the inheritance hierarchy
Chris Lattner [Fri, 10 Mar 2006 06:34:51 +0000 (06:34 +0000)]
Push PrepareNodeInfo/IdentifyGroups down the inheritance hierarchy

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

18 years agomake some methods protected instead of private
Chris Lattner [Fri, 10 Mar 2006 06:30:11 +0000 (06:30 +0000)]
make some methods protected instead of private

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

18 years agoTeach the latency scheduler some new tricks. In particular, to break ties,
Chris Lattner [Fri, 10 Mar 2006 05:51:05 +0000 (05:51 +0000)]
Teach the latency scheduler some new tricks.  In particular, to break ties,
keep track of a sense of "mobility", i.e. how many other nodes scheduling one
node will free up.  For something like this:

float testadd(float *X, float *Y, float *Z, float *W, float *V) {
  return (*X+*Y)*(*Z+*W)+*V;
}

For example, this makes us schedule *X then *Y, not *X then *Z.  The former
allows us to issue the add, the later only lets us issue other loads.

This turns the above code from this:

_testadd:
        lfs f0, 0(r3)
        lfs f1, 0(r6)
        lfs f2, 0(r4)
        lfs f3, 0(r5)
        fadds f0, f0, f2
        fadds f1, f3, f1
        lfs f2, 0(r7)
        fmadds f1, f0, f1, f2
        blr

into this:

_testadd:
        lfs f0, 0(r6)
        lfs f1, 0(r5)
        fadds f0, f1, f0
        lfs f1, 0(r4)
        lfs f2, 0(r3)
        fadds f1, f2, f1
        lfs f2, 0(r7)
        fmadds f1, f1, f0, f2
        blr

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

18 years agoPut intrinsics.gen in its proper place.
Jeff Cohen [Fri, 10 Mar 2006 04:36:01 +0000 (04:36 +0000)]
Put intrinsics.gen in its proper place.

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

18 years agoadd an aggregate method for reinserting scheduled nodes, add a callback for
Chris Lattner [Fri, 10 Mar 2006 04:32:49 +0000 (04:32 +0000)]
add an aggregate method for reinserting scheduled nodes, add a callback for
priority impls that want to be notified when a node is scheduled

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

18 years agoFix an incorrect intrinsic description
Chris Lattner [Fri, 10 Mar 2006 04:17:06 +0000 (04:17 +0000)]
Fix an incorrect intrinsic description

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

18 years agoFix VC++ build breakage.
Jeff Cohen [Fri, 10 Mar 2006 03:57:45 +0000 (03:57 +0000)]
Fix VC++ build breakage.

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

18 years agoAdding an intrinsic is simpler still.
Chris Lattner [Thu, 9 Mar 2006 22:38:42 +0000 (22:38 +0000)]
Adding an intrinsic is simpler still.

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

18 years agouse autogenerated side-effect information
Chris Lattner [Thu, 9 Mar 2006 22:38:10 +0000 (22:38 +0000)]
use autogenerated side-effect information

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

18 years agogenerate side-effect info
Chris Lattner [Thu, 9 Mar 2006 22:37:52 +0000 (22:37 +0000)]
generate side-effect info

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

18 years agoSimpler still
Chris Lattner [Thu, 9 Mar 2006 22:32:16 +0000 (22:32 +0000)]
Simpler still

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

18 years agoUse autogenerated mod/ref info for intrinsics.
Chris Lattner [Thu, 9 Mar 2006 22:31:29 +0000 (22:31 +0000)]
Use autogenerated mod/ref info for intrinsics.

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

18 years agoParse mod/ref properties, autogen mod/ref information
Chris Lattner [Thu, 9 Mar 2006 22:30:49 +0000 (22:30 +0000)]
Parse mod/ref properties, autogen mod/ref information

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

18 years agoIntrinsic adding is a little bit simpler now
Chris Lattner [Thu, 9 Mar 2006 22:07:39 +0000 (22:07 +0000)]
Intrinsic adding is a little bit simpler now

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

18 years agoUse the autogenerated intrinsic verifier
Chris Lattner [Thu, 9 Mar 2006 22:06:04 +0000 (22:06 +0000)]
Use the autogenerated intrinsic verifier

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

18 years agoparse intrinsic types
Chris Lattner [Thu, 9 Mar 2006 22:05:04 +0000 (22:05 +0000)]
parse intrinsic types
autogenerate an intrinsic verifier

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

18 years agoAdd option -enable-x86-lsr to enable x86 loop strength reduction pass.
Evan Cheng [Thu, 9 Mar 2006 21:51:28 +0000 (21:51 +0000)]
Add option -enable-x86-lsr to enable x86 loop strength reduction pass.

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

18 years agoUse the function name matcher autogenerated from the .td file.
Chris Lattner [Thu, 9 Mar 2006 20:35:01 +0000 (20:35 +0000)]
Use the function name matcher autogenerated from the .td file.

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

18 years agoautogenerate the function name recognizer
Chris Lattner [Thu, 9 Mar 2006 20:34:19 +0000 (20:34 +0000)]
autogenerate the function name recognizer

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

18 years agoThis rule also depends on tblgen
Chris Lattner [Thu, 9 Mar 2006 20:29:41 +0000 (20:29 +0000)]
This rule also depends on tblgen

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

18 years agoadd a note
Chris Lattner [Thu, 9 Mar 2006 20:13:21 +0000 (20:13 +0000)]
add a note

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

18 years agouse the enum list autogen'd from Intrinsics.td
Chris Lattner [Thu, 9 Mar 2006 20:03:31 +0000 (20:03 +0000)]
use the enum list autogen'd from Intrinsics.td

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

18 years agoremove dbg_declare, it's not used yet.
Chris Lattner [Thu, 9 Mar 2006 20:02:42 +0000 (20:02 +0000)]
remove dbg_declare, it's not used yet.

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

18 years agosilly case insensitive file systems...
Chris Lattner [Thu, 9 Mar 2006 19:55:06 +0000 (19:55 +0000)]
silly case insensitive file systems...

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

18 years agoBuild intrinsics.gen from intrinsics.td
Chris Lattner [Thu, 9 Mar 2006 19:53:27 +0000 (19:53 +0000)]
Build intrinsics.gen from intrinsics.td

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

18 years agoAdd a test case for (store (op (load ..) ..) ..) folding.
Evan Cheng [Thu, 9 Mar 2006 19:04:30 +0000 (19:04 +0000)]
Add a test case for (store (op (load ..) ..) ..) folding.

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