|
28 | 28 | import static jdk.vm.ci.meta.DeoptimizationReason.NullCheckException;
|
29 | 29 | import static org.graalvm.compiler.core.common.GraalOptions.HotSpotPrintInlining;
|
30 | 30 |
|
31 |
| -import java.lang.reflect.Constructor; |
32 | 31 | import java.util.ArrayDeque;
|
33 | 32 | import java.util.ArrayList;
|
34 | 33 | import java.util.List;
|
|
49 | 48 | import org.graalvm.compiler.debug.DebugCloseable;
|
50 | 49 | import org.graalvm.compiler.debug.DebugContext;
|
51 | 50 | import org.graalvm.compiler.debug.GraalError;
|
52 |
| -import org.graalvm.compiler.graph.GraalGraphError; |
53 | 51 | import org.graalvm.compiler.graph.Graph.DuplicationReplacement;
|
54 | 52 | import org.graalvm.compiler.graph.Graph.Mark;
|
55 | 53 | import org.graalvm.compiler.graph.Graph.NodeEventScope;
|
|
63 | 61 | import org.graalvm.compiler.nodes.AbstractEndNode;
|
64 | 62 | import org.graalvm.compiler.nodes.AbstractMergeNode;
|
65 | 63 | import org.graalvm.compiler.nodes.BeginNode;
|
66 |
| -import org.graalvm.compiler.nodes.CallTargetNode; |
67 | 64 | import org.graalvm.compiler.nodes.CallTargetNode.InvokeKind;
|
68 | 65 | import org.graalvm.compiler.nodes.DeoptimizeNode;
|
69 | 66 | import org.graalvm.compiler.nodes.DeoptimizingGuard;
|
70 | 67 | import org.graalvm.compiler.nodes.EndNode;
|
71 | 68 | import org.graalvm.compiler.nodes.FixedGuardNode;
|
72 | 69 | import org.graalvm.compiler.nodes.FixedNode;
|
73 |
| -import org.graalvm.compiler.nodes.FixedWithNextNode; |
74 | 70 | import org.graalvm.compiler.nodes.FrameState;
|
75 | 71 | import org.graalvm.compiler.nodes.InliningLog;
|
76 | 72 | import org.graalvm.compiler.nodes.Invoke;
|
@@ -1017,36 +1013,6 @@ public static StructuredGraph getIntrinsicGraph(Replacements replacements, Resol
|
1017 | 1013 | return replacements.getSubstitution(target, invokeBci, trackNodeSourcePosition, replaceePosition);
|
1018 | 1014 | }
|
1019 | 1015 |
|
1020 |
| - public static FixedWithNextNode inlineMacroNode(Invoke invoke, ResolvedJavaMethod concrete, Class<? extends FixedWithNextNode> macroNodeClass) throws GraalError { |
1021 |
| - StructuredGraph graph = invoke.asNode().graph(); |
1022 |
| - if (!concrete.equals(((MethodCallTargetNode) invoke.callTarget()).targetMethod())) { |
1023 |
| - assert ((MethodCallTargetNode) invoke.callTarget()).invokeKind().hasReceiver(); |
1024 |
| - InliningUtil.replaceInvokeCallTarget(invoke, graph, InvokeKind.Special, concrete); |
1025 |
| - } |
1026 |
| - |
1027 |
| - FixedWithNextNode macroNode = createMacroNodeInstance(macroNodeClass, invoke); |
1028 |
| - |
1029 |
| - CallTargetNode callTarget = invoke.callTarget(); |
1030 |
| - if (invoke instanceof InvokeNode) { |
1031 |
| - graph.replaceFixedWithFixed((InvokeNode) invoke, graph.add(macroNode)); |
1032 |
| - } else { |
1033 |
| - InvokeWithExceptionNode invokeWithException = (InvokeWithExceptionNode) invoke; |
1034 |
| - invokeWithException.killExceptionEdge(); |
1035 |
| - graph.replaceSplitWithFixed(invokeWithException, graph.add(macroNode), invokeWithException.next()); |
1036 |
| - } |
1037 |
| - GraphUtil.killWithUnusedFloatingInputs(callTarget); |
1038 |
| - return macroNode; |
1039 |
| - } |
1040 |
| - |
1041 |
| - private static FixedWithNextNode createMacroNodeInstance(Class<? extends FixedWithNextNode> macroNodeClass, Invoke invoke) throws GraalError { |
1042 |
| - try { |
1043 |
| - Constructor<?> cons = macroNodeClass.getDeclaredConstructor(Invoke.class); |
1044 |
| - return (FixedWithNextNode) cons.newInstance(invoke); |
1045 |
| - } catch (ReflectiveOperationException | IllegalArgumentException | SecurityException e) { |
1046 |
| - throw new GraalGraphError(e).addContext(invoke.asNode()).addContext("macroSubstitution", macroNodeClass); |
1047 |
| - } |
1048 |
| - } |
1049 |
| - |
1050 | 1016 | /**
|
1051 | 1017 | * This method exclude InstrumentationNode from inlining heuristics.
|
1052 | 1018 | */
|
|
0 commit comments