aboutsummaryrefslogtreecommitdiff
path: root/docs/CommandGuide/man
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-03-10 05:51:05 +0000
committerChris Lattner <sabre@nondot.org>2006-03-10 05:51:05 +0000
commitda4ff69153c7562a71a1990929adc0faa8d0996d (patch)
treee688edfd1e2550008cf805a71138880aa2f5c09a /docs/CommandGuide/man
parenta72047cc0a9376598e7ccf07a73860785f8e3525 (diff)
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
Diffstat (limited to 'docs/CommandGuide/man')
0 files changed, 0 insertions, 0 deletions