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