next up previous contents
Next: Schedule Generation Up: COP Language Design Issues Previous: Hidden State

Loop and Branch Prediction

The HLL compiler may be able to accurately predict communications operands one or more loop iterations (or branches) ahead. In this case, it may be possible to take advantage of this knowledge to load the router with the appropriate code. For example, in a loop with one runtime operator, where DMA is available, and the runtime operator's argument can be predicted a cycle ahead, the load of the next phase of the runtime operator could be started at the previous load, using the predicted value of the runtime operator. The split-language semantics do not allow this, since there is no way to express predicted future values of runtime operators.

It would be possible to express this information by defining syntax to express a load value for the next loop, not the current loop. This is, however, a step further away from the current clean interface, and a step closer to the integrated compiler solution.



Back to Chris Metcalf's home page