src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/AddressLoweringPhase.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/AddressLoweringPhase.java Fri Feb 02 10:37:48 2018 -0500
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/AddressLoweringPhase.java Fri Feb 02 17:28:17 2018 -0800
@@ -33,6 +33,15 @@
public class AddressLoweringPhase extends Phase {
public abstract static class AddressLowering {
+
+ @SuppressWarnings("unused")
+ public void preProcess(StructuredGraph graph) {
+ }
+
+ @SuppressWarnings("unused")
+ public void postProcess(AddressNode lowered) {
+ }
+
public abstract AddressNode lower(ValueNode base, ValueNode offset);
}
@@ -45,11 +54,13 @@
@Override
protected void run(StructuredGraph graph) {
+ lowering.preProcess(graph);
for (Node node : graph.getNodes()) {
AddressNode lowered;
if (node instanceof OffsetAddressNode) {
OffsetAddressNode address = (OffsetAddressNode) node;
lowered = lowering.lower(address.getBase(), address.getOffset());
+ lowering.postProcess(lowered);
} else {
continue;
}