Example 3-19, Strip mined code -33 – Intel ARCHITECTURE IA-32 User Manual
Page 213

Coding for SIMD Architectures
3
3-33
The main loop consists of two functions: transformation and lighting.
For each object, the main loop calls a transformation routine to update
some data, then calls the lighting routine to further work on the data. If
the size of array
v[Num]
is larger than the cache, then the coordinates for
v[i]
that were cached during
Transform(v[i])
will be evicted from
the cache by the time we do
Lighting(v[i])
. This means that
v[i]
will have to be fetched from main memory a second time, reducing
performance.
for (i=0; i Lighting(v[i]); } .... } Example 3-19 Strip Mined Code main() { Vertex_rec v[Num]; .... for (i=0; i < Num; i+=strip_size) { for (j=i; j < min(Num, i+strip_size); j++) { Transform(v[j]); } for (j=i; j < min(Num, i+strip_size); j++) { Lighting(v[j]); } } } Example 3-18 Pseudo-code Before Strip Mining (continued)