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

Inconsistent inlining behavior with CompileOnly

    Details

    • Subcomponent:
    • Resolved In Build:
      b34

      Description

      With the testcase below, executed with latest hs-comp with:

      java -XX:CompileOnly=TestCompileCommand::m1 -XX:CompileOnly=TestCompileCommand::m2 -XX:CompileCommand=quiet -XX:-BackgroundCompilation -XX:+PrintCompilation -XX:+PrintInlining -XX:-TieredCompilation TestCompileCommand

      I get the following output:

          170 1 b TestCompileCommand::m1 (4 bytes)
                                  @ 0 TestCompileCommand::m1_notinlined (1 bytes) not compilable (disabled)
          170 2 b TestCompileCommand::m2 (8 bytes)
                                  @ 4 TestCompileCommand::m2_notinlined (1 bytes) inline (hot)

      Either both m1_notinlined & m2_notinlined should be inlined or neither should be.


      public class TestCompileCommand {

          static void m1_notinlined() {
          }

          static void m1() {
              m1_notinlined();
          }

          static void m2_notinlined() {
          }

          static void m2(boolean flag) {
              if (flag) {
                  m2_notinlined();
              }
          }

          static public void main(String[] args) {
              for (int i = 0; i < 20000; i++) {
                  m1_notinlined();
                  m1_notinlined();
                  m1();
                  m2((i%2) == 0);
              }
          }
      }

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                neliasso Nils Eliasson
                Reporter:
                roland Roland Westrelin
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: