General Framework
The general framework for loop vectorization is split into four stages:
- Prelude: Where the loop-independent variables are prepared to be used inside the loop. This normally involves moving them to vector registers with specific patterns that will be used in vector instructions. This is also the place to insert the run-time dependence check. If the check decides vectorization is not possible, branch to Cleanup.
- Loop(s): All vectorizes (or not) loops, separated by SCCs clusters in order of appearance in the original code.
- Postlude: Return all loop-independent variables, inductions and reductions.
- Cleanup: Implement plain (non-vectorized) loops for iterations at the end of a loop that are not a multiple of the vector size) or for when run-time checks prohibit vector processing.
Read more about this topic: Vectorization (parallel Computing)
Famous quotes containing the words general and/or framework:
“There was not a tree as far as we could see, and that was many miles each way, the general level of the upland being about the same everywhere. Even from the Atlantic side we overlooked the Bay, and saw to Manomet Point in Plymouth, and better from that side because it was the highest.”
—Henry David Thoreau (18171862)
“Most young black females learn to be suspicious and critical of feminist thinking long before they have any clear understanding of its theory and politics.... Without rigorously engaging feminist thought, they insist that racial separatism works best. This attitude is dangerous. It not only erases the reality of common female experience as a basis for academic study; it also constructs a framework in which differences cannot be examined comparatively.”
—bell hooks (b. c. 1955)