Request for reviews (XL): 7147744: CTW: assert(false) failed: infinite EA connection graph build

Vitaly Davidovich vitalyd at
Thu Feb 23 12:27:54 PST 2012


deleteAt() doesn't violate ordering assumption for elements previously
inserted into the array?


Sent from my phone
On Feb 23, 2012 3:00 PM, "Vladimir Kozlov" <vladimir.kozlov at>

> 7147744: CTW: assert(false) failed: infinite EA connection graph build
> I rewrote Connection graph construction code in EA to reduce time spent
> there. In the bug's test time reduced by 100 (from about 50 to .5 sec on
> Nahalem-EX machine).
> Connection graph now has specialized classes for nodes and additional use
> edges to put on worklist only uses of node which added new point edge.
> Field node has also bases edges. Edges never removed only added.
> Instead of looking for Field's bases from the start create simple base
> edge to LocalVar during initial graph construction in
> build_connection_graph(). Late do several iteration to push all known
> JavaObject nodes references through graph. This phase has limits on number
> and time. Also on each iteration check if there are non globally escaped
> objects and bail out from code if not.
> Added additional Arraycopy node to connect source and destination objects.
> I removed uncast() calls so that all LocalVar nodes point to all related
> JavaObject nodes.
> I combined record_for_escape_analysis() and build_connection_graph() into
> one method.
> Added TracePhase around Connection graph build code to see how much time
> spent there.
> This code need addition work since I still saw outlier (10 min in EA) in
> sje2010 on SPARC. But I will look on it after this one is done.
> I added new GrowableArray method delete_at(i) to avoid shifting following
> elements which is done in remove_at(i) method.
> Thanks,
> Vladimir
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the hotspot-compiler-dev mailing list