next up previous contents
Next: Instruction expansion Up: Loop parallelization Previous: Fitting in the common   Contents


This parallelizer was surprisingly easy to implement. It depends heavily on the functionality and, not least, the correctness of the sequence parallelizer. The code takes up around 250 lines including comments, probably less than this description.

Curious things happen, if one supplies code to the parallelizer that does not make sense. If the loop code touches variables that are never used, various strange results can occur. This is not a huge problem par se, but it is something that must be taken into account, at least when we get a reasonable high-level front end language and a compiler for that.

It is actually another strength of this language, that we can easily spot superfluous instructions and remove them. This is not currently done, but it's another one of those fairly easy to implement tasks, that are just waiting to happen.