@@ -256,6 +256,8 @@ public final class PBytecodeRootNode extends PRootNode implements BytecodeOSRNod
256
256
private static final NodeSupplier <CastToJavaIntExactNode > NODE_CAST_TO_JAVA_INT_EXACT = CastToJavaIntExactNode ::create ;
257
257
private static final CastToJavaIntExactNode UNCACHED_CAST_TO_JAVA_INT_EXACT = CastToJavaIntExactNode .getUncached ();
258
258
private static final ImportNode UNCACHED_IMPORT = ImportNode .getUncached ();
259
+ private static final ReadNameNode UNCACHED_READ_NAME = ReadNameNodeGen .getUncached ();
260
+ private static final WriteNameNode UNCACHED_WRITE_NAME = WriteNameNodeGen .getUncached ();
259
261
private static final NodeSupplier <ImportNode > NODE_IMPORT = ImportNode ::create ;
260
262
private static final ImportStarNode UNCACHED_IMPORT_STAR = ImportStarNode .getUncached ();
261
263
private static final NodeSupplier <ImportStarNode > NODE_IMPORT_STAR = ImportStarNode ::create ;
@@ -337,6 +339,7 @@ public final class PBytecodeRootNode extends PRootNode implements BytecodeOSRNod
337
339
private static final NodeSupplier <PyObjectSizeNode > NODE_SIZE = PyObjectSizeNode ::create ;
338
340
private static final NodeSupplier <GetTPFlagsNode > NODE_TP_FLAGS = GetTPFlagsNode ::create ;
339
341
private static final GetTPFlagsNode UNCACHED_TP_FLAGS = GetTPFlagsNode .getUncached ();
342
+ private static final DeleteGlobalNode UNCACHED_DELETE_GLOBAL = DeleteGlobalNodeGen .getUncached ();
340
343
private static final NodeSupplier <MatchKeysNode > NODE_MATCH_KEYS = MatchKeysNode ::create ;
341
344
private static final NodeSupplier <CopyDictWithoutKeysNode > NODE_COPY_DICT_WITHOUT_KEYS = CopyDictWithoutKeysNode ::create ;
342
345
private static final KwargsMergeNode UNCACHED_KWARGS_MERGE = KwargsMergeNode .getUncached ();
@@ -551,6 +554,7 @@ public final class PBytecodeRootNode extends PRootNode implements BytecodeOSRNod
551
554
*/
552
555
@ Children private final Node [] adoptedNodes ;
553
556
@ Child private CalleeContext calleeContext = CalleeContext .create ();
557
+ // TODO: make some of those lazy?
554
558
@ Child private PythonObjectFactory factory = PythonObjectFactory .create ();
555
559
@ Child private ExceptionStateNodes .GetCaughtExceptionNode getCaughtExceptionNode ;
556
560
@ Child private MaterializeFrameNode traceMaterializeFrameNode = null ;
@@ -4628,7 +4632,7 @@ private int bytecodeLoadGlobal(VirtualFrame virtualFrame, Object globals, int st
4628
4632
4629
4633
private void bytecodeDeleteGlobal (VirtualFrame virtualFrame , Object globals , int bci , int oparg , Node [] localNodes , TruffleString [] localNames ) {
4630
4634
TruffleString varname = localNames [oparg ];
4631
- DeleteGlobalNode deleteGlobalNode = insertChildNode (localNodes , bci , DeleteGlobalNodeGen .class , NODE_DELETE_GLOBAL );
4635
+ DeleteGlobalNode deleteGlobalNode = insertChildNode (localNodes , bci , UNCACHED_DELETE_GLOBAL , DeleteGlobalNodeGen .class , NODE_DELETE_GLOBAL , usingCachedNodes );
4632
4636
deleteGlobalNode .executeWithGlobals (virtualFrame , globals , varname );
4633
4637
}
4634
4638
@@ -4668,7 +4672,7 @@ private void bytecodeDeleteName(VirtualFrame virtualFrame, Object globals, Objec
4668
4672
PyObjectDelItem delItemNode = insertChildNode (localNodes , bci , UNCACHED_OBJECT_DEL_ITEM , PyObjectDelItemNodeGen .class , NODE_OBJECT_DEL_ITEM , useCachedNodes );
4669
4673
delItemNode .execute (virtualFrame , locals , varname );
4670
4674
} else {
4671
- DeleteGlobalNode deleteGlobalNode = insertChildNode (localNodes , bci + 1 , DeleteGlobalNodeGen .class , NODE_DELETE_GLOBAL );
4675
+ DeleteGlobalNode deleteGlobalNode = insertChildNode (localNodes , bci + 1 , UNCACHED_DELETE_GLOBAL , DeleteGlobalNodeGen .class , NODE_DELETE_GLOBAL , useCachedNodes );
4672
4676
deleteGlobalNode .executeWithGlobals (virtualFrame , globals , varname );
4673
4677
}
4674
4678
}
@@ -4974,7 +4978,7 @@ private void bytecodeCallMethodVarargs(VirtualFrame virtualFrame, int stackTop,
4974
4978
@ BytecodeInterpreterSwitch
4975
4979
private int bytecodeLoadName (VirtualFrame virtualFrame , int initialStackTop , int bci , int oparg , Node [] localNodes , TruffleString [] localNames ) {
4976
4980
int stackTop = initialStackTop ;
4977
- ReadNameNode readNameNode = insertChildNode (localNodes , bci , ReadNameNodeGen .class , NODE_READ_NAME );
4981
+ ReadNameNode readNameNode = insertChildNode (localNodes , bci , UNCACHED_READ_NAME , ReadNameNodeGen .class , NODE_READ_NAME , usingCachedNodes );
4978
4982
virtualFrame .setObject (++stackTop , readNameNode .execute (virtualFrame , localNames [oparg ]));
4979
4983
return stackTop ;
4980
4984
}
@@ -5209,7 +5213,7 @@ private int bytecodeStoreName(VirtualFrame virtualFrame, int initialStackTop, in
5209
5213
int stackTop = initialStackTop ;
5210
5214
Object value = virtualFrame .getObject (stackTop );
5211
5215
virtualFrame .setObject (stackTop --, null );
5212
- WriteNameNode writeNameNode = insertChildNode (localNodes , bci , WriteNameNodeGen .class , NODE_WRITE_NAME );
5216
+ WriteNameNode writeNameNode = insertChildNode (localNodes , bci , UNCACHED_WRITE_NAME , WriteNameNodeGen .class , NODE_WRITE_NAME , usingCachedNodes );
5213
5217
writeNameNode .execute (virtualFrame , localNames [oparg ], value );
5214
5218
return stackTop ;
5215
5219
}
0 commit comments