Applying Traversal-Pattern-Sensitive Pointer Analysis to Dependence Analysis
Abstract
This paper presents a technique for dependence analysis on programs
with pointers or dynamic recursive data structures.
It differs from previously proposed approaches in
analyzing structure access conflicts between traversal patterns before
gathering alias and connection information.
Conflict analysis is conducted under the assumption that each unique path
leads to a distinct storage location, and hence traversal patterns
can be analytically compared to identify possible conflicts.
The rationale of this assumption is that if statements are
deemed to be dependent by this approach, they are inherently sequential
regardless of the shapes of the data structures they traverse.
Consequently, there is no need to perform alias/connection analysis
on the statements that construct such data structures.
Furthermore, the information of traversal patterns gathered
in conflict analysis phase can direct alias/connection analysis algorithm
to focus on statements that are crucial to optimizations or parallelization.
A such {\em traversal-pattern-sensitive} pointer analysis algorithm
will also be presented.