[9] RFR(M): 8129847: Compiling methods generated by Nashorn triggers high memory usage in C2

Aleksey Shipilev aleksey.shipilev at oracle.com
Thu Nov 26 13:54:22 UTC 2015

Hi Zoltan,

This is a very interesting approach indeed!

On 11/25/2015 05:57 PM, Zoltán Majó wrote:
> [9]: http://cr.openjdk.java.net/~zmajo/8129847-9/webrev.04/

I have a few specific comments:

a) The interaction between Remove_Useless and Renumber_Live is unclear
from the code like this:

  47     Remove_Useless,             // Remove useless nodes
  48     Renumber_Live,              // First, remove useless nodes from
the graph. Then, renumber live nodes.

It seems that Renumber_Live completely subsumes the Remove_Useless?
Maybe a better name would be Remove_Useless_And_Renumber to capture
that? Or the inclination is that Remove_Useless is a cleanup action that
runs multiple times anyway? If so, there seem to be no reason to mention
it in the phase description.

b) Can you add the compilation time counters: TracePhase, &timers, etc.,
so that a new phase time is visible in -XX:+CITime?

c) Does this renumbering break Ideal Graph Visualizer, i.e. does IGV
depend on the node indexes stability in any way?

d) It seems odd to have a check for RenumberLiveNodes in
PhaseRenumberLive::PhaseRenumberLive super constructor call, when all
calls to PhaseRenumberLive seem to be predicated externally with it?

 472 PhaseRenumberLive::PhaseRenumberLive(...
 473                                      ...
 474                                      ...) :
 475   PhaseRemoveUseless(gvn, worklist, RenumberLiveNodes ?
Renumber_Live : Remove_Useless) {


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20151126/79900777/signature-0001.asc>

More information about the hotspot-compiler-dev mailing list