Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8280467

C1: Perform CHA when inlining through method handle linkers

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: P3 P3
    • tbd
    • 19
    • hotspot

      Improve inlining decisions for method handle linker (MethodHandle.linkTo*) call sites.

      src/hotspot/share/c1/c1_GraphBuilder.cpp:

      bool GraphBuilder::try_method_handle_inline(ciMethod* callee, bool ignore_return) {
      ...
                // We don't do CHA here so only inline static and statically bindable methods.
                if (target->is_static() || target->can_be_statically_bound()) {
                  Bytecodes::Code bc = target->is_static() ? Bytecodes::_invokestatic : Bytecodes::_invokevirtual;
                  if (try_inline(target, /*holder_known*/ !callee->is_static(), ignore_return, bc)) {
                    return true;
                  }
                } else {
                  print_inlining(target, "not static or statically bindable", /*success*/ false);
                }

            Unassigned Unassigned
            vlivanov Vladimir Ivanov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: