[11u] RFR 8259710: Inlining trace leaks memory
Thomas Stüfe
thomas.stuefe at gmail.com
Fri Mar 12 11:31:51 UTC 2021
Looks good.
I wondered about the difference in print_inlining_update(), but saw that it
had been changed with JDK-8257211, which I assume you don't want to
backport.
Cheers, Thomas
On Fri, Mar 12, 2021 at 11:41 AM Roland Westrelin <rwestrel at redhat.com>
wrote:
>
> Original bug:
> https://bugs.openjdk.java.net/browse/JDK-8259710
> https://github.com/openjdk/jdk/commit/ca20c63c
>
> The patch doesn't apply cleanly. Failed hunk is below but patch is
> otherwise largely unchanged.
>
> 11u webrev:
> https://cr.openjdk.java.net/~roland/8259710.11u/webrev.00/
>
> Testing: x86_64 build, executing non trivial app with -XX:+PrintInlining
>
> Roland.
>
> --- compile.cpp
> +++ compile.cpp
> @@ -4209,32 +4204,32 @@ void Compile::print_inlining_commit() {
> assert(print_inlining() || print_intrinsics(), "PrintInlining off?");
> // Transfer the message from _print_inlining_stream to the current
> // _print_inlining_list buffer and clear _print_inlining_stream.
> -
> _print_inlining_list->at(_print_inlining_idx).ss()->write(_print_inlining_stream->base(),
> _print_inlining_stream->size());
> +
> _print_inlining_list->at(_print_inlining_idx)->ss()->write(_print_inlining_stream->base(),
> _print_inlining_stream->size());
> print_inlining_reset();
> }
>
> void Compile::print_inlining_push() {
> // Add new buffer to the _print_inlining_list at current position
> _print_inlining_idx++;
> - _print_inlining_list->insert_before(_print_inlining_idx,
> PrintInliningBuffer());
> + _print_inlining_list->insert_before(_print_inlining_idx, new
> PrintInliningBuffer());
> }
>
> -Compile::PrintInliningBuffer& Compile::print_inlining_current() {
> +Compile::PrintInliningBuffer* Compile::print_inlining_current() {
> return _print_inlining_list->at(_print_inlining_idx);
> }
>
> void Compile::print_inlining_update(CallGenerator* cg) {
> if (print_inlining() || print_intrinsics()) {
> if (cg->is_late_inline()) {
> - if (print_inlining_current().cg() != cg &&
> - (print_inlining_current().cg() != NULL ||
> - print_inlining_current().ss()->size() != 0)) {
> + if (print_inlining_current()->cg() != cg &&
> + (print_inlining_current()->cg() != NULL ||
> + print_inlining_current()->ss()->size() != 0)) {
> print_inlining_push();
> }
> print_inlining_commit();
> - print_inlining_current().set_cg(cg);
> + print_inlining_current()->set_cg(cg);
> } else {
> - if (print_inlining_current().cg() != NULL) {
> + if (print_inlining_current()->cg() != NULL) {
> print_inlining_push();
> }
> print_inlining_commit();
>
>
More information about the jdk-updates-dev
mailing list