A programming language mechanism and associated compiler techniques which significantly enhance the analyzability of pointer-based data structures frequently used in nonscientific programs are proposed. The approach is based on exploiting two important properties of pointer data structures: structural inductivity and speculative traversability. Structural inductivity facilitates the application of a static interference analysis method for such pointer data structures based on path matrices, and speculative traversability is utilized by a novel loop unrolling technique for while loops that exploit fine-grain parallelism by speculatively traversing such data structures. The effectiveness of this approach is demonstrated by applying it to a collection of loops found in typical nonscientific C programs. >
['Laurie J. Hendren', 'Guang R. Gao']
Designing programming languages for analyzability: a fresh look at pointer data structures