< prev index next >

test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java

Print this page
@@ -26,10 +26,11 @@
  import compiler.lib.ir_framework.driver.irmatching.mapping.*;
  import compiler.lib.ir_framework.driver.irmatching.parser.VMInfo;
  import compiler.lib.ir_framework.shared.CheckedTestFrameworkException;
  import compiler.lib.ir_framework.shared.TestFormat;
  import compiler.lib.ir_framework.shared.TestFormatException;
+ import compiler.valhalla.inlinetypes.InlineTypeIRNode;
  import jdk.test.lib.Platform;
  import jdk.test.whitebox.WhiteBox;
  
  import java.util.HashMap;
  import java.util.Map;

@@ -150,10 +151,16 @@
       *    // IR_NODE_MAPPINGS. This can be done by using the helper methods defined after all IR node placeholder string
       *    // definitions.
       * }
       */
  
+     // Valhalla: Make sure that all Valhalla specific IR nodes are also properly initialized. Doing it here also
+     //           ensures that the Flag VM is able to pick up the correct compile phases.
+     static {
+         InlineTypeIRNode.forceStaticInitialization();
+     }
+ 
      public static final String ABS_D = PREFIX + "ABS_D" + POSTFIX;
      static {
          beforeMatchingNameRegex(ABS_D, "AbsD");
      }
  

@@ -820,10 +827,15 @@
      public static final String IF = PREFIX + "IF" + POSTFIX;
      static {
          beforeMatchingNameRegex(IF, "If\\b");
      }
  
+     public static final String INLINE_TYPE = PREFIX + "INLINE_TYPE" + POSTFIX;
+     static {
+         beforeMatchingNameRegex(INLINE_TYPE, "InlineType");
+     }
+ 
      // Does not work for VM builds without JVMCI like x86_32 (a rule containing this regex will be skipped without having JVMCI built).
      public static final String INTRINSIC_OR_TYPE_CHECKED_INLINING_TRAP = PREFIX + "INTRINSIC_OR_TYPE_CHECKED_INLINING_TRAP" + POSTFIX;
      static {
          trapNodes(INTRINSIC_OR_TYPE_CHECKED_INLINING_TRAP, "intrinsic_or_type_checked_inlining");
      }

@@ -1956,11 +1968,11 @@
          vectorNode(SUB_VD, "SubVD", TYPE_DOUBLE);
      }
  
      public static final String SUBTYPE_CHECK = PREFIX + "SUBTYPE_CHECK" + POSTFIX;
      static {
-         beforeMatchingNameRegex(SUBTYPE_CHECK, "SubTypeCheck");
+         macroNodes(SUBTYPE_CHECK, "SubTypeCheck");
      }
  
      public static final String TRAP = PREFIX + "TRAP" + POSTFIX;
      static {
          trapNodes(TRAP, "reason");

@@ -2673,11 +2685,11 @@
  
      /**
       * Apply {@code regex} on all machine independent ideal graph phases up to and including
       * {@link CompilePhase#BEFORE_MATCHING}.
       */
-     private static void beforeMatching(String irNodePlaceholder, String regex) {
+     public static void beforeMatching(String irNodePlaceholder, String regex) {
          IR_NODE_MAPPINGS.put(irNodePlaceholder, new RegexTypeEntry(RegexType.IDEAL_INDEPENDENT, regex));
      }
  
      /**
       * Apply {@code irNodeRegex} as regex for the IR node name on all machine independent ideal graph phases up to and

@@ -2718,11 +2730,11 @@
  
      /**
       * Apply {@code regex} on all machine dependant ideal graph phases (i.e. on the mach graph) starting from
       * {@link CompilePhase#MATCHING}.
       */
-     private static void optoOnly(String irNodePlaceholder, String regex) {
+     public static void optoOnly(String irNodePlaceholder, String regex) {
          IR_NODE_MAPPINGS.put(irNodePlaceholder, new RegexTypeEntry(RegexType.OPTO_ASSEMBLY, regex));
      }
  
      private static void machOnly(String irNodePlaceholder, String regex) {
          IR_NODE_MAPPINGS.put(irNodePlaceholder, new RegexTypeEntry(RegexType.MACH, regex));
< prev index next >