Tool for manual scheduling?

broadley@neurocog.lrdc.pitt.edu (Bill Broadley)
Thu, 21 Oct 1993 04:00:41 GMT

          From comp.compilers

Related articles
Tool for manual scheduling? broadley@neurocog.lrdc.pitt.edu (1993-10-21)
| List of all articles for this month |

Newsgroups: comp.arch,comp.compilers
From: broadley@neurocog.lrdc.pitt.edu (Bill Broadley)
Followup-To: comp.arch
Keywords: tools, architecture, question
Organization: Learning Research and Development Center at U. of Pittsburgh
Date: Thu, 21 Oct 1993 04:00:41 GMT

Anyone out there have a tool to help manually schedule instructions for
time critical inner loops?


I'd like to get 1 fp per cycle on an alpha with a mandelbrot calculation,
this will probably involve creative scheduling, as well as unrolling the
loop at least once.


I have in mind a tool to take the assembly input, display the fp pipeline
at each instruction, taking into account any dependencies and latencies.


Also keep track of register usage (to track the free registers for
unrolling etc.)


So I'd feed in the inner loop (15 instructions or so) and get a printout
like (assuming latency of 6 instructions)




R1 has 2 in it , R10 has oldx. Registers used
pipeline 1 1 1 1 1 1 1 1 1 1 2
1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0..
fmult R2,R2,R3 * * * * *
fmult R4,R4,R5 * * * * * * * *
fmult R1,R10,R10 * * * * * * * * *
stall * * * * * * * * *
stall * * * * * * * * *
stall * * * * * * * * *
stall * * * * * *
subt R3,R5,R6 * * * * * *


Etc. By viewing the output I could reorder the instructions and rerun my
program.


I have found that at least in the mandlebrot case that you can do
substantially better then a compiler can. But this tool would make such
manual scheduling much less painful.


I'm ready to write such a beast but I though I'd check to see whats
available, and ask for suggestions.


--
Bill, Broadley@neurocog.lrdc.pitt.edu
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.