Profile-Guided Context-Sensitive Program Analysis
Department of Computer Science
University of Arizona
Tucson, AZ 85721, U.S.A.
Interprocedural analyses can be classified as either context-insensitive, which tend to sacrifice precision to gain efficiency, or context-sensitive, which are more precise but also more expensive. This paper discusses a profile-guided approach to interprocedural analysis that is context-sensitive, and hence more precise, for the ``important'' call sites for a function, and context-insensitive, and hence more efficient, for the ``unimportant'' call sites. Experiments indicate that this approach can be significantly more efficient than a traditional context-sensitive analysis without sacrificing much of the pragmatic value of the dataflow information gathered.