Context Sensitivity and Escape Analysis for Java

vidyut.vidyut@gmail.com
21 Apr 2006 23:45:58 -0400

          From comp.compilers

Related articles
Context Sensitivity and Escape Analysis for Java vidyut.vidyut@gmail.com (2006-04-21)
| List of all articles for this month |
From: vidyut.vidyut@gmail.com
Newsgroups: comp.compilers
Date: 21 Apr 2006 23:45:58 -0400
Organization: http://groups.google.com
Keywords: Java, analysis
Posted-Date: 21 Apr 2006 23:45:58 EDT

Hi,


This mail is with regard to the precision of points to relations that
can be obtained by escape analysis as mentioned in the paper :


John Whaley and Martin Rinard, " Compositional pointer and escape
analysis for Java programs"
OOPSLA 1999.


The points-to escape graph that they are constructing is essentially
the propagation of the points to relations through every program point
( and so the analysis is flow sensitive ). But is this context
sensitive in the sense it would not allow interprocedural unrealizable
paths and distinguish between multiple calling contexts ?


The paper says : "Our approach extracts a single analysis result for
calling contexts with no aliases, and merges nodes for calling contexts
with aliases. The disadvantage of this approach is that it may produce
less precise results than approaches that maintain information for
multiple calling contexts. The advantage is that it leads to a simpler
algorithm and smaller analysis results."


(1) Since this analysis is analyzing a procedure once and for every
calling context doing a mapping from the incoming points-to-graph to
get a new graph after the call statement, why is it giving less precise
results ?
(2) Can anyone give me an example where the analysis is losing
precision due to the above stated criterion ?
(3) Also if this is the case, can a precise context sensitive and flow
sensitive points to analysis help in improving the precision of escape
analysis ( in the sense more objects can be discovered to be captured )
?


Thanks.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.