Skip to content

Commit 5e622fa

Browse files
committed
Deduplicate empty cellEffectivelyFinalAssumptions arrays
1 parent be97e4f commit 5e622fa

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/bytecode/PBytecodeRootNode.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import static com.oracle.graal.python.nodes.BuiltinNames.T___BUILD_CLASS__;
4949
import static com.oracle.graal.python.nodes.SpecialAttributeNames.T___CLASS__;
5050
import static com.oracle.graal.python.runtime.exception.PythonErrorType.NameError;
51+
import static com.oracle.graal.python.util.PythonUtils.EMPTY_ASSUMPTION_ARRAY;
5152
import static com.oracle.graal.python.util.PythonUtils.TS_ENCODING;
5253
import static com.oracle.graal.python.util.PythonUtils.toTruffleStringUncached;
5354

@@ -175,9 +176,9 @@
175176
import com.oracle.graal.python.nodes.builtins.ListNodesFactory;
176177
import com.oracle.graal.python.nodes.builtins.TupleNodes;
177178
import com.oracle.graal.python.nodes.builtins.TupleNodesFactory;
178-
import com.oracle.graal.python.nodes.bytecode.PBytecodeRootNodeFactory.ObjHashMapPutNodeGen;
179179
import com.oracle.graal.python.nodes.bytecode.SequenceFromStackNode.ListFromStackNode;
180180
import com.oracle.graal.python.nodes.bytecode.SequenceFromStackNode.TupleFromStackNode;
181+
import com.oracle.graal.python.nodes.bytecode.PBytecodeRootNodeFactory.ObjHashMapPutNodeGen;
181182
import com.oracle.graal.python.nodes.bytecode.SequenceFromStackNodeFactory.ListFromStackNodeGen;
182183
import com.oracle.graal.python.nodes.bytecode.SequenceFromStackNodeFactory.TupleFromStackNodeGen;
183184
import com.oracle.graal.python.nodes.bytecode.instrumentation.InstrumentationRoot;
@@ -700,9 +701,13 @@ private PBytecodeRootNode(PythonLanguage language, FrameDescriptor fd, Signature
700701
this.exceptionHandlerRanges = co.exceptionHandlerRanges;
701702
this.co = co;
702703
assert co.stacksize < Math.pow(2, 12) : "stacksize cannot be larger than 12-bit range";
703-
cellEffectivelyFinalAssumptions = new Assumption[cellvars.length];
704-
for (int i = 0; i < cellvars.length; i++) {
705-
cellEffectivelyFinalAssumptions[i] = Truffle.getRuntime().createAssumption("cell is effectively final");
704+
if (cellvars.length == 0) {
705+
cellEffectivelyFinalAssumptions = EMPTY_ASSUMPTION_ARRAY;
706+
} else {
707+
cellEffectivelyFinalAssumptions = new Assumption[cellvars.length];
708+
for (int i = 0; i < cellvars.length; i++) {
709+
cellEffectivelyFinalAssumptions[i] = Truffle.getRuntime().createAssumption("cell is effectively final");
710+
}
706711
}
707712
int classcellIndexValue = -1;
708713
for (int i = 0; i < this.freevars.length; i++) {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/util/PythonUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
import javax.management.ObjectName;
6363
import javax.management.ReflectionException;
6464

65+
import com.oracle.truffle.api.Assumption;
6566
import org.graalvm.nativeimage.VMRuntime;
6667
import org.graalvm.polyglot.io.ByteSequence;
6768

@@ -145,6 +146,7 @@ public static TruffleStringBuilderUTF32 createStringBuilder() {
145146
public static final long[] EMPTY_LONG_ARRAY = new long[0];
146147
public static final double[] EMPTY_DOUBLE_ARRAY = new double[0];
147148
public static final char[] EMPTY_CHAR_ARRAY = new char[0];
149+
public static final Assumption[] EMPTY_ASSUMPTION_ARRAY = new Assumption[0];
148150
public static final ByteSequence EMPTY_BYTE_SEQUENCE = ByteSequence.create(EMPTY_BYTE_ARRAY);
149151

150152
/**

0 commit comments

Comments
 (0)