llvm-6502/lib
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
..
Analysis Use autogenerated mod/ref info for intrinsics. 2006-03-09 22:31:29 +00:00
Archive more C++ daintiness 2005-12-26 14:31:26 +00:00
AsmParser Regenerate 2006-03-04 07:53:41 +00:00
Bytecode Simplify the autoupgrade interface 2006-03-02 23:59:12 +00:00
CodeGen Teach the latency scheduler some new tricks. In particular, to break ties, 2006-03-10 05:51:05 +00:00
Debugger Get rid of the multiple copies of getStringValue. Now a Constant:: method. 2006-03-08 18:11:07 +00:00
ExecutionEngine Add a helper method for running static ctors/dtors in the module. 2006-03-08 18:42:46 +00:00
Linker Rename method 2006-01-24 04:14:29 +00:00
Support Qualify dwarf namespace inside llvm namespace. 2006-02-27 22:37:23 +00:00
System Add AddSymbol() method to DynamicLibrary to work around Windows limitation 2006-01-30 04:33:51 +00:00
Target Add option -enable-x86-lsr to enable x86 loop strength reduction pass. 2006-03-09 21:51:28 +00:00
Transforms use autogenerated side-effect information 2006-03-09 22:38:10 +00:00
VMCore Use the autogenerated intrinsic verifier 2006-03-09 22:06:04 +00:00
Makefile Add the Linker library 2004-11-14 21:54:41 +00:00