61 import org.graalvm.compiler.nodes.calc.ZeroExtendNode; |
61 import org.graalvm.compiler.nodes.calc.ZeroExtendNode; |
62 import org.graalvm.compiler.nodes.java.LogicCompareAndSwapNode; |
62 import org.graalvm.compiler.nodes.java.LogicCompareAndSwapNode; |
63 import org.graalvm.compiler.nodes.java.ValueCompareAndSwapNode; |
63 import org.graalvm.compiler.nodes.java.ValueCompareAndSwapNode; |
64 import org.graalvm.compiler.nodes.memory.FloatingReadNode; |
64 import org.graalvm.compiler.nodes.memory.FloatingReadNode; |
65 import org.graalvm.compiler.nodes.memory.ReadNode; |
65 import org.graalvm.compiler.nodes.memory.ReadNode; |
|
66 import org.graalvm.compiler.nodes.memory.VolatileReadNode; |
66 import org.graalvm.compiler.nodes.memory.WriteNode; |
67 import org.graalvm.compiler.nodes.memory.WriteNode; |
67 |
68 |
68 import jdk.vm.ci.meta.Value; |
69 import jdk.vm.ci.meta.Value; |
69 |
70 |
70 @MatchableNode(nodeClass = ConstantNode.class, shareable = true, ignoresSideEffects = true) |
71 @MatchableNode(nodeClass = ConstantNode.class, shareable = true, ignoresSideEffects = true) |
73 @MatchableNode(nodeClass = IfNode.class, inputs = {"condition"}) |
74 @MatchableNode(nodeClass = IfNode.class, inputs = {"condition"}) |
74 @MatchableNode(nodeClass = SubNode.class, inputs = {"x", "y"}, ignoresSideEffects = true) |
75 @MatchableNode(nodeClass = SubNode.class, inputs = {"x", "y"}, ignoresSideEffects = true) |
75 @MatchableNode(nodeClass = LeftShiftNode.class, inputs = {"x", "y"}, ignoresSideEffects = true) |
76 @MatchableNode(nodeClass = LeftShiftNode.class, inputs = {"x", "y"}, ignoresSideEffects = true) |
76 @MatchableNode(nodeClass = NarrowNode.class, inputs = {"value"}, ignoresSideEffects = true) |
77 @MatchableNode(nodeClass = NarrowNode.class, inputs = {"value"}, ignoresSideEffects = true) |
77 @MatchableNode(nodeClass = ReadNode.class, inputs = {"address"}) |
78 @MatchableNode(nodeClass = ReadNode.class, inputs = {"address"}) |
|
79 @MatchableNode(nodeClass = VolatileReadNode.class, inputs = {"address"}) |
78 @MatchableNode(nodeClass = ReinterpretNode.class, inputs = {"value"}, ignoresSideEffects = true) |
80 @MatchableNode(nodeClass = ReinterpretNode.class, inputs = {"value"}, ignoresSideEffects = true) |
79 @MatchableNode(nodeClass = SignExtendNode.class, inputs = {"value"}, ignoresSideEffects = true) |
81 @MatchableNode(nodeClass = SignExtendNode.class, inputs = {"value"}, ignoresSideEffects = true) |
80 @MatchableNode(nodeClass = UnsignedRightShiftNode.class, inputs = {"x", "y"}, ignoresSideEffects = true) |
82 @MatchableNode(nodeClass = UnsignedRightShiftNode.class, inputs = {"x", "y"}, ignoresSideEffects = true) |
81 @MatchableNode(nodeClass = WriteNode.class, inputs = {"address", "value"}) |
83 @MatchableNode(nodeClass = WriteNode.class, inputs = {"address", "value"}) |
82 @MatchableNode(nodeClass = ZeroExtendNode.class, inputs = {"value"}, ignoresSideEffects = true) |
84 @MatchableNode(nodeClass = ZeroExtendNode.class, inputs = {"value"}, ignoresSideEffects = true) |