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

Extend Compiler Control to support to JVMCI compilers

XMLWordPrintable

    • 9

      The Compiler Control added by https://openjdk.org/jeps/165 improved the way to control the C1 and C2 JVM compilers. It needs to be extended to handle JVMCI compilers such as Graal.

      In the current state, a number of the tests added by JEP 165 test fail when libgraal is enabled. For example, compiler/compilercontrol/directives/ExcludeTest.java fails with:

      Checking expected compilation state: {
        method: public void compiler.compilercontrol.share.pool.sub.Klass.method(int,java.lang.String[],java.lang.Integer,byte[],double[][])
        compile [Optional.empty, Optional.empty]
        force_inline [Optional.empty, Optional.empty]
        dont_inline [Optional.empty, Optional.empty]
        log Optional.empty
        print_assembly Optional.empty
        print_inline Optional.empty
      }
      Checking expected compilation state: {
        method: public void compiler.compilercontrol.share.pool.sub.Klass.method()
        compile [Optional.empty, Optional[false]]
        force_inline [Optional.empty, Optional[false]]
        dont_inline [Optional.empty, Optional[true]]
        log Optional.empty
        print_assembly Optional.empty
        print_inline Optional.empty
      }
      ];
       stderr: [Exception in thread "main" java.lang.RuntimeException: FAILED: method public void compiler.compilercontrol.share.pool.sub.Klass.method() compilable: true, but should: false on required level: 4: expected true to equal false
          at jdk.test.lib.Asserts.fail(Asserts.java:594)
          at jdk.test.lib.Asserts.assertEquals(Asserts.java:205)
          at jdk.test.lib.Asserts.assertEQ(Asserts.java:178)
          at compiler.compilercontrol.share.actions.CompileAction.checkCompilation(CompileAction.java:90)
          at compiler.compilercontrol.share.actions.CompileAction.checkCompiled(CompileAction.java:74)
          at compiler.compilercontrol.share.actions.BaseAction.lambda$check$2(BaseAction.java:143)
          at java.base/java.util.ArrayList.forEach(ArrayList.java:1593)
          at compiler.compilercontrol.share.actions.BaseAction.check(BaseAction.java:141)
          at compiler.compilercontrol.share.actions.BaseAction.communicate(BaseAction.java:100)
          at compiler.compilercontrol.share.actions.BaseAction.main(BaseAction.java:59)
      ]

            Unassigned Unassigned
            dnsimon Douglas Simon
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: