next up previous
Next: Interprocedural Framework. Up: Interprocedural Analysis Issues Previous: Region-Based Flow-Sensitive Analysis.

Selective Procedure Cloning.

With the region-based analysis approach described above, precision may still be lost as compared to full inlining. In the second pass when deriving the calling context for a procedure, the analysis must represent the conservative approximation of information contributed by all program paths to the procedure. Such approximations can affect the precision of analysis if a procedure is invoked along paths that contribute very different information. To avoid this loss of precision, we incorporate into the calling context analysis a technique called selective procedure cloning, where the compiler replicates analysis results for a procedure to determine its data-flow information along paths in the program that contribute significantly different calling contexts [5]. Because the replication is done selectively according to the unique data-flow information it exposes, we manage the analysis costs and can usually obtain the same precision as full inlining.

Saman Amarasinghe
Fri Sep 15 09:15:06 PDT 1995