Construct OperationIntegerPower

Performance Diagrams

Construct OperationIntegerPower 0010000001000000200000020000003000000300000040000004000000500000050000006000000600000070000007000000800000080000009000000900000010000000100000001100000011000000120000001200000013000000130000001400000014000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)1468358388.95192307692307257.0CPython 2.76600203242.31730769230768393.03815619745586Nuitka (master)6600203395.6826923076923393.03815619745586Nuitka (develop)6600203549.0480769230769393.03815619745586Nuitka (factory)Construct OperationIntegerPowerTicks Construct OperationIntegerPower 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000110000000110000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)11522827188.11538461538461257.0CPython 3.5109300110240.03846153846155269.7133712314136Nuitka (master)109300110391.96153846153845269.7133712314136Nuitka (develop)109300110543.8846153846154269.7133712314136Nuitka (factory)Construct OperationIntegerPowerTicks

Source Code with Construct

module_value1 = -1
module_value2 = 17

def calledRepeatedly():
    # Force frame and eliminate forward propagation (currently).
    module_value1

    local_value = module_value1

    s = module_value1
    t = module_value2
# construct_begin
    t = s ** t
# construct_end

    return s, t, local_value

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

print("OK.")

Source Code without Construct

module_value1 = -1
module_value2 = 17

def calledRepeatedly():
    # Force frame and eliminate forward propagation (currently).
    module_value1

    local_value = module_value1

    s = module_value1
    t = module_value2
# construct_begin



    return s, t, local_value

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

print("OK.")

Context Diff of Source Code


Construct
Baseline
28     local_value = module_value1 28     local_value = module_value1
29 29
30     s = module_value1 30     s = module_value1
31     t = module_value2 31     t = module_value2
32 # construct_begin 32 # construct_begin
t 33     t = s ** t t 33  
34 # construct_end 34  
35 35
36     return s, t, local_value 36     return s, t, local_value
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[19]; n 36 static PyObject *mod_consts[18];
37 37
38 static PyObject *module_filename_obj = NULL; 38 static PyObject *module_filename_obj = NULL;
39 39
40 /* Indicator if this modules private constants were created yet. */ 40 /* Indicator if this modules private constants were created yet. */
41 static bool constants_created = false; 41 static bool constants_created = false;
42 42
43 /* Function to create module private constants. */ 43 /* Function to create module private constants. */
44 static void createModuleConstants(void) { 44 static void createModuleConstants(void) {
n 45     loadConstantsBlob(&mod_consts[0], "__main__", 19); n 45     loadConstantsBlob(&mod_consts[0], "__main__", 18);
46 46
47     constants_created = true; 47     constants_created = true;
48 } 48 }
49 49
50 /* For multiprocessing, we want to be able to initialize the __main__ constants. */ 50 /* For multiprocessing, we want to be able to initialize the __main__ constants. */
58 #ifndef __NUITKA_NO_ASSERT__ 58 #ifndef __NUITKA_NO_ASSERT__
59 void checkModuleConstants___main__(void) { 59 void checkModuleConstants___main__(void) {
60     // The module may not have been used at all, then ignore this. 60     // The module may not have been used at all, then ignore this.
61     if (constants_created == false) return; 61     if (constants_created == false) return;
62 62
n 63     checkConstantsBlob(&mod_consts[0], "__main__", 19); n 63     checkConstantsBlob(&mod_consts[0], "__main__", 18);
64 } 64 }
65 #endif 65 #endif
66 66
67 // The module code objects. 67 // The module code objects.
68 static PyCodeObject *codeobj_e4372eb0890a808c0fe08b75b5d59011; 68 static PyCodeObject *codeobj_e4372eb0890a808c0fe08b75b5d59011;
69 static PyCodeObject *codeobj_b99ce209dc2530c86e9b8cea2f9bb474; 69 static PyCodeObject *codeobj_b99ce209dc2530c86e9b8cea2f9bb474;
70 /* For use in "MainProgram.c". */ 70 /* For use in "MainProgram.c". */
71 PyCodeObject *codeobj_main = NULL; 71 PyCodeObject *codeobj_main = NULL;
72 72
73 static void createModuleCodeObjects(void) { 73 static void createModuleCodeObjects(void) {
n 74     module_filename_obj = mod_consts[4]; CHECK_OBJECT(module_filename_obj); n 74     module_filename_obj = mod_consts[3]; CHECK_OBJECT(module_filename_obj);
75     codeobj_e4372eb0890a808c0fe08b75b5d59011 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[17], NULL, NULL, 0, 0, 0); 75     codeobj_e4372eb0890a808c0fe08b75b5d59011 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[16], NULL, NULL, 0, 0, 0);
76     codeobj_b99ce209dc2530c86e9b8cea2f9bb474 = MAKE_CODEOBJECT(module_filename_obj, 24, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[9], mod_consts[18], NULL, 0, 0, 0); 76     codeobj_b99ce209dc2530c86e9b8cea2f9bb474 = MAKE_CODEOBJECT(module_filename_obj, 24, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[8], mod_consts[17], NULL, 0, 0, 0);
77 } 77 }
78 78
79 // The module function declarations. 79 // The module function declarations.
80 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 80 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
81 81
96     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; 96     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused;
97     PyObject *exception_type = NULL; 97     PyObject *exception_type = NULL;
98     PyObject *exception_value = NULL; 98     PyObject *exception_value = NULL;
99     PyTracebackObject *exception_tb = NULL; 99     PyTracebackObject *exception_tb = NULL;
100     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 100     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n n 101     static struct Nuitka_FrameObject *cache_frame_b99ce209dc2530c86e9b8cea2f9bb474 = NULL;
101     PyObject *tmp_return_value = NULL; 102     PyObject *tmp_return_value = NULL;
n 102     static struct Nuitka_FrameObject *cache_frame_b99ce209dc2530c86e9b8cea2f9bb474 = NULL; n
103     PyObject *exception_keeper_type_1; 103     PyObject *exception_keeper_type_1;
104     PyObject *exception_keeper_value_1; 104     PyObject *exception_keeper_value_1;
105     PyTracebackObject *exception_keeper_tb_1; 105     PyTracebackObject *exception_keeper_tb_1;
106     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; 106     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
107 107
217         } 217         }
218         assert(var_t == NULL); 218         assert(var_t == NULL);
219         Py_INCREF(tmp_assign_source_3); 219         Py_INCREF(tmp_assign_source_3);
220         var_t = tmp_assign_source_3; 220         var_t = tmp_assign_source_3;
221     } 221     }
n n 222  
223 #if 0
224     RESTORE_FRAME_EXCEPTION(frame_b99ce209dc2530c86e9b8cea2f9bb474);
225 #endif
226  
227     // Put the previous frame back on top.
228     popFrameStack();
229  
230     goto frame_no_exception_1;
231  
232     frame_exception_exit_1:;
233  
234 #if 0
235     RESTORE_FRAME_EXCEPTION(frame_b99ce209dc2530c86e9b8cea2f9bb474);
236 #endif
237  
238     if (exception_tb == NULL) {
239         exception_tb = MAKE_TRACEBACK(frame_b99ce209dc2530c86e9b8cea2f9bb474, exception_lineno);
240     } else if (exception_tb->tb_frame != &frame_b99ce209dc2530c86e9b8cea2f9bb474->m_frame) {
241         exception_tb = ADD_TRACEBACK(exception_tb, frame_b99ce209dc2530c86e9b8cea2f9bb474, exception_lineno);
222     { 242     }
223         PyObject *tmp_assign_source_4; 243  
244     // Attaches locals to frame if any.
245     Nuitka_Frame_AttachLocals(
246         frame_b99ce209dc2530c86e9b8cea2f9bb474,
247         type_description_1,
248         var_local_value,
249         var_s,
250         var_t
251     );
252  
253  
254     // Release cached frame if used for exception.
255     if (frame_b99ce209dc2530c86e9b8cea2f9bb474 == cache_frame_b99ce209dc2530c86e9b8cea2f9bb474) {
256 #if _DEBUG_REFCOUNTS
257         count_active_frame_cache_instances -= 1;
258         count_released_frame_cache_instances += 1;
259 #endif
260  
261         Py_DECREF(cache_frame_b99ce209dc2530c86e9b8cea2f9bb474);
262         cache_frame_b99ce209dc2530c86e9b8cea2f9bb474 = NULL;
263     }
264  
265     assertFrameObject(frame_b99ce209dc2530c86e9b8cea2f9bb474);
266  
267     // Put the previous frame back on top.
268     popFrameStack();
269  
270     // Return the error.
271     goto try_except_handler_1;
272  
273     frame_no_exception_1:;
274     {
224         PyObject *tmp_left_name_1; 275         PyObject *tmp_tuple_element_1;
225         PyObject *tmp_right_name_1;
226         CHECK_OBJECT(var_s); 276         CHECK_OBJECT(var_s);
n 227         tmp_left_name_1 = var_s; n
228         CHECK_OBJECT(var_t);
229         tmp_right_name_1 = var_t;
230         tmp_assign_source_4 = BINARY_OPERATION_POW_OBJECT_OBJECT_OBJECT(tmp_left_name_1, tmp_right_name_1);
231         if (tmp_assign_source_4 == NULL) {
232             assert(ERROR_OCCURRED());
233  
234             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
235  
236  
237             exception_lineno = 33;
238             type_description_1 = "ooo";
239             goto frame_exception_exit_1;
240         }
241         {
242             PyObject *old = var_t;
243             var_t = tmp_assign_source_4;
244             Py_XDECREF(old);
245         }
246  
247     }
248     {
249         PyObject *tmp_tuple_element_1;
250         if (var_s == NULL) {
251  
252             FORMAT_UNBOUND_LOCAL_ERROR(&exception_type, &exception_value, mod_consts[2]);
253             exception_tb = NULL;
254             NORMALIZE_EXCEPTION(&exception_type, &exception_value, &exception_tb);
255             CHAIN_EXCEPTION(exception_value);
256  
257             exception_lineno = 36;
258             type_description_1 = "ooo";
259             goto frame_exception_exit_1;
260         }
261  
262         tmp_tuple_element_1 = var_s; 277         tmp_tuple_element_1 = var_s;
263         tmp_return_value = PyTuple_New(3); 278         tmp_return_value = PyTuple_New(3);
264         PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1); 279         PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1);
265         CHECK_OBJECT(var_t); 280         CHECK_OBJECT(var_t);
266         tmp_tuple_element_1 = var_t; 281         tmp_tuple_element_1 = var_t;
267         PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1); 282         PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1);
268         CHECK_OBJECT(var_local_value); 283         CHECK_OBJECT(var_local_value);
269         tmp_tuple_element_1 = var_local_value; 284         tmp_tuple_element_1 = var_local_value;
270         PyTuple_SET_ITEM0(tmp_return_value, 2, tmp_tuple_element_1); 285         PyTuple_SET_ITEM0(tmp_return_value, 2, tmp_tuple_element_1);
n 271         goto frame_return_exit_1; n
272     }
273  
274 #if 0
275     RESTORE_FRAME_EXCEPTION(frame_b99ce209dc2530c86e9b8cea2f9bb474);
276 #endif
277  
278     // Put the previous frame back on top.
279     popFrameStack();
280  
281     goto frame_no_exception_1;
282  
283     frame_return_exit_1:;
284 #if 0
285     RESTORE_FRAME_EXCEPTION(frame_b99ce209dc2530c86e9b8cea2f9bb474);
286 #endif
287  
288     // Put the previous frame back on top.
289     popFrameStack();
290  
291     goto try_return_handler_1; 286         goto try_return_handler_1;
292  
293     frame_exception_exit_1:;
294  
295 #if 0
296     RESTORE_FRAME_EXCEPTION(frame_b99ce209dc2530c86e9b8cea2f9bb474);
297 #endif
298  
299     if (exception_tb == NULL) {
300         exception_tb = MAKE_TRACEBACK(frame_b99ce209dc2530c86e9b8cea2f9bb474, exception_lineno);
301     } else if (exception_tb->tb_frame != &frame_b99ce209dc2530c86e9b8cea2f9bb474->m_frame) {
302         exception_tb = ADD_TRACEBACK(exception_tb, frame_b99ce209dc2530c86e9b8cea2f9bb474, exception_lineno);
303     } 287     }
n 304   n
305     // Attaches locals to frame if any.
306     Nuitka_Frame_AttachLocals(
307         frame_b99ce209dc2530c86e9b8cea2f9bb474,
308         type_description_1,
309         var_local_value,
310         var_s,
311         var_t
312     );
313  
314  
315     // Release cached frame if used for exception.
316     if (frame_b99ce209dc2530c86e9b8cea2f9bb474 == cache_frame_b99ce209dc2530c86e9b8cea2f9bb474) {
317 #if _DEBUG_REFCOUNTS
318         count_active_frame_cache_instances -= 1;
319         count_released_frame_cache_instances += 1;
320 #endif
321  
322         Py_DECREF(cache_frame_b99ce209dc2530c86e9b8cea2f9bb474);
323         cache_frame_b99ce209dc2530c86e9b8cea2f9bb474 = NULL;
324     }
325  
326     assertFrameObject(frame_b99ce209dc2530c86e9b8cea2f9bb474);
327  
328     // Put the previous frame back on top.
329     popFrameStack();
330  
331     // Return the error.
332     goto try_except_handler_1;
333  
334     frame_no_exception_1:;
335     NUITKA_CANNOT_GET_HERE("tried codes exits in all cases"); 288     NUITKA_CANNOT_GET_HERE("tried codes exits in all cases");
336     return NULL; 289     return NULL;
337     // Return handler code: 290     // Return handler code:
338     try_return_handler_1:; 291     try_return_handler_1:;
339     CHECK_OBJECT(var_local_value); 292     CHECK_OBJECT(var_local_value);
340     Py_DECREF(var_local_value); 293     Py_DECREF(var_local_value);
341     var_local_value = NULL; 294     var_local_value = NULL;
n n 295     CHECK_OBJECT(var_s);
342     Py_XDECREF(var_s); 296     Py_DECREF(var_s);
343     var_s = NULL; 297     var_s = NULL;
344     CHECK_OBJECT(var_t); 298     CHECK_OBJECT(var_t);
345     Py_DECREF(var_t); 299     Py_DECREF(var_t);
346     var_t = NULL; 300     var_t = NULL;
347     goto function_return_exit; 301     goto function_return_exit;
358 312
359     Py_XDECREF(var_local_value); 313     Py_XDECREF(var_local_value);
360     var_local_value = NULL; 314     var_local_value = NULL;
361     Py_XDECREF(var_s); 315     Py_XDECREF(var_s);
362     var_s = NULL; 316     var_s = NULL;
n 363     Py_XDECREF(var_t); n
364     var_t = NULL;
365     // Re-raise. 317     // Re-raise.
366     exception_type = exception_keeper_type_1; 318     exception_type = exception_keeper_type_1;
367     exception_value = exception_keeper_value_1; 319     exception_value = exception_keeper_value_1;
368     exception_tb = exception_keeper_tb_1; 320     exception_tb = exception_keeper_tb_1;
369     exception_lineno = exception_keeper_lineno_1; 321     exception_lineno = exception_keeper_lineno_1;
394 346
395 347
396 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { 348 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() {
397     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 349     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
398         impl___main__$$$function__1_calledRepeatedly, 350         impl___main__$$$function__1_calledRepeatedly,
n 399         mod_consts[9], n 351         mod_consts[8],
400 #if PYTHON_VERSION >= 0x300 352 #if PYTHON_VERSION >= 0x300
401         NULL, 353         NULL,
402 #endif 354 #endif
403         codeobj_b99ce209dc2530c86e9b8cea2f9bb474, 355         codeobj_b99ce209dc2530c86e9b8cea2f9bb474,
404         NULL, 356         NULL,
804 756
805     // Module code. 757     // Module code.
806     { 758     {
807         PyObject *tmp_assign_source_1; 759         PyObject *tmp_assign_source_1;
808         tmp_assign_source_1 = Py_None; 760         tmp_assign_source_1 = Py_None;
n 809         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_1); n 761         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_1);
810     } 762     }
811     { 763     {
812         PyObject *tmp_assign_source_2; 764         PyObject *tmp_assign_source_2;
n 813         tmp_assign_source_2 = mod_consts[4]; n 765         tmp_assign_source_2 = mod_consts[3];
814         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_2); 766         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_2);
815     } 767     }
816     { 768     {
817         PyObject *tmp_assign_source_3; 769         PyObject *tmp_assign_source_3;
818         tmp_assign_source_3 = Py_None; 770         tmp_assign_source_3 = Py_None;
n 819         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_3); n 771         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_3);
820     } 772     }
821     { 773     {
822         PyObject *tmp_assign_source_4; 774         PyObject *tmp_assign_source_4;
n 823         tmp_assign_source_4 = mod_consts[7]; n 775         tmp_assign_source_4 = mod_consts[6];
824         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4); 776         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4);
825     } 777     }
826     { 778     {
827         PyObject *tmp_assign_source_5; 779         PyObject *tmp_assign_source_5;
n 828         tmp_assign_source_5 = mod_consts[8]; n 780         tmp_assign_source_5 = mod_consts[7];
829         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_5); 781         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_5);
830     } 782     }
831     { 783     {
832         PyObject *tmp_assign_source_6; 784         PyObject *tmp_assign_source_6;
833 785
834 786
835         tmp_assign_source_6 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 787         tmp_assign_source_6 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
836 788
n 837         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_6); n 789         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_6);
838     } 790     }
839     { 791     {
840         PyObject *tmp_assign_source_7; 792         PyObject *tmp_assign_source_7;
841         PyObject *tmp_name_name_1; 793         PyObject *tmp_name_name_1;
842         PyObject *tmp_globals_arg_name_1; 794         PyObject *tmp_globals_arg_name_1;
843         PyObject *tmp_locals_arg_name_1; 795         PyObject *tmp_locals_arg_name_1;
844         PyObject *tmp_fromlist_name_1; 796         PyObject *tmp_fromlist_name_1;
845         PyObject *tmp_level_name_1; 797         PyObject *tmp_level_name_1;
n 846         tmp_name_name_1 = mod_consts[10]; n 798         tmp_name_name_1 = mod_consts[9];
847         tmp_globals_arg_name_1 = (PyObject *)moduledict___main__; 799         tmp_globals_arg_name_1 = (PyObject *)moduledict___main__;
848         tmp_locals_arg_name_1 = Py_None; 800         tmp_locals_arg_name_1 = Py_None;
849         tmp_fromlist_name_1 = Py_None; 801         tmp_fromlist_name_1 = Py_None;
n 850         tmp_level_name_1 = mod_consts[11]; n 802         tmp_level_name_1 = mod_consts[10];
851         tmp_assign_source_7 = IMPORT_MODULE5(tmp_name_name_1, tmp_globals_arg_name_1, tmp_locals_arg_name_1, tmp_fromlist_name_1, tmp_level_name_1); 803         tmp_assign_source_7 = IMPORT_MODULE5(tmp_name_name_1, tmp_globals_arg_name_1, tmp_locals_arg_name_1, tmp_fromlist_name_1, tmp_level_name_1);
852         assert(!(tmp_assign_source_7 == NULL)); 804         assert(!(tmp_assign_source_7 == NULL));
n 853         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_7); n 805         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_7);
854     } 806     }
855     // Frame without reuse. 807     // Frame without reuse.
856     frame_e4372eb0890a808c0fe08b75b5d59011 = MAKE_MODULE_FRAME(codeobj_e4372eb0890a808c0fe08b75b5d59011, module___main__); 808     frame_e4372eb0890a808c0fe08b75b5d59011 = MAKE_MODULE_FRAME(codeobj_e4372eb0890a808c0fe08b75b5d59011, module___main__);
857 809
858     // Push the new frame as the currently active one, and we should be exclusively 810     // Push the new frame as the currently active one, and we should be exclusively
863     // Framed code: 815     // Framed code:
864     { 816     {
865         PyObject *tmp_assign_source_8; 817         PyObject *tmp_assign_source_8;
866         PyObject *tmp_iter_arg_1; 818         PyObject *tmp_iter_arg_1;
867         PyObject *tmp_called_instance_1; 819         PyObject *tmp_called_instance_1;
n 868         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[10]); n 820         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]);
869 821
870         if (unlikely(tmp_called_instance_1 == NULL)) { 822         if (unlikely(tmp_called_instance_1 == NULL)) {
n 871             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[10]); n 823             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[9]);
872         } 824         }
873 825
874         assert(!(tmp_called_instance_1 == NULL)); 826         assert(!(tmp_called_instance_1 == NULL));
875         frame_e4372eb0890a808c0fe08b75b5d59011->m_frame.f_lineno = 39; 827         frame_e4372eb0890a808c0fe08b75b5d59011->m_frame.f_lineno = 39;
n 876         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(tmp_called_instance_1, mod_consts[12], &PyTuple_GET_ITEM(mod_consts[13], 0)); n 828         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(tmp_called_instance_1, mod_consts[11], &PyTuple_GET_ITEM(mod_consts[12], 0));
877 829
878         if (tmp_iter_arg_1 == NULL) { 830         if (tmp_iter_arg_1 == NULL) {
879             assert(ERROR_OCCURRED()); 831             assert(ERROR_OCCURRED());
880 832
881             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 833             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
930     } 882     }
931     { 883     {
932         PyObject *tmp_assign_source_10; 884         PyObject *tmp_assign_source_10;
933         CHECK_OBJECT(tmp_for_loop_1__iter_value); 885         CHECK_OBJECT(tmp_for_loop_1__iter_value);
934         tmp_assign_source_10 = tmp_for_loop_1__iter_value; 886         tmp_assign_source_10 = tmp_for_loop_1__iter_value;
n 935         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[14], tmp_assign_source_10); n 887         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[13], tmp_assign_source_10);
936     } 888     }
937     { 889     {
938         PyObject *tmp_called_name_1; 890         PyObject *tmp_called_name_1;
939         PyObject *tmp_call_result_1; 891         PyObject *tmp_call_result_1;
n 940         tmp_called_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[9]); n 892         tmp_called_name_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[8]);
941 893
942         if (unlikely(tmp_called_name_1 == NULL)) { 894         if (unlikely(tmp_called_name_1 == NULL)) {
n 943             tmp_called_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[9]); n 895             tmp_called_name_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[8]);
944         } 896         }
945 897
946         if (tmp_called_name_1 == NULL) { 898         if (tmp_called_name_1 == NULL) {
947             assert(ERROR_OCCURRED()); 899             assert(ERROR_OCCURRED());
948 900
1009     Py_XDECREF(tmp_for_loop_1__for_iterator); 961     Py_XDECREF(tmp_for_loop_1__for_iterator);
1010     tmp_for_loop_1__for_iterator = NULL; 962     tmp_for_loop_1__for_iterator = NULL;
1011     { 963     {
1012         PyObject *tmp_called_name_2; 964         PyObject *tmp_called_name_2;
1013         PyObject *tmp_call_result_2; 965         PyObject *tmp_call_result_2;
n 1014         tmp_called_name_2 = LOOKUP_BUILTIN(mod_consts[15]); n 966         tmp_called_name_2 = LOOKUP_BUILTIN(mod_consts[14]);
1015         assert(tmp_called_name_2 != NULL); 967         assert(tmp_called_name_2 != NULL);
1016         frame_e4372eb0890a808c0fe08b75b5d59011->m_frame.f_lineno = 42; 968         frame_e4372eb0890a808c0fe08b75b5d59011->m_frame.f_lineno = 42;
t 1017         tmp_call_result_2 = CALL_FUNCTION_WITH_SINGLE_ARG(tmp_called_name_2, mod_consts[16]); t 969         tmp_call_result_2 = CALL_FUNCTION_WITH_SINGLE_ARG(tmp_called_name_2, mod_consts[15]);
1018         if (tmp_call_result_2 == NULL) { 970         if (tmp_call_result_2 == NULL) {
1019             assert(ERROR_OCCURRED()); 971             assert(ERROR_OCCURRED());
1020 972
1021             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); 973             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
1022 974