Source level Unrolling of Loops Containing Pointers and Array References

Yosi Ben Asher,Jawad Haj-Yihia

semanticscholar(2007)

Cited 0|Views0
No score
Abstract
We consider the problem of identifying induction pointers (IPs) in loops and based on these IPs unroll their loop. The analogy between induction variables (IVs) as a base of unrolling loops with array references and IPs for unrolling loops with pointer references has been observed and pursued in a few research works, but basically no such system was ever implemented. Unlike IVs in array references, IPs can modify the shape of the data structure they are traversing, e.g., via assignments of the form p → N = P → N → N . Thus, the existence of regular increments of the form p = p → N ; is not enough to guarantee that p is an IP. Hendren et al. presented a formal analysis called path-matrixes that can be used for unrolling. However Hendren’s unrolling scheme depends on the assumption that the underlying data-structure is a list/tree-like structure. We propose to use a simpler method that does not rely on such an assumption. We show that the proposed scheme is sufficient for unrolling of simple loops with pointers. The method was implemented in the SUIF compiler for C programs. Our experiments with some programs from SPEC2000 obtain an improvement of 3-5%. We further show via examples that the requirements needed to apply this method are tight.
More
Translated text
AI Read Science
Must-Reading Tree
Example
Generate MRT to find the research sequence of this paper
Chat Paper
Summary is being generated by the instructions you defined