<div dir="ltr"><div>Thanks a lot Vladimir!</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 17, 2022 at 8:04 PM Vladimir Kozlov <<a href="mailto:vladimir.kozlov@oracle.com">vladimir.kozlov@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 8/16/22 9:01 PM, Thomas Stüfe wrote:<br>
> On Tue, Aug 16, 2022 at 9:00 PM Vladimir Kozlov <<a href="mailto:vladimir.kozlov@oracle.com" target="_blank">vladimir.kozlov@oracle.com</a> <mailto:<a href="mailto:vladimir.kozlov@oracle.com" target="_blank">vladimir.kozlov@oracle.com</a>>> wrote:<br>
> <br>
>     On 8/16/22 10:05 AM, Thomas Stüfe wrote:<br>
>      > Hi,<br>
>      ><br>
>      > Is there a particular reason why ReplayCompiles needs to be a develop switch? Or was it just not considered useful<br>
>      > without asserts?<br>
> <br>
>     It replays compilation which we want to debug in debug VM. Why do you want it be `product` flag?<br>
> <br>
>     We have DumpReplayDataOnError product flag to dump compiler replay data from product VM:<br>
>     <a href="https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/compiler_globals.hpp#L331" rel="noreferrer" target="_blank">https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/compiler_globals.hpp#L331</a><br>
>     <<a href="https://urldefense.com/v3/__https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/compiler_globals.hpp*L331__;Iw!!ACWV5N9M2RV99hQ!JRgjhoZKOMvpjeekz0FN5_oc8OR6PZp-lDqLr7W_AEpu5wV0xtVtbCvvgD_XWCIeoqN88QPk0i9nNBU6w2OexzZiW4G-$" rel="noreferrer" target="_blank">https://urldefense.com/v3/__https://github.com/openjdk/jdk/blob/master/src/hotspot/share/compiler/compiler_globals.hpp*L331__;Iw!!ACWV5N9M2RV99hQ!JRgjhoZKOMvpjeekz0FN5_oc8OR6PZp-lDqLr7W_AEpu5wV0xtVtbCvvgD_XWCIeoqN88QPk0i9nNBU6w2OexzZiW4G-$</a>><br>
> <br>
> <br>
> Hi Vladimir,<br>
> <br>
> to reproduce a compiler error in a release VM.<br>
> <br>
> - to experiment what its effect is on a VM that was actually shipped to customers, without using a debug VM and <br>
> switching tens of asserts off. E.g., in the case of <a href="https://bugs.openjdk.org/browse/JDK-8291665" rel="noreferrer" target="_blank">https://bugs.openjdk.org/browse/JDK-8291665</a> <br>
> <<a href="https://bugs.openjdk.org/browse/JDK-8291665" rel="noreferrer" target="_blank">https://bugs.openjdk.org/browse/JDK-8291665</a>>, how steep and how quickly RSS raises, and whether the raise limits itself <br>
> or is infinite.<br>
> - to see whether a certain build of a shipped VM is actually affected by a certain bug. Not every bug surfaces in every <br>
> build.<br>
> <br>
> None of that are very hard reasons, and these situations are rare. But they do occur, and it would be a bit more <br>
> convenient to have this switch.<br>
<br>
So you want it for verification purpose and not for debugging an issue. We did not consider it when implemented.<br>
I agree it could be useful and it is not hard to convert ReplayCompiles to diagnostic flag.<br>
It will increase VM size but not much.<br>
<br>
File RFE.<br>
<br>
Thanks,<br>
Vladimir K<br>
<br>
> <br>
> Cheers, Thomas<br>
> <br>
> <br>
</blockquote></div></div>