CS 6235 - Analysis of Parallel Programs

Assignment 2: Escape Analysis for Synchronization Elimination (EASE)

Our goal is to do escape analysis of QParJava programs and identify synchronization operations that can be eliminated.

Use Soot to write in Java one or more Java files which implement inter-procedural context-insensitive flow-sensitive escape analysis. Your main analysis file should be called A2.java (it may invoke any supplementary java files you create or those provided by Soot). Say P.java contains a program to be analyzed in QParJava form, and Q.txt contains a sequence of synchronization elimination queries. Say we obtain P.class by invoking javac on P.java. On invoking Soot on P.class, to perform escape analysis using A1.java (example invocation shown here), it is expected to answer the queries given in Q.txt; use CHA for call-graph.

Your program should print a series of "Yes" or "No" (each in a new line) corresponding to each query in Q.txt. The order of your answers should match the order of the optimization queries.

Grading policy
Your homework will be graded for a total of 100 marks.