23 24 25 package org.graalvm.compiler.nodes.spi; 26 27 import org.graalvm.compiler.core.common.spi.ConstantFieldProvider; 28 import org.graalvm.compiler.graph.NodeSourcePosition; 29 import org.graalvm.compiler.nodes.FixedNode; 30 import org.graalvm.compiler.nodes.FixedWithNextNode; 31 import org.graalvm.compiler.nodes.LogicNode; 32 import org.graalvm.compiler.nodes.extended.AnchoringNode; 33 import org.graalvm.compiler.nodes.extended.GuardingNode; 34 35 import jdk.vm.ci.meta.ConstantReflectionProvider; 36 import jdk.vm.ci.meta.DeoptimizationAction; 37 import jdk.vm.ci.meta.DeoptimizationReason; 38 import jdk.vm.ci.meta.MetaAccessProvider; 39 import jdk.vm.ci.meta.SpeculationLog.Speculation; 40 41 public interface LoweringTool { 42 43 MetaAccessProvider getMetaAccess(); 44 45 LoweringProvider getLowerer(); 46 47 ConstantReflectionProvider getConstantReflection(); 48 49 ConstantFieldProvider getConstantFieldProvider(); 50 51 Replacements getReplacements(); 52 53 StampProvider getStampProvider(); 54 55 GuardingNode createGuard(FixedNode before, LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action); 56 57 GuardingNode createGuard(FixedNode before, LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action, Speculation speculation, boolean negated, 58 NodeSourcePosition noDeoptSuccessorPosition); 59 60 /** 61 * Gets the closest fixed node preceding the node currently being lowered. 62 */ | 23 24 25 package org.graalvm.compiler.nodes.spi; 26 27 import org.graalvm.compiler.core.common.spi.ConstantFieldProvider; 28 import org.graalvm.compiler.graph.NodeSourcePosition; 29 import org.graalvm.compiler.nodes.FixedNode; 30 import org.graalvm.compiler.nodes.FixedWithNextNode; 31 import org.graalvm.compiler.nodes.LogicNode; 32 import org.graalvm.compiler.nodes.extended.AnchoringNode; 33 import org.graalvm.compiler.nodes.extended.GuardingNode; 34 35 import jdk.vm.ci.meta.ConstantReflectionProvider; 36 import jdk.vm.ci.meta.DeoptimizationAction; 37 import jdk.vm.ci.meta.DeoptimizationReason; 38 import jdk.vm.ci.meta.MetaAccessProvider; 39 import jdk.vm.ci.meta.SpeculationLog.Speculation; 40 41 public interface LoweringTool { 42 43 CoreProviders getProviders(); 44 45 MetaAccessProvider getMetaAccess(); 46 47 LoweringProvider getLowerer(); 48 49 ConstantReflectionProvider getConstantReflection(); 50 51 ConstantFieldProvider getConstantFieldProvider(); 52 53 Replacements getReplacements(); 54 55 StampProvider getStampProvider(); 56 57 GuardingNode createGuard(FixedNode before, LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action); 58 59 GuardingNode createGuard(FixedNode before, LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action, Speculation speculation, boolean negated, 60 NodeSourcePosition noDeoptSuccessorPosition); 61 62 /** 63 * Gets the closest fixed node preceding the node currently being lowered. 64 */ |