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

[lworld][c1] SharedRuntime::fixup_callers_callsite is wrong when caller is C1

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: repo-valhalla
    • Fix Version/s: repo-valhalla
    • Component/s: hotspot
    • Labels:

      Description

      The following new test fails when added to http://hg.openjdk.java.net/valhalla/valhalla/file/e1b581738b26/test/hotspot/jtreg/compiler/valhalla/valuetypes/TestCallingConventionC1.java

          // C1->C1 - caller is compiled first. It invokes callee(test97) a few times while the
          // callee is executed by the interpreter. Then, callee is compiled
          // and SharedRuntime::fixup_callers_callsite is called to fix up the
          // callsite from test97_verifier->test97.
          @Test(compLevel = C1)
          public int test97(Point p1, Point p2) {
              return test97_helper(p1, p2);
          }

          @DontInline @DontCompile
          public int test97_helper(Point p1, Point p2) {
              return p1.x + p1.y + p2.x + p2.y;
          }

          @ForceCompile(compLevel = C1)
          public void test97_verifier(boolean warmup) {
              int count = warmup ? 1 : 20;
              for (int i=0; i<count; i++) {
                  int result = test97(pointField1, pointField2);
                  int n = test97_helper(pointField1, pointField2);
                  Asserts.assertEQ(result, n);
              }
          }

        Attachments

          Activity

            People

            • Assignee:
              iklam Ioi Lam
              Reporter:
              iklam Ioi Lam
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: