Skip to content

Commit 00caa9a

Browse files
committed
Add condition profile to IfNode
1 parent 801de6c commit 00caa9a

File tree

1 file changed

+3
-1
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/control

1 file changed

+3
-1
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,14 @@
2828
import com.oracle.graal.python.nodes.expression.CoerceToBooleanNode;
2929
import com.oracle.graal.python.nodes.statement.StatementNode;
3030
import com.oracle.truffle.api.frame.VirtualFrame;
31+
import com.oracle.truffle.api.profiles.ConditionProfile;
3132

3233
public final class IfNode extends StatementNode {
3334

3435
@Child private CoerceToBooleanNode condition;
3536
@Child private StatementNode then;
3637
@Child private StatementNode orelse;
38+
private final ConditionProfile conditionProfile = ConditionProfile.createCountingProfile();
3739

3840
public IfNode(CoerceToBooleanNode condition, StatementNode then, StatementNode orelse) {
3941
this.condition = condition;
@@ -55,7 +57,7 @@ public StatementNode getElse() {
5557

5658
@Override
5759
public void executeVoid(VirtualFrame frame) {
58-
if (condition.executeBoolean(frame)) {
60+
if (conditionProfile.profile(condition.executeBoolean(frame))) {
5961
then.executeVoid(frame);
6062
} else if (orelse != null) {
6163
orelse.executeVoid(frame);

0 commit comments

Comments
 (0)