Request for Reviews(M): 7092905: C2: Keep track of the number of dead nodes
christian.thalinger at oracle.com
Mon Oct 29 10:56:02 PDT 2012
[This should be over at hotspot-comp-dev since it only touches C2 code. BCC'ing hotspot-dev.]
On Oct 29, 2012, at 10:29 AM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> These changes look much better. Sorry, I suggested to add verify_live_node_count() method before but your current code don't need it, just use count_live_nodes_by_graph_walk(). An other note: without LogCompilation verification code should produce some info on tty.
> On Oct 28, 2012, at 8:12 PM, Bharadwaj Yadavalli wrote:
>> I'd like to get a code review of the changes at http://cr.openjdk.java.net/~bharadwaj/7092905/webrev_01/
>> These changes are made to keep an (almost) accurate running count of the reachable (live) flow graph nodes. This will result in a more realistic node count for various phases of C2 to decide on whether to proceed with optimizations or not. Prior to these changes, C2 bails out of compilation based on the number of nodes created which typically larger than the number of reachable (live) nodes.
>> I observed no significant degradation in C2 compilation time of all classes in rt.jar time due to these changes.
We still need to adjust MaxNodeLimit. Maybe some JRuby or Nashorn benchmarks can help in getting really big methods.
+ _log->elem("node count before optimize compile_id='%d' unique='%d' live (tracked)='%d' live(graph_walk)='%d'",
I think the log element name needs to have _'s so we can match it (if we want to):
+ _log->elem("node_count_before_optimize compile_id='%d' unique='%d' live (tracked)='%d' live(graph_walk)='%d'",
More information about the hotspot-compiler-dev