Mercurial > hg > truffle
diff graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/call/SLInvokeNode.java @ 20956:2170de9acab0
SL: use DSL for call dispatches.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Tue, 14 Apr 2015 15:16:14 +0200 |
parents | abe7128ca473 |
children |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/call/SLInvokeNode.java Tue Apr 14 15:16:14 2015 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/call/SLInvokeNode.java Tue Apr 14 15:16:14 2015 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,24 +35,24 @@ * {@link SLFunction target function} can be computed by an {@link #functionNode arbitrary * expression}. This node is responsible for evaluating this expression, as well as evaluating the * {@link #argumentNodes arguments}. The actual dispatch is then delegated to a chain of - * {@link SLAbstractDispatchNode}s that form a polymorphic inline cache. + * {@link SLDispatchNode} that form a polymorphic inline cache. */ @NodeInfo(shortName = "invoke") public final class SLInvokeNode extends SLExpressionNode { public static SLInvokeNode create(SourceSection src, SLExpressionNode function, SLExpressionNode[] arguments) { - return new SLInvokeNode(src, function, arguments, new SLUninitializedDispatchNode()); + return new SLInvokeNode(src, function, arguments); } - @Child protected SLExpressionNode functionNode; - @Children protected final SLExpressionNode[] argumentNodes; - @Child protected SLAbstractDispatchNode dispatchNode; + @Child private SLExpressionNode functionNode; + @Children private final SLExpressionNode[] argumentNodes; + @Child private SLDispatchNode dispatchNode; - private SLInvokeNode(SourceSection src, SLExpressionNode functionNode, SLExpressionNode[] argumentNodes, SLAbstractDispatchNode dispatchNode) { + private SLInvokeNode(SourceSection src, SLExpressionNode functionNode, SLExpressionNode[] argumentNodes) { super(src); this.functionNode = functionNode; this.argumentNodes = argumentNodes; - this.dispatchNode = dispatchNode; + this.dispatchNode = SLDispatchNodeGen.create(); } @Override