Related articles |
---|
Loop jamming!? wjhung@csie.nctu.edu.tw (1997-06-24) |
Re: Loop jamming!? simmons@nortel.ca (Steve Simmons) (1997-06-30) |
Re: Loop jamming!? joelw@rsn.hp.com (Joel Williamson) (1997-06-30) |
Re: Loop jamming!? sven@customized.com (Sven) (1997-07-13) |
Re: Loop jamming!? n8tm@aol.com (1997-07-16) |
Re: Loop jamming!? cdg@nullstone.com (Christopher Glaeser) (1997-07-18) |
Re: Loop jamming!? schow@nortel.ca (Stanley Chow) (1997-07-21) |
Re: Loop jamming!? cdg@nullstone.com (Christopher Glaeser) (1997-07-22) |
[8 later articles] |
From: | "Steve Simmons" <simmons@nortel.ca> |
Newsgroups: | comp.compilers |
Date: | 30 Jun 1997 22:52:07 -0400 |
Organization: | Nortel |
References: | 97-06-089 |
Keywords: | optimize |
Loop jamming is very similar to loop unrolling; however, loop
unrolling unrolls the innermost loop in the nest where loop jamming
unrolls an outer loop in the nest and jams the next inner loop
together.
Example:
FOR I= 1, 2
FOR J= 1, N
A(I, J) = B(I, J)
ENDDO
ENDDO
This is a perfect candidate for loop jamming because it can
take advantage of cache locality (assuming the elements in
the first dimension are contiguous).
The result of a loop unroll and jam is...
FOR J = 1, N
A(1, J) = B(1, J)
A(2, J) = B(2, J)
ENDDO
Note, this same optimization can be achieved by first
performing a loop interchange, and then a complete unroll.
However, this is one complete optimization.
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.