May-alias analysis/domain for Fields and Arrays to improve the escape analysis

Issue #176 new
created an issue

In the current escape analysis, more than 90% of all entities are flagged with AtMost(...) (which is currently equivalent to GlobalEscape), because they were stored into arrays or fields.

Consider the following example:

static Object global = null;
void foo() {
  Object o = new Object(); // may be local, iff the array arr is local and no read from the array escapes
  Object[] arr = new Object[] { o }; // the array is local
  Object o2 = arr[0]; // here the three-address code provides no information that o2 might be an alias of o
  // global = o2; // would let o escape. if the stmt is omitted, o would not escape.

As a first step we would need such a field/array may alias analysis. Afterwards we would need to modify the escape analysis.

Comments (0)

  1. Log in to comment