Construct CallCompiledFunctionPosArgsDefaults

Performance Diagrams

Construct CallCompiledFunctionPosArgsDefaults 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)20339374388.11538461538461257.0CPython 2.764250430240.03846153846155426.0536434478904Nuitka (master)64250300391.96153846153845426.0538013927688Nuitka (develop)64250207543.8846153846154426.0539143841048Nuitka (factory)Construct CallCompiledFunctionPosArgsDefaultsTicks Construct CallCompiledFunctionPosArgsDefaults 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)20134105388.11538461538461257.0CPython 3.573651357240.03846153846155413.71959527529407Nuitka (master)73644694391.96153846153845413.7277730899184Nuitka (develop)73652814543.8846153846154413.71780703037325Nuitka (factory)Construct CallCompiledFunctionPosArgsDefaultsTicks

Source Code with Construct

from __future__ import print_function

def compiled_func(a = 1,b = 2,c = 3,d = 4,e = 5,f = 6):
    return a, b, c, d, e, f

def calledRepeatedly():
    # This is supposed to make a call to a non-compiled function, which is
    # being optimized separately.
# construct_begin
    compiled_func()
    compiled_func()
    compiled_func()
# construct_alternative



import itertools
for x in itertools.repeat(None, 50000):
    calledRepeatedly()

print("OK.")

Source Code without Construct

from __future__ import print_function

def compiled_func(a = 1,b = 2,c = 3,d = 4,e = 5,f = 6):
    return a, b, c, d, e, f

def calledRepeatedly():
    # This is supposed to make a call to a non-compiled function, which is
    # being optimized separately.
# construct_begin



# construct_alternative
    pass
# construct_end

import itertools
for x in itertools.repeat(None, 50000):
    calledRepeatedly()

print("OK.")

Context Diff of Source Code


Construct
Baseline
24 24
25 def calledRepeatedly(): 25 def calledRepeatedly():
26     # This is supposed to make a call to a non-compiled function, which is 26     # This is supposed to make a call to a non-compiled function, which is
27     # being optimized separately. 27     # being optimized separately.
28 # construct_begin 28 # construct_begin
n 29     compiled_func() n
30     compiled_func()
31     compiled_func()
32 # construct_alternative
33 29
34 30
t t 31  
32 # construct_alternative
33     pass
34 # construct_end
35 35
36 import itertools 36 import itertools
37 for x in itertools.repeat(None, 50000): 37 for x in itertools.repeat(None, 50000):
38     calledRepeatedly() 38     calledRepeatedly()
39 39

Context Diff of Generated Code


Construct
Baseline
36 static PyObject *const_tuple_d4571c3ff966778a8b3ba4a6bd66fdef_tuple; 36 static PyObject *const_tuple_d4571c3ff966778a8b3ba4a6bd66fdef_tuple;
37 static PyObject *const_str_plain_f; 37 static PyObject *const_str_plain_f;
38 extern PyObject *const_int_pos_1; 38 extern PyObject *const_int_pos_1;
39 extern PyObject *const_str_plain___file__; 39 extern PyObject *const_str_plain___file__;
40 extern PyObject *const_int_0; 40 extern PyObject *const_int_0;
n n 41 static PyObject *const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple;
42 static PyObject *const_str_plain_a;
41 static PyObject *const_str_plain_compiled_func; 43 static PyObject *const_str_plain_compiled_func;
n 42 static PyObject *const_str_plain_a; n
43 static PyObject *const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple;
44 extern PyObject *const_str_plain_print; 44 extern PyObject *const_str_plain_print;
45 static PyObject *const_int_pos_50000; 45 static PyObject *const_int_pos_50000;
46 static PyObject *const_int_pos_3; 46 static PyObject *const_int_pos_3;
47 static PyObject *const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple; 47 static PyObject *const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple;
48 static PyObject *const_str_plain_e; 48 static PyObject *const_str_plain_e;
84     PyTuple_SET_ITEM( const_tuple_d4571c3ff966778a8b3ba4a6bd66fdef_tuple, 3, const_str_plain_d ); Py_INCREF( const_str_plain_d ); 84     PyTuple_SET_ITEM( const_tuple_d4571c3ff966778a8b3ba4a6bd66fdef_tuple, 3, const_str_plain_d ); Py_INCREF( const_str_plain_d );
85     const_str_plain_e = UNSTREAM_STRING_ASCII( &constant_bin[ 3 ], 1, 1 ); 85     const_str_plain_e = UNSTREAM_STRING_ASCII( &constant_bin[ 3 ], 1, 1 );
86     PyTuple_SET_ITEM( const_tuple_d4571c3ff966778a8b3ba4a6bd66fdef_tuple, 4, const_str_plain_e ); Py_INCREF( const_str_plain_e ); 86     PyTuple_SET_ITEM( const_tuple_d4571c3ff966778a8b3ba4a6bd66fdef_tuple, 4, const_str_plain_e ); Py_INCREF( const_str_plain_e );
87     const_str_plain_f = UNSTREAM_STRING_ASCII( &constant_bin[ 13 ], 1, 1 ); 87     const_str_plain_f = UNSTREAM_STRING_ASCII( &constant_bin[ 13 ], 1, 1 );
88     PyTuple_SET_ITEM( const_tuple_d4571c3ff966778a8b3ba4a6bd66fdef_tuple, 5, const_str_plain_f ); Py_INCREF( const_str_plain_f ); 88     PyTuple_SET_ITEM( const_tuple_d4571c3ff966778a8b3ba4a6bd66fdef_tuple, 5, const_str_plain_f ); Py_INCREF( const_str_plain_f );
n 89     const_str_plain_compiled_func = UNSTREAM_STRING_ASCII( &constant_bin[ 14 ], 13, 1 ); n
90     const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple = PyTuple_New( 6 ); 89     const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple = PyTuple_New( 6 );
91     PyTuple_SET_ITEM( const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple, 0, const_int_pos_1 ); Py_INCREF( const_int_pos_1 ); 90     PyTuple_SET_ITEM( const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple, 0, const_int_pos_1 ); Py_INCREF( const_int_pos_1 );
92     const_int_pos_2 = PyLong_FromUnsignedLong( 2ul ); 91     const_int_pos_2 = PyLong_FromUnsignedLong( 2ul );
93     PyTuple_SET_ITEM( const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple, 1, const_int_pos_2 ); Py_INCREF( const_int_pos_2 ); 92     PyTuple_SET_ITEM( const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple, 1, const_int_pos_2 ); Py_INCREF( const_int_pos_2 );
94     const_int_pos_3 = PyLong_FromUnsignedLong( 3ul ); 93     const_int_pos_3 = PyLong_FromUnsignedLong( 3ul );
97     PyTuple_SET_ITEM( const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple, 3, const_int_pos_4 ); Py_INCREF( const_int_pos_4 ); 96     PyTuple_SET_ITEM( const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple, 3, const_int_pos_4 ); Py_INCREF( const_int_pos_4 );
98     const_int_pos_5 = PyLong_FromUnsignedLong( 5ul ); 97     const_int_pos_5 = PyLong_FromUnsignedLong( 5ul );
99     PyTuple_SET_ITEM( const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple, 4, const_int_pos_5 ); Py_INCREF( const_int_pos_5 ); 98     PyTuple_SET_ITEM( const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple, 4, const_int_pos_5 ); Py_INCREF( const_int_pos_5 );
100     const_int_pos_6 = PyLong_FromUnsignedLong( 6ul ); 99     const_int_pos_6 = PyLong_FromUnsignedLong( 6ul );
101     PyTuple_SET_ITEM( const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple, 5, const_int_pos_6 ); Py_INCREF( const_int_pos_6 ); 100     PyTuple_SET_ITEM( const_tuple_int_pos_1_int_pos_2_int_pos_3_int_pos_4_int_pos_5_int_pos_6_tuple, 5, const_int_pos_6 ); Py_INCREF( const_int_pos_6 );
n n 101     const_str_plain_compiled_func = UNSTREAM_STRING_ASCII( &constant_bin[ 14 ], 13, 1 );
102     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul ); 102     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul );
103     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 ); 103     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 );
104     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING_ASCII( &constant_bin[ 27 ], 3, 0 ); 104     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING_ASCII( &constant_bin[ 27 ], 3, 0 );
105     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 ); 105     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 );
106     const_str_plain_calledRepeatedly = UNSTREAM_STRING_ASCII( &constant_bin[ 30 ], 16, 1 ); 106     const_str_plain_calledRepeatedly = UNSTREAM_STRING_ASCII( &constant_bin[ 30 ], 16, 1 );
128 } 128 }
129 #endif 129 #endif
130 130
131 // The module code objects. 131 // The module code objects.
132 static PyCodeObject *codeobj_4aaaaa913a2a97d831539db38498ac07; 132 static PyCodeObject *codeobj_4aaaaa913a2a97d831539db38498ac07;
n 133 static PyCodeObject *codeobj_0b55da46781a7dd748b5c6892500c5ce; n 133 static PyCodeObject *codeobj_f12e824821c21afbec6f87ab2602d09d;
134 static PyCodeObject *codeobj_ebfec911678e73e9cca0580dfea014a2; 134 static PyCodeObject *codeobj_ebfec911678e73e9cca0580dfea014a2;
135 /* For use in "MainProgram.c". */ 135 /* For use in "MainProgram.c". */
136 PyCodeObject *codeobj_main = NULL; 136 PyCodeObject *codeobj_main = NULL;
137 137
138 static void createModuleCodeObjects(void) 138 static void createModuleCodeObjects(void)
139 { 139 {
140     module_filename_obj = const_str_digest_fefa4fff63affb5965d0d1c49af8d0a1; 140     module_filename_obj = const_str_digest_fefa4fff63affb5965d0d1c49af8d0a1;
141     codeobj_4aaaaa913a2a97d831539db38498ac07 = MAKE_CODEOBJ( module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE ); 141     codeobj_4aaaaa913a2a97d831539db38498ac07 = MAKE_CODEOBJ( module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE );
142     codeobj_main = codeobj_4aaaaa913a2a97d831539db38498ac07; 142     codeobj_main = codeobj_4aaaaa913a2a97d831539db38498ac07;
n 143     codeobj_0b55da46781a7dd748b5c6892500c5ce = MAKE_CODEOBJ( module_filename_obj, const_str_plain_calledRepeatedly, 25, const_tuple_empty, 0, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE ); n 143     codeobj_f12e824821c21afbec6f87ab2602d09d = MAKE_CODEOBJ( module_filename_obj, const_str_plain_calledRepeatedly, 25, const_tuple_empty, 0, 0, CO_NOFREE );
144     codeobj_ebfec911678e73e9cca0580dfea014a2 = MAKE_CODEOBJ( module_filename_obj, const_str_plain_compiled_func, 22, const_tuple_d4571c3ff966778a8b3ba4a6bd66fdef_tuple, 6, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE ); 144     codeobj_ebfec911678e73e9cca0580dfea014a2 = MAKE_CODEOBJ( module_filename_obj, const_str_plain_compiled_func, 22, const_tuple_d4571c3ff966778a8b3ba4a6bd66fdef_tuple, 6, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE );
145 } 145 }
146 146
147 // The module function declarations. 147 // The module function declarations.
148 static PyObject *MAKE_FUNCTION___main__$$$function_1_compiled_func( PyObject *defaults ); 148 static PyObject *MAKE_FUNCTION___main__$$$function_1_compiled_func( PyObject *defaults );
261 #ifndef __NUITKA_NO_ASSERT__ 261 #ifndef __NUITKA_NO_ASSERT__
262     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED(); 262     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED();
263 #endif 263 #endif
264 264
265     // Local variable declarations. 265     // Local variable declarations.
n 266     struct Nuitka_FrameObject *frame_0b55da46781a7dd748b5c6892500c5ce; n
267     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
268     PyObject *exception_type = NULL;
269     PyObject *exception_value = NULL;
270     PyTracebackObject *exception_tb = NULL;
271     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
272     static struct Nuitka_FrameObject *cache_frame_0b55da46781a7dd748b5c6892500c5ce = NULL;
273     PyObject *tmp_return_value = NULL; 266     PyObject *tmp_return_value = NULL;
274 267
275     // Actual function code. 268     // Actual function code.
n 276     MAKE_OR_REUSE_FRAME( cache_frame_0b55da46781a7dd748b5c6892500c5ce, codeobj_0b55da46781a7dd748b5c6892500c5ce, module___main__, 0 ); n
277     frame_0b55da46781a7dd748b5c6892500c5ce = cache_frame_0b55da46781a7dd748b5c6892500c5ce;
278  
279     // Push the new frame as the currently active one.
280     pushFrameStack( frame_0b55da46781a7dd748b5c6892500c5ce );
281  
282     // Mark the frame object as in use, ref count 1 will be up for reuse.
283     assert( Py_REFCNT( frame_0b55da46781a7dd748b5c6892500c5ce ) == 2 ); // Frame stack
284  
285     // Framed code:
286     {
287     PyObject *tmp_called_name_1;
288     PyObject *tmp_mvar_value_1;
289     PyObject *tmp_call_result_1;
290     tmp_mvar_value_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_compiled_func );
291  
292     if (unlikely( tmp_mvar_value_1 == NULL ))
293     {
294         tmp_mvar_value_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_compiled_func );
295     }
296  
297     if ( tmp_mvar_value_1 == NULL )
298     {
299  
300         exception_type = PyExc_NameError;
301         Py_INCREF( exception_type );
302         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "compiled_func" );
303         exception_tb = NULL;
304         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
305         CHAIN_EXCEPTION( exception_value );
306  
307         exception_lineno = 29;
308  
309         goto frame_exception_exit_1;
310     }
311  
312     tmp_called_name_1 = tmp_mvar_value_1;
313     frame_0b55da46781a7dd748b5c6892500c5ce->m_frame.f_lineno = 29;
314     tmp_call_result_1 = CALL_FUNCTION_NO_ARGS( tmp_called_name_1 );
315     if ( tmp_call_result_1 == NULL )
316     {
317         assert( ERROR_OCCURRED() );
318  
319         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
320  
321  
322         exception_lineno = 29;
323  
324         goto frame_exception_exit_1;
325     }
326     Py_DECREF( tmp_call_result_1 );
327     }
328     {
329     PyObject *tmp_called_name_2;
330     PyObject *tmp_mvar_value_2;
331     PyObject *tmp_call_result_2;
332     tmp_mvar_value_2 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_compiled_func );
333  
334     if (unlikely( tmp_mvar_value_2 == NULL ))
335     {
336         tmp_mvar_value_2 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_compiled_func );
337     }
338  
339     if ( tmp_mvar_value_2 == NULL )
340     {
341  
342         exception_type = PyExc_NameError;
343         Py_INCREF( exception_type );
344         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "compiled_func" );
345         exception_tb = NULL;
346         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
347         CHAIN_EXCEPTION( exception_value );
348  
349         exception_lineno = 30;
350  
351         goto frame_exception_exit_1;
352     }
353  
354     tmp_called_name_2 = tmp_mvar_value_2;
355     frame_0b55da46781a7dd748b5c6892500c5ce->m_frame.f_lineno = 30;
356     tmp_call_result_2 = CALL_FUNCTION_NO_ARGS( tmp_called_name_2 );
357     if ( tmp_call_result_2 == NULL )
358     {
359         assert( ERROR_OCCURRED() );
360  
361         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
362  
363  
364         exception_lineno = 30;
365  
366         goto frame_exception_exit_1;
367     }
368     Py_DECREF( tmp_call_result_2 );
369     }
370     {
371     PyObject *tmp_called_name_3;
372     PyObject *tmp_mvar_value_3;
373     PyObject *tmp_call_result_3;
374     tmp_mvar_value_3 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_compiled_func );
375  
376     if (unlikely( tmp_mvar_value_3 == NULL ))
377     {
378         tmp_mvar_value_3 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_compiled_func );
379     }
380  
381     if ( tmp_mvar_value_3 == NULL )
382     {
383  
384         exception_type = PyExc_NameError;
385         Py_INCREF( exception_type );
386         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "compiled_func" );
387         exception_tb = NULL;
388         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
389         CHAIN_EXCEPTION( exception_value );
390  
391         exception_lineno = 31;
392  
393         goto frame_exception_exit_1;
394     }
395  
396     tmp_called_name_3 = tmp_mvar_value_3;
397     frame_0b55da46781a7dd748b5c6892500c5ce->m_frame.f_lineno = 31;
398     tmp_call_result_3 = CALL_FUNCTION_NO_ARGS( tmp_called_name_3 );
399     if ( tmp_call_result_3 == NULL )
400     {
401         assert( ERROR_OCCURRED() );
402  
403         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
404  
405  
406         exception_lineno = 31;
407  
408         goto frame_exception_exit_1;
409     }
410     Py_DECREF( tmp_call_result_3 );
411     }
412  
413 #if 0
414     RESTORE_FRAME_EXCEPTION( frame_0b55da46781a7dd748b5c6892500c5ce );
415 #endif
416  
417     // Put the previous frame back on top.
418     popFrameStack();
419  
420     goto frame_no_exception_1;
421  
422     frame_exception_exit_1:;
423  
424 #if 0
425     RESTORE_FRAME_EXCEPTION( frame_0b55da46781a7dd748b5c6892500c5ce );
426 #endif
427  
428     if ( exception_tb == NULL )
429     {
430         exception_tb = MAKE_TRACEBACK( frame_0b55da46781a7dd748b5c6892500c5ce, exception_lineno );
431     }
432     else if ( exception_tb->tb_frame != &frame_0b55da46781a7dd748b5c6892500c5ce->m_frame )
433     {
434         exception_tb = ADD_TRACEBACK( exception_tb, frame_0b55da46781a7dd748b5c6892500c5ce, exception_lineno );
435     }
436  
437     // Attachs locals to frame if any.
438     Nuitka_Frame_AttachLocals(
439         (struct Nuitka_FrameObject *)frame_0b55da46781a7dd748b5c6892500c5ce,
440         type_description_1
441     );
442  
443  
444     // Release cached frame.
445     if ( frame_0b55da46781a7dd748b5c6892500c5ce == cache_frame_0b55da46781a7dd748b5c6892500c5ce )
446     {
447         Py_DECREF( frame_0b55da46781a7dd748b5c6892500c5ce );
448     }
449     cache_frame_0b55da46781a7dd748b5c6892500c5ce = NULL;
450  
451     assertFrameObject( frame_0b55da46781a7dd748b5c6892500c5ce );
452  
453     // Put the previous frame back on top.
454     popFrameStack();
455  
456     // Return the error.
457     goto function_exception_exit;
458  
459     frame_no_exception_1:;
460     { 269     {
461     tmp_return_value = Py_None; 270     tmp_return_value = Py_None;
462     Py_INCREF( tmp_return_value ); 271     Py_INCREF( tmp_return_value );
463     goto function_return_exit; 272     goto function_return_exit;
464     } 273     }
465 274
466     // Return statement must have exited already. 275     // Return statement must have exited already.
467     NUITKA_CANNOT_GET_HERE( __main__$$$function_2_calledRepeatedly ); 276     NUITKA_CANNOT_GET_HERE( __main__$$$function_2_calledRepeatedly );
468     return NULL; 277     return NULL;
469 278
n 470 function_exception_exit: n
471     assert( exception_type );
472     RESTORE_ERROR_OCCURRED( exception_type, exception_value, exception_tb );
473  
474     return NULL;
475 function_return_exit: 279 function_return_exit:
476 280
477 CHECK_OBJECT( tmp_return_value ); 281 CHECK_OBJECT( tmp_return_value );
478 assert( had_error || !ERROR_OCCURRED() ); 282 assert( had_error || !ERROR_OCCURRED() );
479 return tmp_return_value; 283 return tmp_return_value;
512         impl___main__$$$function_2_calledRepeatedly, 316         impl___main__$$$function_2_calledRepeatedly,
513         const_str_plain_calledRepeatedly, 317         const_str_plain_calledRepeatedly,
514 #if PYTHON_VERSION >= 300 318 #if PYTHON_VERSION >= 300
515         NULL, 319         NULL,
516 #endif 320 #endif
t 517         codeobj_0b55da46781a7dd748b5c6892500c5ce, t 321         codeobj_f12e824821c21afbec6f87ab2602d09d,
518         NULL, 322         NULL,
519 #if PYTHON_VERSION >= 300 323 #if PYTHON_VERSION >= 300
520         NULL, 324         NULL,
521         NULL, 325         NULL,
522 #endif 326 #endif