[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