Construct UnpackIterator

Performance Diagrams

Construct UnpackIterator 001000000100000020000002000000300000030000004000000400000050000005000000600000060000007000000700000080000008000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)854555189.78846153846155257.0CPython 2.77052003244.59615384615387300.1895717972473Nuitka (master)7049400399.4038461538462300.26484387111987Nuitka (develop)7049400554.2115384615385300.26484387111987Nuitka (factory)Construct UnpackIteratorTicks Construct UnpackIterator 00100000010000002000000200000030000003000000400000040000005000000500000060000006000000700000070000008000000800000090000009000000CPython 3.8Nuitka (master)Nuitka (develop)Nuitka (factory)913997489.78846153846155257.0CPython 3.85652509244.59615384615387351.2897928164448Nuitka (master)5652521399.4038461538462351.289468375192Nuitka (develop)5650624554.2115384615385351.34075712991Nuitka (factory)Construct UnpackIteratorTicks

Source Code with Construct

module_var = 1
range_arg = 2

def calledRepeatedly():
    global module_var
    c = module_var

    iterator=iter(range(range_arg))

# construct_begin
    a, b = iterator
# construct_alternative




    return a, b

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

print("OK.")

Source Code without Construct

module_var = 1
range_arg = 2

def calledRepeatedly():
    global module_var
    c = module_var

    iterator=iter(range(range_arg))

# construct_begin

# construct_alternative
    a = c
    b = c
# construct_end

    return a, b

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

print("OK.")

Context Diff of Source Code


Construct
Baseline
25     c = module_var 25     c = module_var
26 26
27     iterator=iter(range(range_arg)) 27     iterator=iter(range(range_arg))
28 28
29 # construct_begin 29 # construct_begin
n 30     a, b = iterator n 30  
31 # construct_alternative 31 # construct_alternative
t 32   t 32     a = c
33   33     b = c
34   34 # construct_end
35 35
36     return a, b 36     return a, b
37 37
38 import itertools 38 import itertools
39 for x in itertools.repeat(None, 50000): 39 for x in itertools.repeat(None, 50000):

Context Diff of Generated Code


Construct
Baseline
31 31
32 PyObject *module___main__; 32 PyObject *module___main__;
33 PyDictObject *moduledict___main__; 33 PyDictObject *moduledict___main__;
34 34
35 /* The declarations of module constants used, if any. */ 35 /* The declarations of module constants used, if any. */
n 36 static PyObject *mod_consts[20]; n 36 static PyObject *mod_consts[19];
37 #ifndef __NUITKA_NO_ASSERT__ 37 #ifndef __NUITKA_NO_ASSERT__
n 38 static Py_hash_t mod_consts_hash[20]; n 38 static Py_hash_t mod_consts_hash[19];
39 #endif 39 #endif
40 40
41 static PyObject *module_filename_obj = NULL; 41 static PyObject *module_filename_obj = NULL;
42 42
43 /* Indicator if this modules private constants were created yet. */ 43 /* Indicator if this modules private constants were created yet. */
48     if (constants_created == false) { 48     if (constants_created == false) {
49         loadConstantsBlob(&mod_consts[0], UNTRANSLATE("__main__")); 49         loadConstantsBlob(&mod_consts[0], UNTRANSLATE("__main__"));
50         constants_created = true; 50         constants_created = true;
51 51
52 #ifndef __NUITKA_NO_ASSERT__ 52 #ifndef __NUITKA_NO_ASSERT__
n 53         for(int i = 0; i < 20; i++) { n 53         for(int i = 0; i < 19; i++) {
54             mod_consts_hash[i] = DEEP_HASH(mod_consts[i]); 54             mod_consts_hash[i] = DEEP_HASH(mod_consts[i]);
55         } 55         }
56 #endif 56 #endif
57     } 57     }
58 } 58 }
68 #ifndef __NUITKA_NO_ASSERT__ 68 #ifndef __NUITKA_NO_ASSERT__
69 void checkModuleConstants___main__(void) { 69 void checkModuleConstants___main__(void) {
70     // The module may not have been used at all, then ignore this. 70     // The module may not have been used at all, then ignore this.
71     if (constants_created == false) return; 71     if (constants_created == false) return;
72 72
n 73     for(int i = 0; i < 20; i++) { n 73     for(int i = 0; i < 19; i++) {
74         assert(mod_consts_hash[i] == DEEP_HASH(mod_consts[i])); 74         assert(mod_consts_hash[i] == DEEP_HASH(mod_consts[i]));
75         CHECK_OBJECT_DEEP(mod_consts[i]); 75         CHECK_OBJECT_DEEP(mod_consts[i]);
76     } 76     }
77 } 77 }
78 #endif 78 #endif
82 static PyCodeObject *codeobj_7324887b1955c64fd89ca30fc4e7680f; 82 static PyCodeObject *codeobj_7324887b1955c64fd89ca30fc4e7680f;
83 /* For use in "MainProgram.c". */ 83 /* For use in "MainProgram.c". */
84 PyCodeObject *codeobj_main = NULL; 84 PyCodeObject *codeobj_main = NULL;
85 85
86 static void createModuleCodeObjects(void) { 86 static void createModuleCodeObjects(void) {
n 87     module_filename_obj = mod_consts[4]; CHECK_OBJECT(module_filename_obj); n 87     module_filename_obj = mod_consts[3]; CHECK_OBJECT(module_filename_obj);
88     codeobj_dcea85c014bdae4be918bbcebcf3f83c = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[18], NULL, NULL, 0, 0, 0); 88     codeobj_dcea85c014bdae4be918bbcebcf3f83c = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[17], NULL, NULL, 0, 0, 0);
89     codeobj_7324887b1955c64fd89ca30fc4e7680f = MAKE_CODEOBJECT(module_filename_obj, 23, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[10], mod_consts[19], NULL, 0, 0, 0); 89     codeobj_7324887b1955c64fd89ca30fc4e7680f = MAKE_CODEOBJECT(module_filename_obj, 23, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[9], mod_consts[18], NULL, 0, 0, 0);
90 } 90 }
91 91
92 // The module function declarations. 92 // The module function declarations.
93 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 93 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
94 94
103     // Local variable declarations. 103     // Local variable declarations.
104     PyObject *var_c = NULL; 104     PyObject *var_c = NULL;
105     PyObject *var_iterator = NULL; 105     PyObject *var_iterator = NULL;
106     PyObject *var_a = NULL; 106     PyObject *var_a = NULL;
107     PyObject *var_b = NULL; 107     PyObject *var_b = NULL;
n 108     PyObject *tmp_tuple_unpack_1__element_1 = NULL; n
109     PyObject *tmp_tuple_unpack_1__element_2 = NULL;
110     PyObject *tmp_tuple_unpack_1__source_iter = NULL;
111     struct Nuitka_FrameObject *frame_7324887b1955c64fd89ca30fc4e7680f; 108     struct Nuitka_FrameObject *frame_7324887b1955c64fd89ca30fc4e7680f;
112     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 109     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
113     PyObject *exception_type = NULL; 110     PyObject *exception_type = NULL;
114     PyObject *exception_value = NULL; 111     PyObject *exception_value = NULL;
115     PyTracebackObject *exception_tb = NULL; 112     PyTracebackObject *exception_tb = NULL;
116     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 113     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n 117     PyObject *tmp_iterator_attempt; n 114     static struct Nuitka_FrameObject *cache_frame_7324887b1955c64fd89ca30fc4e7680f = NULL;
115     PyObject *tmp_return_value = NULL;
118     PyObject *exception_keeper_type_1; 116     PyObject *exception_keeper_type_1;
119     PyObject *exception_keeper_value_1; 117     PyObject *exception_keeper_value_1;
120     PyTracebackObject *exception_keeper_tb_1; 118     PyTracebackObject *exception_keeper_tb_1;
121     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; 119     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
n 122     PyObject *exception_keeper_type_2; n
123     PyObject *exception_keeper_value_2;
124     PyTracebackObject *exception_keeper_tb_2;
125     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_2;
126     static struct Nuitka_FrameObject *cache_frame_7324887b1955c64fd89ca30fc4e7680f = NULL;
127     PyObject *tmp_return_value = NULL;
128     PyObject *exception_keeper_type_3;
129     PyObject *exception_keeper_value_3;
130     PyTracebackObject *exception_keeper_tb_3;
131     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_3;
132 120
133     // Actual function body. 121     // Actual function body.
134     // Tried code: 122     // Tried code:
135     if (isFrameUnusable(cache_frame_7324887b1955c64fd89ca30fc4e7680f)) { 123     if (isFrameUnusable(cache_frame_7324887b1955c64fd89ca30fc4e7680f)) {
136         Py_XDECREF(cache_frame_7324887b1955c64fd89ca30fc4e7680f); 124         Py_XDECREF(cache_frame_7324887b1955c64fd89ca30fc4e7680f);
225             goto frame_exception_exit_1; 213             goto frame_exception_exit_1;
226         } 214         }
227         assert(var_iterator == NULL); 215         assert(var_iterator == NULL);
228         var_iterator = tmp_assign_source_2; 216         var_iterator = tmp_assign_source_2;
229     } 217     }
n 230     // Tried code: n
231     {
232         PyObject *tmp_assign_source_3;
233         PyObject *tmp_iter_arg_2;
234         CHECK_OBJECT(var_iterator);
235         tmp_iter_arg_2 = var_iterator;
236         tmp_assign_source_3 = MAKE_UNPACK_ITERATOR(tmp_iter_arg_2);
237         if (tmp_assign_source_3 == NULL) {
238             assert(ERROR_OCCURRED());
239  
240             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
241  
242  
243             exception_lineno = 30;
244             type_description_1 = "oooo";
245             goto try_except_handler_2;
246         }
247         assert(tmp_tuple_unpack_1__source_iter == NULL);
248         tmp_tuple_unpack_1__source_iter = tmp_assign_source_3;
249     }
250     // Tried code:
251     {
252         PyObject *tmp_assign_source_4;
253         PyObject *tmp_unpack_1;
254         CHECK_OBJECT(tmp_tuple_unpack_1__source_iter);
255         tmp_unpack_1 = tmp_tuple_unpack_1__source_iter;
256         tmp_assign_source_4 = UNPACK_NEXT(tmp_unpack_1, 0, 2);
257         if (tmp_assign_source_4 == NULL) {
258             if (!ERROR_OCCURRED()) {
259                 exception_type = PyExc_StopIteration;
260                 Py_INCREF(exception_type);
261                 exception_value = NULL;
262                 exception_tb = NULL;
263             } else {
264                 FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
265             }
266  
267  
268             type_description_1 = "oooo";
269             exception_lineno = 30;
270             goto try_except_handler_3;
271         }
272         assert(tmp_tuple_unpack_1__element_1 == NULL);
273         tmp_tuple_unpack_1__element_1 = tmp_assign_source_4;
274     }
275     {
276         PyObject *tmp_assign_source_5;
277         PyObject *tmp_unpack_2;
278         CHECK_OBJECT(tmp_tuple_unpack_1__source_iter);
279         tmp_unpack_2 = tmp_tuple_unpack_1__source_iter;
280         tmp_assign_source_5 = UNPACK_NEXT(tmp_unpack_2, 1, 2);
281         if (tmp_assign_source_5 == NULL) {
282             if (!ERROR_OCCURRED()) {
283                 exception_type = PyExc_StopIteration;
284                 Py_INCREF(exception_type);
285                 exception_value = NULL;
286                 exception_tb = NULL;
287             } else {
288                 FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
289             }
290  
291  
292             type_description_1 = "oooo";
293             exception_lineno = 30;
294             goto try_except_handler_3;
295         }
296         assert(tmp_tuple_unpack_1__element_2 == NULL);
297         tmp_tuple_unpack_1__element_2 = tmp_assign_source_5;
298     }
299     {
300         PyObject *tmp_iterator_name_1;
301         CHECK_OBJECT(tmp_tuple_unpack_1__source_iter);
302         tmp_iterator_name_1 = tmp_tuple_unpack_1__source_iter;
303         // Check if iterator has left-over elements.
304         CHECK_OBJECT(tmp_iterator_name_1); assert(HAS_ITERNEXT(tmp_iterator_name_1));
305  
306         tmp_iterator_attempt = (*Py_TYPE(tmp_iterator_name_1)->tp_iternext)(tmp_iterator_name_1);
307  
308         if (likely(tmp_iterator_attempt == NULL)) {
309             PyObject *error = GET_ERROR_OCCURRED();
310  
311             if (error != NULL) {
312                 if (EXCEPTION_MATCH_BOOL_SINGLE(error, PyExc_StopIteration)) {
313                     CLEAR_ERROR_OCCURRED();
314                 } else {
315                     FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
316  
317                     type_description_1 = "oooo";
318                     exception_lineno = 30;
319                     goto try_except_handler_3;
320                 }
321             }
322         } else {
323             Py_DECREF(tmp_iterator_attempt);
324  
325             exception_type = PyExc_ValueError;
326             Py_INCREF(PyExc_ValueError);
327             exception_value = mod_consts[2];
328             Py_INCREF(exception_value);
329             exception_tb = NULL;
330  
331             type_description_1 = "oooo";
332             exception_lineno = 30;
333             goto try_except_handler_3;
334         }
335     }
336     goto try_end_1;
337     // Exception handler code:
338     try_except_handler_3:;
339     exception_keeper_type_1 = exception_type;
340     exception_keeper_value_1 = exception_value;
341     exception_keeper_tb_1 = exception_tb;
342     exception_keeper_lineno_1 = exception_lineno;
343     exception_type = NULL;
344     exception_value = NULL;
345     exception_tb = NULL;
346     exception_lineno = 0;
347  
348     CHECK_OBJECT(tmp_tuple_unpack_1__source_iter);
349     Py_DECREF(tmp_tuple_unpack_1__source_iter);
350     tmp_tuple_unpack_1__source_iter = NULL;
351     // Re-raise.
352     exception_type = exception_keeper_type_1;
353     exception_value = exception_keeper_value_1;
354     exception_tb = exception_keeper_tb_1;
355     exception_lineno = exception_keeper_lineno_1;
356  
357     goto try_except_handler_2;
358     // End of try:
359     try_end_1:;
360     goto try_end_2;
361     // Exception handler code:
362     try_except_handler_2:;
363     exception_keeper_type_2 = exception_type;
364     exception_keeper_value_2 = exception_value;
365     exception_keeper_tb_2 = exception_tb;
366     exception_keeper_lineno_2 = exception_lineno;
367     exception_type = NULL;
368     exception_value = NULL;
369     exception_tb = NULL;
370     exception_lineno = 0;
371  
372     Py_XDECREF(tmp_tuple_unpack_1__element_1);
373     tmp_tuple_unpack_1__element_1 = NULL;
374     Py_XDECREF(tmp_tuple_unpack_1__element_2);
375     tmp_tuple_unpack_1__element_2 = NULL;
376     // Re-raise.
377     exception_type = exception_keeper_type_2;
378     exception_value = exception_keeper_value_2;
379     exception_tb = exception_keeper_tb_2;
380     exception_lineno = exception_keeper_lineno_2;
381  
382     goto frame_exception_exit_1;
383     // End of try:
384     try_end_2:;
385 218
386 #if 0 219 #if 0
387     RESTORE_FRAME_EXCEPTION(frame_7324887b1955c64fd89ca30fc4e7680f); 220     RESTORE_FRAME_EXCEPTION(frame_7324887b1955c64fd89ca30fc4e7680f);
388 #endif 221 #endif
389 222
433 266
434     // Return the error. 267     // Return the error.
435     goto try_except_handler_1; 268     goto try_except_handler_1;
436 269
437     frame_no_exception_1:; 270     frame_no_exception_1:;
n 438     CHECK_OBJECT(tmp_tuple_unpack_1__source_iter); n
439     Py_DECREF(tmp_tuple_unpack_1__source_iter);
440     tmp_tuple_unpack_1__source_iter = NULL;
441     { 271     {
n 442         PyObject *tmp_assign_source_6; n 272         PyObject *tmp_assign_source_3;
443         CHECK_OBJECT(tmp_tuple_unpack_1__element_1); 273         CHECK_OBJECT(var_c);
444         tmp_assign_source_6 = tmp_tuple_unpack_1__element_1; 274         tmp_assign_source_3 = var_c;
445         assert(var_a == NULL); 275         assert(var_a == NULL);
n 446         Py_INCREF(tmp_assign_source_6); n 276         Py_INCREF(tmp_assign_source_3);
447         var_a = tmp_assign_source_6; 277         var_a = tmp_assign_source_3;
448     }
449     Py_XDECREF(tmp_tuple_unpack_1__element_1);
450     tmp_tuple_unpack_1__element_1 = NULL;
451  
452     { 278     }
279     {
453         PyObject *tmp_assign_source_7; 280         PyObject *tmp_assign_source_4;
454         CHECK_OBJECT(tmp_tuple_unpack_1__element_2); 281         CHECK_OBJECT(var_c);
455         tmp_assign_source_7 = tmp_tuple_unpack_1__element_2; 282         tmp_assign_source_4 = var_c;
456         assert(var_b == NULL); 283         assert(var_b == NULL);
n 457         Py_INCREF(tmp_assign_source_7); n 284         Py_INCREF(tmp_assign_source_4);
458         var_b = tmp_assign_source_7; 285         var_b = tmp_assign_source_4;
459     } 286     }
n 460     Py_XDECREF(tmp_tuple_unpack_1__element_2); n
461     tmp_tuple_unpack_1__element_2 = NULL;
462  
463     { 287     {
464         PyObject *tmp_tuple_element_1; 288         PyObject *tmp_tuple_element_1;
465         CHECK_OBJECT(var_a); 289         CHECK_OBJECT(var_a);
466         tmp_tuple_element_1 = var_a; 290         tmp_tuple_element_1 = var_a;
467         tmp_return_value = PyTuple_New(2); 291         tmp_return_value = PyTuple_New(2);
488     Py_DECREF(var_b); 312     Py_DECREF(var_b);
489     var_b = NULL; 313     var_b = NULL;
490     goto function_return_exit; 314     goto function_return_exit;
491     // Exception handler code: 315     // Exception handler code:
492     try_except_handler_1:; 316     try_except_handler_1:;
n 493     exception_keeper_type_3 = exception_type; n 317     exception_keeper_type_1 = exception_type;
494     exception_keeper_value_3 = exception_value; 318     exception_keeper_value_1 = exception_value;
495     exception_keeper_tb_3 = exception_tb; 319     exception_keeper_tb_1 = exception_tb;
496     exception_keeper_lineno_3 = exception_lineno; 320     exception_keeper_lineno_1 = exception_lineno;
497     exception_type = NULL; 321     exception_type = NULL;
498     exception_value = NULL; 322     exception_value = NULL;
499     exception_tb = NULL; 323     exception_tb = NULL;
500     exception_lineno = 0; 324     exception_lineno = 0;
501 325
502     Py_XDECREF(var_c); 326     Py_XDECREF(var_c);
503     var_c = NULL; 327     var_c = NULL;
n 504     Py_XDECREF(var_iterator); n
505     var_iterator = NULL;
506     // Re-raise. 328     // Re-raise.
n 507     exception_type = exception_keeper_type_3; n 329     exception_type = exception_keeper_type_1;
508     exception_value = exception_keeper_value_3; 330     exception_value = exception_keeper_value_1;
509     exception_tb = exception_keeper_tb_3; 331     exception_tb = exception_keeper_tb_1;
510     exception_lineno = exception_keeper_lineno_3; 332     exception_lineno = exception_keeper_lineno_1;
511 333
512     goto function_exception_exit; 334     goto function_exception_exit;
513     // End of try: 335     // End of try:
514 336
515     NUITKA_CANNOT_GET_HERE("Return statement must have exited already."); 337     NUITKA_CANNOT_GET_HERE("Return statement must have exited already.");
535 357
536 358
537 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { 359 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() {
538     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 360     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
539         impl___main__$$$function__1_calledRepeatedly, 361         impl___main__$$$function__1_calledRepeatedly,
n 540         mod_consts[10], n 362         mod_consts[9],
541 #if PYTHON_VERSION >= 0x300 363 #if PYTHON_VERSION >= 0x300
542         NULL, 364         NULL,
543 #endif 365 #endif
544         codeobj_7324887b1955c64fd89ca30fc4e7680f, 366         codeobj_7324887b1955c64fd89ca30fc4e7680f,
545         NULL, 367         NULL,
915 737
916     // Module code. 738     // Module code.
917     { 739     {
918         PyObject *tmp_assign_source_1; 740         PyObject *tmp_assign_source_1;
919         tmp_assign_source_1 = Py_None; 741         tmp_assign_source_1 = Py_None;
n 920         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_1); n 742         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_1);
921     } 743     }
922     { 744     {
923         PyObject *tmp_assign_source_2; 745         PyObject *tmp_assign_source_2;
n 924         tmp_assign_source_2 = mod_consts[4]; n 746         tmp_assign_source_2 = mod_consts[3];
925         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_2); 747         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_2);
926     } 748     }
927     { 749     {
928         PyObject *tmp_assign_source_3; 750         PyObject *tmp_assign_source_3;
929         tmp_assign_source_3 = Py_None; 751         tmp_assign_source_3 = Py_None;
n 930         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_3); n 752         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_3);
931     } 753     }
932     { 754     {
933         PyObject *tmp_assign_source_4; 755         PyObject *tmp_assign_source_4;
934         tmp_assign_source_4 = PyDict_New(); 756         tmp_assign_source_4 = PyDict_New();
n 935         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_4); n 757         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_4);
936     } 758     }
937     { 759     {
938         PyObject *tmp_assign_source_5; 760         PyObject *tmp_assign_source_5;
n 939         tmp_assign_source_5 = mod_consts[8]; n 761         tmp_assign_source_5 = mod_consts[7];
940         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_5); 762         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_5);
941     } 763     }
942     { 764     {
943         PyObject *tmp_assign_source_6; 765         PyObject *tmp_assign_source_6;
n 944         tmp_assign_source_6 = mod_consts[9]; n 766         tmp_assign_source_6 = mod_consts[8];
945         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_6); 767         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_6);
946     } 768     }
947     { 769     {
948         PyObject *tmp_assign_source_7; 770         PyObject *tmp_assign_source_7;
949 771
950 772
951         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 773         tmp_assign_source_7 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
952 774
n 953         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_7); n 775         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_7);
954     } 776     }
955     { 777     {
956         PyObject *tmp_assign_source_8; 778         PyObject *tmp_assign_source_8;
957         PyObject *tmp_name_name_1; 779         PyObject *tmp_name_name_1;
958         PyObject *tmp_globals_arg_name_1; 780         PyObject *tmp_globals_arg_name_1;
959         PyObject *tmp_locals_arg_name_1; 781         PyObject *tmp_locals_arg_name_1;
960         PyObject *tmp_fromlist_name_1; 782         PyObject *tmp_fromlist_name_1;
961         PyObject *tmp_level_name_1; 783         PyObject *tmp_level_name_1;
n 962         tmp_name_name_1 = mod_consts[11]; n 784         tmp_name_name_1 = mod_consts[10];
963         tmp_globals_arg_name_1 = (PyObject *)moduledict___main__; 785         tmp_globals_arg_name_1 = (PyObject *)moduledict___main__;
964         tmp_locals_arg_name_1 = Py_None; 786         tmp_locals_arg_name_1 = Py_None;
965         tmp_fromlist_name_1 = Py_None; 787         tmp_fromlist_name_1 = Py_None;
n 966         tmp_level_name_1 = mod_consts[12]; n 788         tmp_level_name_1 = mod_consts[11];
967         tmp_assign_source_8 = IMPORT_MODULE5(tmp_name_name_1, tmp_globals_arg_name_1, tmp_locals_arg_name_1, tmp_fromlist_name_1, tmp_level_name_1); 789         tmp_assign_source_8 = IMPORT_MODULE5(tmp_name_name_1, tmp_globals_arg_name_1, tmp_locals_arg_name_1, tmp_fromlist_name_1, tmp_level_name_1);
968         assert(!(tmp_assign_source_8 == NULL)); 790         assert(!(tmp_assign_source_8 == NULL));
n 969         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_8); n 791         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_8);
970     } 792     }
971     // Frame without reuse. 793     // Frame without reuse.
972     frame_dcea85c014bdae4be918bbcebcf3f83c = MAKE_MODULE_FRAME(codeobj_dcea85c014bdae4be918bbcebcf3f83c, module___main__); 794     frame_dcea85c014bdae4be918bbcebcf3f83c = MAKE_MODULE_FRAME(codeobj_dcea85c014bdae4be918bbcebcf3f83c, module___main__);
973 795
974     // Push the new frame as the currently active one, and we should be exclusively 796     // Push the new frame as the currently active one, and we should be exclusively
979     // Framed code: 801     // Framed code:
980     { 802     {
981         PyObject *tmp_assign_source_9; 803         PyObject *tmp_assign_source_9;
982         PyObject *tmp_iter_arg_1; 804         PyObject *tmp_iter_arg_1;
983         PyObject *tmp_called_instance_1; 805         PyObject *tmp_called_instance_1;
n 984         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[11]); n 806         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[10]);
985 807
986         if (unlikely(tmp_called_instance_1 == NULL)) { 808         if (unlikely(tmp_called_instance_1 == NULL)) {
n 987             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[11]); n 809             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[10]);
988         } 810         }
989 811
990         assert(!(tmp_called_instance_1 == NULL)); 812         assert(!(tmp_called_instance_1 == NULL));
991         frame_dcea85c014bdae4be918bbcebcf3f83c->m_frame.f_lineno = 39; 813         frame_dcea85c014bdae4be918bbcebcf3f83c->m_frame.f_lineno = 39;
992         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 814         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
993             tmp_called_instance_1, 815             tmp_called_instance_1,
n 994             mod_consts[13], n 816             mod_consts[12],
995             &PyTuple_GET_ITEM(mod_consts[14], 0) 817             &PyTuple_GET_ITEM(mod_consts[13], 0)
996         ); 818         );
997 819
998         if (tmp_iter_arg_1 == NULL) { 820         if (tmp_iter_arg_1 == NULL) {
999             assert(ERROR_OCCURRED()); 821             assert(ERROR_OCCURRED());
1000 822
1050     } 872     }
1051     { 873     {
1052         PyObject *tmp_assign_source_11; 874         PyObject *tmp_assign_source_11;
1053         CHECK_OBJECT(tmp_for_loop_1__iter_value); 875         CHECK_OBJECT(tmp_for_loop_1__iter_value);
1054         tmp_assign_source_11 = tmp_for_loop_1__iter_value; 876         tmp_assign_source_11 = tmp_for_loop_1__iter_value;
n 1055         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[15], tmp_assign_source_11); n 877         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[14], tmp_assign_source_11);
1056     } 878     }
1057     { 879     {
1058         PyObject *tmp_called_name_1; 880         PyObject *tmp_called_name_1;
1059         PyObject *tmp_call_result_1; 881         PyObject *tmp_call_result_1;
n 1060         tmp_called_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[10]); n 882         tmp_called_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]);
1061 883
1062         if (unlikely(tmp_called_name_1 == NULL)) { 884         if (unlikely(tmp_called_name_1 == NULL)) {
n 1063             tmp_called_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[10]); n 885             tmp_called_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[9]);
1064         } 886         }
1065 887
1066         if (tmp_called_name_1 == NULL) { 888         if (tmp_called_name_1 == NULL) {
1067             assert(ERROR_OCCURRED()); 889             assert(ERROR_OCCURRED());
1068 890
1131     Py_DECREF(tmp_for_loop_1__for_iterator); 953     Py_DECREF(tmp_for_loop_1__for_iterator);
1132     tmp_for_loop_1__for_iterator = NULL; 954     tmp_for_loop_1__for_iterator = NULL;
1133     { 955     {
1134         PyObject *tmp_called_name_2; 956         PyObject *tmp_called_name_2;
1135         PyObject *tmp_call_result_2; 957         PyObject *tmp_call_result_2;
n 1136         tmp_called_name_2 = LOOKUP_BUILTIN(mod_consts[16]); n 958         tmp_called_name_2 = LOOKUP_BUILTIN(mod_consts[15]);
1137         assert(tmp_called_name_2 != NULL); 959         assert(tmp_called_name_2 != NULL);
1138         frame_dcea85c014bdae4be918bbcebcf3f83c->m_frame.f_lineno = 42; 960         frame_dcea85c014bdae4be918bbcebcf3f83c->m_frame.f_lineno = 42;
t 1139         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tmp_called_name_2, mod_consts[17]); t 961         tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tmp_called_name_2, mod_consts[16]);
1140 962
1141         if (tmp_call_result_2 == NULL) { 963         if (tmp_call_result_2 == NULL) {
1142             assert(ERROR_OCCURRED()); 964             assert(ERROR_OCCURRED());
1143 965
1144             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 966             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);