< prev index next > test/hotspot/jtreg/compiler/lib/ir_framework/IRNode.java
Print this page
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;
* // 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");
}
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");
}
vectorNode(SUB_VD, "SubVD", TYPE_DOUBLE);
}
public static final String SUBTYPE_CHECK = PREFIX + "SUBTYPE_CHECK" + POSTFIX;
static {
! beforeMatchingNameRegex(SUBTYPE_CHECK, "SubTypeCheck");
}
public static final String TRAP = PREFIX + "TRAP" + POSTFIX;
static {
trapNodes(TRAP, "reason");
vectorNode(SUB_VD, "SubVD", TYPE_DOUBLE);
}
public static final String SUBTYPE_CHECK = PREFIX + "SUBTYPE_CHECK" + POSTFIX;
static {
! macroNodes(SUBTYPE_CHECK, "SubTypeCheck");
}
public static final String TRAP = PREFIX + "TRAP" + POSTFIX;
static {
trapNodes(TRAP, "reason");
/**
* 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) {
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
/**
* Apply {@code regex} on all machine independent ideal graph phases up to and including
* {@link CompilePhase#BEFORE_MATCHING}.
*/
! 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
/**
* 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) {
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));
/**
* Apply {@code regex} on all machine dependant ideal graph phases (i.e. on the mach graph) starting from
* {@link CompilePhase#MATCHING}.
*/
! 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 >