Request for reviews (XL): 7147744: CTW: assert(false) failed: infinite EA connection graph build
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Feb 28 14:01:23 PST 2012
Please, I need a review for this.
Thanks,
Vladimir
Vladimir Kozlov wrote:
> http://cr.openjdk.java.net/~kvn/7147744/webrev
>
> 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
More information about the hotspot-compiler-dev
mailing list