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

JSR292: Generate slow non-inlined code shape for unstable call sites

XMLWordPrintable

      John Rose wrote:
      If a call site causes too many bailouts, we go to a slow non-inlined code shape, as noted by this bug.

      There are ways to make those call sites patchable (data driven) but keep more of the optimizations associated with inlining. Something like bimorphic call sites, where one CS target is favored by inlining, but other targets are supported by out-of-line calls.
          if (cs.target == expected_target) expected_target.invoke(); // possibly inlined
          else cs.target.invoke(); // probably slow, indirect out-of-line

      Also, we could make these call sites patchable as with today's CompiledIC guys:
        L_Patchable: nop_patchable_to_jump();
        L_Fast: expected_target.invoke(); L_Done:
        ...
        L_Patched: {lazily generated code for alternative to L_Fast}; goto L_Done

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

              Created:
              Updated: