Skip to content

Commit 1674ba3

Browse files
committed
Fix style
1 parent 80add8c commit 1674ba3

File tree

4 files changed

+12
-9
lines changed

4 files changed

+12
-9
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/control/ReturnNode.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828
import com.oracle.graal.python.builtins.objects.PNone;
2929
import com.oracle.graal.python.nodes.PNode;
3030
import com.oracle.graal.python.nodes.frame.WriteFrameSlotNode;
31-
import com.oracle.graal.python.nodes.expression.ExpressionNode;
32-
import com.oracle.graal.python.nodes.frame.WriteIdentifierNode;
3331
import com.oracle.graal.python.nodes.statement.StatementNode;
3432
import com.oracle.graal.python.runtime.exception.ReturnException;
3533
import com.oracle.truffle.api.frame.VirtualFrame;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/control/ReturnTargetNode.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
*/
2626
package com.oracle.graal.python.nodes.control;
2727

28-
import com.oracle.graal.python.builtins.objects.PNone;
2928
import com.oracle.graal.python.nodes.expression.ExpressionNode;
3029
import com.oracle.graal.python.nodes.statement.StatementNode;
3130
import com.oracle.graal.python.runtime.exception.ReturnException;
@@ -37,7 +36,6 @@ public final class ReturnTargetNode extends ExpressionNode {
3736
@Child private ExpressionNode returnValue;
3837

3938
private final BranchProfile returnProfile = BranchProfile.create();
40-
private final BranchProfile fallthroughProfile = BranchProfile.create();
4139

4240
public ReturnTargetNode(StatementNode body, ExpressionNode returnValue) {
4341
this.body = body;
@@ -57,9 +55,8 @@ public Object execute(VirtualFrame frame) {
5755
try {
5856
return body.returnExecute(frame);
5957
} catch (ReturnException ire) {
60-
// fall-though
58+
returnProfile.enter();
59+
return returnValue.execute(frame);
6160
}
62-
returnProfile.enter();
63-
return returnValue.execute(frame);
6461
}
6562
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/generator/GeneratorBlockNode.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
*/
2626
package com.oracle.graal.python.nodes.generator;
2727

28-
import com.oracle.graal.python.builtins.objects.PNone;
2928
import com.oracle.graal.python.nodes.control.BaseBlockNode;
3029
import com.oracle.graal.python.nodes.statement.StatementNode;
3130
import com.oracle.graal.python.parser.GeneratorInfo;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/statement/StatementNode.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727

2828
import com.oracle.graal.python.builtins.objects.PNone;
2929
import com.oracle.graal.python.nodes.PNode;
30+
import com.oracle.truffle.api.CompilerAsserts;
31+
import com.oracle.truffle.api.CompilerDirectives;
3032
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
3133
import com.oracle.truffle.api.frame.VirtualFrame;
3234
import com.oracle.truffle.api.instrumentation.GenerateWrapper;
@@ -35,11 +37,13 @@
3537
import com.oracle.truffle.api.instrumentation.Tag;
3638

3739
/**
38-
* Base class for all statements. Statements never return a value.
40+
* Base class for all statements. Statements normally never return a value, unless executed using
41+
* {@link #returnExecute(VirtualFrame)}.
3942
*/
4043
@GenerateWrapper
4144
public abstract class StatementNode extends PNode {
4245
@CompilationFinal private boolean isTryBlock = false;
46+
@CompilationFinal private boolean returnFallThrough;
4347

4448
public abstract void executeVoid(VirtualFrame frame);
4549

@@ -50,11 +54,16 @@ public abstract class StatementNode extends PNode {
5054
*/
5155
public Object returnExecute(VirtualFrame frame) {
5256
executeVoid(frame);
57+
if (!returnFallThrough) {
58+
CompilerDirectives.transferToInterpreterAndInvalidate();
59+
returnFallThrough = true;
60+
}
5361
return PNone.NONE;
5462
}
5563

5664
// Helper method
5765
protected final Object genericExecute(VirtualFrame frame, boolean isReturnExecute) {
66+
CompilerAsserts.partialEvaluationConstant(isReturnExecute);
5867
if (isReturnExecute) {
5968
return returnExecute(frame);
6069
} else {

0 commit comments

Comments
 (0)