Nate Begeman
442b32b5c5
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
2006-03-11 02:20:46 +00:00
Evan Cheng
2352ce9cb6
Doh!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26705 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-11 00:13:10 +00:00
Evan Cheng
0937103368
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
2006-03-10 23:52:03 +00:00
Chris Lattner
7907b6950b
remove some dead code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26703 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 23:14:22 +00:00
Chris Lattner
7d74d1145f
scrape out bits of llvm-db
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26701 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 22:48:19 +00:00
Chris Lattner
89b192690a
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
2006-03-10 22:39:48 +00:00
Chris Lattner
e928a72772
teach the JIT to encode vector registers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26697 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 20:19:50 +00:00
Chris Lattner
a34b6f8713
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
2006-03-10 07:51:18 +00:00
Chris Lattner
20a4921791
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
2006-03-10 07:49:12 +00:00
Chris Lattner
2f5806c2b3
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
2006-03-10 07:42:02 +00:00
Chris Lattner
1e433c59e0
prune #includes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26689 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-10 07:37:35 +00:00
Chris Lattner
e76074ab89
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
2006-03-10 07:35:21 +00:00
Chris Lattner
8c7ef0599c
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
2006-03-10 07:28:36 +00:00
Chris Lattner
df3750642a
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
2006-03-10 07:25:12 +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
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
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
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
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
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
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
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
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
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
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
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
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
Chris Lattner
e87c5c8088
add some comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26631 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 06:37:29 +00:00
Chris Lattner
e32178dd32
Refactor the priority mechanism one step further: now that it is a separate
...
class, sever its implementation from the interface. Now we can provide new
implementations of the same interface (priority computation) without touching
the scheduler itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26630 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 06:35:14 +00:00