comparison graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java @ 18998:ec0733b5a90a

Allow final modifier on node subclasses and start adding the modifier to leaf classes.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Wed, 28 Jan 2015 02:34:14 +0100
parents 480bd3b1adcd
children 0b05bd821399
comparison
equal deleted inserted replaced
18997:2ccaaf5a6be4 18998:ec0733b5a90a
183 * an assumption but as we need an instanceof check anyway we can verify both 183 * an assumption but as we need an instanceof check anyway we can verify both
184 * properties by checking of the receiver is an instance of the single implementor. 184 * properties by checking of the receiver is an instance of the single implementor.
185 */ 185 */
186 LogicNode condition = graph().unique(new InstanceOfNode(singleImplementor, receiver, getProfile())); 186 LogicNode condition = graph().unique(new InstanceOfNode(singleImplementor, receiver, getProfile()));
187 GuardNode guard = graph().unique( 187 GuardNode guard = graph().unique(
188 new GuardNode(condition, AbstractBeginNode.prevBegin(invoke().asNode()), DeoptimizationReason.OptimizedTypeCheckViolated, DeoptimizationAction.InvalidateRecompile, false, 188 new GuardNode(condition, AbstractBeginNode.prevBegin(invoke().asNode()), DeoptimizationReason.OptimizedTypeCheckViolated, DeoptimizationAction.InvalidateRecompile,
189 JavaConstant.NULL_POINTER)); 189 false, JavaConstant.NULL_POINTER));
190 PiNode piNode = graph().unique(new PiNode(receiver, StampFactory.declaredNonNull(singleImplementor), guard)); 190 PiNode piNode = graph().unique(new PiNode(receiver, StampFactory.declaredNonNull(singleImplementor), guard));
191 arguments().set(0, piNode); 191 arguments().set(0, piNode);
192 setInvokeKind(InvokeKind.Virtual); 192 setInvokeKind(InvokeKind.Virtual);
193 setTargetMethod(singleImplementorMethod); 193 setTargetMethod(singleImplementorMethod);
194 } 194 }