There are currently 2 flags related to EA debugging, PrintEscapeAnalysis, which prints information about objects that don't escape. And PrintEliminateAllocations, which prints when an allocation is eliminated by a compiler optimization.
However, neither of these flags are very useful to determine why a particular allocation escapes. i.e. a failure to scalar replace an object is observed, and we want to track down why the object escaped, or why it can not be scalar replaced.
We can add a new tracing option, such as TraceEscapeAnalysis, that prints detailed information about why an object is:
1. marked with a particular escape state
2. marked as not scalar replaceable.
However, neither of these flags are very useful to determine why a particular allocation escapes. i.e. a failure to scalar replace an object is observed, and we want to track down why the object escaped, or why it can not be scalar replaced.
We can add a new tracing option, such as TraceEscapeAnalysis, that prints detailed information about why an object is:
1. marked with a particular escape state
2. marked as not scalar replaceable.