Blackbird® - HPEC Compiler
Software Pipeliner
Blackbird's software pipeliner is perhaps the most critical component of MIPSPro that was not GPL'd into Open 64. Software pipelining is a very profitable optimization for superscalar and VLIW architectures. The goal of software pipelining is to achieve better loop performance on multiple-issue architectures by restructuring loops in a way that interleaves tasks from separate iterations. The Blackbird software pipeliner uses a variant of modulo scheduling to achieve this speedup. On a high level, the pipeliner must compose as compact a modular schedule as possible while also minimizing any register spill code that might result. The Blackbird software pipeliner employs several advanced techniques to manage this problem, including a binary search of the possible initiation intervals, a branch-and-bound search over all schedules with pruning, use of multiple ordering heuristics for loop tasks, spill code insertion and memory bank optimizations.
|