In this paper we present a modular interprocedural pointer analysis
algorithm based on access-paths for C programs. We argue that access
paths can reduce the overhead of representing context-sensitive transfer
functions and effectively distinguish non-recursive heap objects. And
when the modular analysis paradigm is used together with other
techniques to handle type casts and function pointers, we are able to
handle significant programs like those in the SPECcint92 and SPECcint95
suites. We have implemented the algorithm and tested it on a Pentium II
450 PC running Linux. The observed resource consumption and performance
improvement are very encouraging.