Chris Lattner
7593639df6
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
2006-03-10 07:24:45 +00:00
Chris Lattner
8d41651da7
no need to build groups anymore
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26684 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 07:15:58 +00:00
Chris Lattner
b2042e31a7
Create SUnits directly from the SelectionDAG.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26683 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 07:13:32 +00:00
Chris Lattner
be24e5996c
Push PrepareNodeInfo/IdentifyGroups down the inheritance hierarchy
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26682 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 06:34:51 +00:00
Chris Lattner
de76851d42
make some methods protected instead of private
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26681 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 06:30:11 +00:00
Chris Lattner
da4ff69153
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
2006-03-10 05:51:05 +00:00
Jeff Cohen
a72047cc0a
Put intrinsics.gen in its proper place.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26679 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 04:36:01 +00:00
Chris Lattner
f83a47d905
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
2006-03-10 04:32:49 +00:00
Chris Lattner
d144a24d3d
Fix an incorrect intrinsic description
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26677 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 04:17:06 +00:00
Jeff Cohen
9630d271c5
Fix VC++ build breakage.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26676 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 03:57:45 +00:00
Chris Lattner
f3ad36c2a0
Adding an intrinsic is simpler still.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26674 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 22:38:42 +00:00
Chris Lattner
aeebe7f208
use autogenerated side-effect information
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26673 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 22:38:10 +00:00
Chris Lattner
4e5f35973c
generate side-effect info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26672 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 22:37:52 +00:00
Chris Lattner
06383e948f
Simpler still
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26671 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 22:32:16 +00:00
Chris Lattner
cad25379d3
Use autogenerated mod/ref info for intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26670 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 22:31:29 +00:00
Chris Lattner
6448ee44c6
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
2006-03-09 22:30:49 +00:00
Chris Lattner
c92dba26bf
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
2006-03-09 22:07:39 +00:00
Chris Lattner
3b816b7aa7
Use the autogenerated intrinsic verifier
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26667 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 22:06:04 +00:00
Chris Lattner
f97a00e681
parse intrinsic types
...
autogenerate an intrinsic verifier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26666 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 22:05:04 +00:00
Evan Cheng
627fb57e19
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
2006-03-09 21:51:28 +00:00
Chris Lattner
9a016ff284
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
2006-03-09 20:35:01 +00:00
Chris Lattner
9b843b2494
autogenerate the function name recognizer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26663 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 20:34:19 +00:00
Chris Lattner
80c2c9224f
This rule also depends on tblgen
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26662 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 20:29:41 +00:00
Chris Lattner
82c78b2f7e
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26661 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 20:13:21 +00:00
Chris Lattner
68b67ff3db
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
2006-03-09 20:03:31 +00:00
Chris Lattner
59bcce5ae5
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
2006-03-09 20:02:42 +00:00
Chris Lattner
8a5343989b
silly case insensitive file systems...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26658 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 19:55:06 +00:00
Chris Lattner
5c1c0cb2ac
Build intrinsics.gen from intrinsics.td
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26657 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 19:53:27 +00:00
Evan Cheng
e9eded1c25
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
2006-03-09 19:04:30 +00:00
Chris Lattner
f083839425
Update these tests (which use autoupgrade) to run constprop and check
...
that the file parses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26655 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 18:43:07 +00:00
Chris Lattner
a758b8250d
autoupgrade memcpy/memmove/memset with signed counts.
...
CVS: ----------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26654 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 18:42:10 +00:00
Andrew Lenharth
ddc877ccae
these are copies too
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26653 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 18:18:51 +00:00
Chris Lattner
79cdfa3ee2
remove some now-dead code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26652 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 18:07:49 +00:00
Andrew Lenharth
e5b71d0715
fcopysign for mixed mode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26651 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 17:56:33 +00:00
Chris Lattner
2695de410d
back out my previous hack
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26650 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 17:48:46 +00:00
Andrew Lenharth
d26b8f97c4
relax fcopysign
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26649 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 17:47:22 +00:00
Andrew Lenharth
283f22275a
alpha and llvm have different oppinions on which arg is the sign bit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26647 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 17:41:50 +00:00
Chris Lattner
8c84f3f0df
remove temporary option
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26646 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 17:31:22 +00:00
Jim Laskey
62e15a3c03
Forgot this on last check in.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26645 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 17:30:53 +00:00
Andrew Lenharth
017c556efc
Alpha Scheduling classes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26643 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 17:16:45 +00:00
Chris Lattner
8bf586f305
temporary hack to get the build working again, apparently a header
...
commit was forgotten
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26642 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 17:11:08 +00:00
Andrew Lenharth
13beebb25b
fcopysign and get rid of dsnode cruft. custom PA runtimes make this better in some senses
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26641 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 14:58:25 +00:00
Andrew Lenharth
97d74aac35
fcopysign support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26640 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 14:57:36 +00:00
Jim Laskey
54689c2bee
Move bit field endianness to backend.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26639 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 13:28:47 +00:00
Evan Cheng
ed66e855ec
Temporary hack to enable more (store (op (load ...))) folding. This makes
...
it possible when a TokenFactor is between the load and store. But is still
missing some cases due to ordering issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26638 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 08:19:11 +00:00
Chris Lattner
571340633f
yes yes, enabled debug output is bad
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26637 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 07:39:25 +00:00
Chris Lattner
6a4b70bbcf
switch the t-d scheduler to use a really dumb and trivial critical path
...
latency priority function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26636 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 07:38:27 +00:00
Chris Lattner
477ef6d8cb
Pull latency information for target instructions out of the latency tables. :)
...
Only enable this with -use-sched-latencies, I'll enable it by default with a
clean nightly tester run tonight.
PPC is the only target that provides latency info currently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26634 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 07:15:18 +00:00
Chris Lattner
e70f671b97
don't copy all itinerary data
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26633 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 07:13:00 +00:00
Chris Lattner
0324ba8f02
PriorityQueue is an instance var, use it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26632 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 06:48:37 +00:00