Chris Lattner
9995a0c019
Move some methods around so that BU specific code is together, TD specific code
...
is together, and direction independent code is together.
llvm-svn: 26712
2006-03-11 22:28:35 +00:00
Chris Lattner
578d8fcb59
merge preds/chainpreds -> preds set
...
merge succs/chainsuccs -> succs set
This has no functionality change, simplifies the code, and reduces the size
of sunits.
llvm-svn: 26711
2006-03-11 22:24:20 +00:00
Chris Lattner
d03132a409
blr is a branch too
...
llvm-svn: 26710
2006-03-11 21:49:49 +00:00
Chris Lattner
4e56b686f1
add an example
...
llvm-svn: 26709
2006-03-11 20:20:40 +00:00
Chris Lattner
003f633036
add a note
...
llvm-svn: 26708
2006-03-11 20:17:08 +00:00
Nate Begeman
d5811b965d
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.
llvm-svn: 26707
2006-03-11 02:20:46 +00:00
Evan Cheng
2c5e530430
Doh!
...
llvm-svn: 26705
2006-03-11 00:13:10 +00:00
Evan Cheng
38280c0020
Added a parameter to control whether Constant::getStringValue() would chop
...
off the result string at the first null terminator.
llvm-svn: 26704
2006-03-10 23:52:03 +00:00
Chris Lattner
8a18a823a0
remove some dead code
...
llvm-svn: 26703
2006-03-10 23:14:22 +00:00
Chris Lattner
d3ef6c290a
scrape out bits of llvm-db
...
llvm-svn: 26701
2006-03-10 22:48:19 +00:00
Chris Lattner
7d587f37ec
Remove UnixLocalInferiorProcess: debugging via the JIT isn't a good idea.
...
Perhaps llvm-db will turn into a read debugger someday.
llvm-svn: 26700
2006-03-10 22:39:48 +00:00
Chris Lattner
c2447e8b59
teach the JIT to encode vector registers
...
llvm-svn: 26697
2006-03-10 20:19:50 +00:00
Chris Lattner
f918e15362
Move simple-selector-specific types to the simple selector.
...
llvm-svn: 26693
2006-03-10 07:51:18 +00:00
Chris Lattner
5255d04357
Simplify the interface to the schedulers, to not pass the selected heuristicin.
...
llvm-svn: 26692
2006-03-10 07:49:12 +00:00
Chris Lattner
a5b93b8c6d
Move some simple-sched-specific instance vars to the simple scheduler.
...
llvm-svn: 26690
2006-03-10 07:42:02 +00:00
Chris Lattner
e015178de1
prune #includes
...
llvm-svn: 26689
2006-03-10 07:37:35 +00:00
Chris Lattner
4b70ff7876
move some simple scheduler methods into the simple scheduler
...
llvm-svn: 26688
2006-03-10 07:35:21 +00:00
Chris Lattner
dc2f135f5c
Make EmitNode take a SDNode instead of a NodeInfo*
...
llvm-svn: 26687
2006-03-10 07:28:36 +00:00
Chris Lattner
b9d8fa0342
Move the VRBase field from NodeInfo to being a separate, explicit, map.
...
llvm-svn: 26686
2006-03-10 07:25:12 +00:00
Chris Lattner
c48cfba44b
no need to build groups anymore
...
llvm-svn: 26684
2006-03-10 07:15:58 +00:00
Chris Lattner
6f82fe8106
Create SUnits directly from the SelectionDAG.
...
llvm-svn: 26683
2006-03-10 07:13:32 +00:00
Chris Lattner
2f8c7c3d55
Push PrepareNodeInfo/IdentifyGroups down the inheritance hierarchy
...
llvm-svn: 26682
2006-03-10 06:34:51 +00:00
Chris Lattner
349e9ddccc
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
llvm-svn: 26680
2006-03-10 05:51:05 +00:00
Chris Lattner
25e2556b71
add an aggregate method for reinserting scheduled nodes, add a callback for
...
priority impls that want to be notified when a node is scheduled
llvm-svn: 26678
2006-03-10 04:32:49 +00:00
Jeff Cohen
6ce97687f7
Fix VC++ build breakage.
...
llvm-svn: 26676
2006-03-10 03:57:45 +00:00
Chris Lattner
60f6833376
use autogenerated side-effect information
...
llvm-svn: 26673
2006-03-09 22:38:10 +00:00
Chris Lattner
bb40a9fa58
Use autogenerated mod/ref info for intrinsics.
...
llvm-svn: 26670
2006-03-09 22:31:29 +00:00
Chris Lattner
591693f3bf
Use the autogenerated intrinsic verifier
...
llvm-svn: 26667
2006-03-09 22:06:04 +00:00
Evan Cheng
306c13a8fb
Add option -enable-x86-lsr to enable x86 loop strength reduction pass.
...
llvm-svn: 26665
2006-03-09 21:51:28 +00:00
Chris Lattner
ff4d4ee163
Use the function name matcher autogenerated from the .td file.
...
llvm-svn: 26664
2006-03-09 20:35:01 +00:00
Chris Lattner
285c95d7eb
This rule also depends on tblgen
...
llvm-svn: 26662
2006-03-09 20:29:41 +00:00
Chris Lattner
f136299635
add a note
...
llvm-svn: 26661
2006-03-09 20:13:21 +00:00
Chris Lattner
213209a248
remove dbg_declare, it's not used yet.
...
llvm-svn: 26659
2006-03-09 20:02:42 +00:00
Chris Lattner
ea0aa2868f
silly case insensitive file systems...
...
llvm-svn: 26658
2006-03-09 19:55:06 +00:00
Chris Lattner
83e6e19936
Build intrinsics.gen from intrinsics.td
...
llvm-svn: 26657
2006-03-09 19:53:27 +00:00
Chris Lattner
ab8d2ba046
autoupgrade memcpy/memmove/memset with signed counts.
...
CVS: ----------------------------------------------------------------------
llvm-svn: 26654
2006-03-09 18:42:10 +00:00
Andrew Lenharth
43e569c95f
these are copies too
...
llvm-svn: 26653
2006-03-09 18:18:51 +00:00
Chris Lattner
7e7dccd3ab
remove some now-dead code
...
llvm-svn: 26652
2006-03-09 18:07:49 +00:00
Andrew Lenharth
70236fc12f
fcopysign for mixed mode
...
llvm-svn: 26651
2006-03-09 17:56:33 +00:00
Chris Lattner
f0fc6bbaf3
back out my previous hack
...
llvm-svn: 26650
2006-03-09 17:48:46 +00:00
Andrew Lenharth
ebfd94fa1d
relax fcopysign
...
llvm-svn: 26649
2006-03-09 17:47:22 +00:00
Andrew Lenharth
4a87e7d9a3
alpha and llvm have different oppinions on which arg is the sign bit
...
llvm-svn: 26647
2006-03-09 17:41:50 +00:00
Chris Lattner
c6c9e65301
remove temporary option
...
llvm-svn: 26646
2006-03-09 17:31:22 +00:00
Andrew Lenharth
16b96d2cb4
Alpha Scheduling classes
...
llvm-svn: 26643
2006-03-09 17:16:45 +00:00
Chris Lattner
c44be2c4ef
temporary hack to get the build working again, apparently a header
...
commit was forgotten
llvm-svn: 26642
2006-03-09 17:11:08 +00:00
Andrew Lenharth
ed7a293b44
fcopysign and get rid of dsnode cruft. custom PA runtimes make this better in some senses
...
llvm-svn: 26641
2006-03-09 14:58:25 +00:00
Andrew Lenharth
b8a06a7c6c
fcopysign support
...
llvm-svn: 26640
2006-03-09 14:57:36 +00:00
Jim Laskey
4b0e1d9e6c
Move bit field endianness to backend.
...
llvm-svn: 26639
2006-03-09 13:28:47 +00:00
Chris Lattner
d17d77aa1d
yes yes, enabled debug output is bad
...
llvm-svn: 26637
2006-03-09 07:39:25 +00:00
Chris Lattner
6398c13128
switch the t-d scheduler to use a really dumb and trivial critical path
...
latency priority function.
llvm-svn: 26636
2006-03-09 07:38:27 +00:00