Construct TupleCreation

Performance Diagrams

Construct TupleCreation 00200000020000004000000400000060000006000000800000080000001000000010000000120000001200000014000000140000001600000016000000CPython 3.10Nuitka (main)Nuitka (develop)Nuitka (factory)1798642288.95192307692307257.00000000000006CPython 3.109600228242.31730769230768372.2178880140381Nuitka (main)9600232395.6826923076923372.2178330580531Nuitka (develop)9599913549.0480769230769372.2222157978605Nuitka (factory)Construct TupleCreationTicks Construct TupleCreation 00100000010000002000000200000030000003000000400000040000005000000500000060000006000000700000070000008000000800000090000009000000100000001000000011000000110000001200000012000000130000001300000014000000140000001500000015000000CPython 3.8Nuitka (main)Nuitka (develop)Nuitka (factory)1599978288.95192307692307257.0CPython 3.88495652242.31730769230768372.9007023441849Nuitka (main)8499877395.6826923076923372.83544754883826Nuitka (develop)8500545549.0480769230769372.8251303409586Nuitka (factory)Construct TupleCreationTicks Construct TupleCreation 00200000020000004000000400000060000006000000800000080000001000000010000000120000001200000014000000140000001600000016000000CPython 2.7Nuitka (main)Nuitka (develop)Nuitka (factory)1754853488.95192307692307257.0CPython 2.78299919242.31730769230768387.2373778279494Nuitka (main)8299919395.6826923076923387.2373778279494Nuitka (develop)8299919549.0480769230769387.2373778279494Nuitka (factory)Construct TupleCreationTicks

Source Code with Construct

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

print("OK.")

#     Python test originally created or extracted from other peoples work. The
#     parts from me are licensed as below. It is at least Free Software where
#     it's copied from other people. In these cases, that will normally be
#     indicated.
#
#     Licensed under the Apache License, Version 2.0 (the "License");
#     you may not use this file except in compliance with the License.
#     You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#     Unless required by applicable law or agreed to in writing, software
#     distributed under the License is distributed on an "AS IS" BASIS,
#     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#     See the License for the specific language governing permissions and
#     limitations under the License.

Source Code without Construct

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

print("OK.")

#     Python test originally created or extracted from other peoples work. The
#     parts from me are licensed as below. It is at least Free Software where
#     it's copied from other people. In these cases, that will normally be
#     indicated.
#
#     Licensed under the Apache License, Version 2.0 (the "License");
#     you may not use this file except in compliance with the License.
#     You may obtain a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#     Unless required by applicable law or agreed to in writing, software
#     distributed under the License is distributed on an "AS IS" BASIS,
#     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#     See the License for the specific language governing permissions and
#     limitations under the License.

Context Diff of Source Code


Construct
Baseline
9 def calledRepeatedly(tuple_value1): 9 def calledRepeatedly(tuple_value1):
10     # Force frame and eliminate forward propagation (currently). 10     # Force frame and eliminate forward propagation (currently).
11     module_value1 11     module_value1
12 12
13     # construct_begin 13     # construct_begin
n 14     l = (tuple_value1, tuple_value1, tuple_value1, tuple_value1, tuple_value1) n 14  
15     # construct_alternative 15     # construct_alternative
t 16   t 16     l = 1
17   17     # construct_end
18 18
19     return l, tuple_value1 19     return l, tuple_value1
20 20
21 21
22 for x in itertools.repeat(None, 50000): 22 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[13]; n 36 static PyObject *mod_consts[14];
37 #ifndef __NUITKA_NO_ASSERT__ 37 #ifndef __NUITKA_NO_ASSERT__
n 38 static Py_hash_t mod_consts_hash[13]; n 38 static Py_hash_t mod_consts_hash[14];
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(tstate, &mod_consts[0], UNTRANSLATE("__main__")); 49         loadConstantsBlob(tstate, &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 < 13; i++) { n 53         for (int i = 0; i < 14; i++) {
54             mod_consts_hash[i] = DEEP_HASH(tstate, mod_consts[i]); 54             mod_consts_hash[i] = DEEP_HASH(tstate, 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__(PyThreadState *tstate) { 69 void checkModuleConstants___main__(PyThreadState *tstate) {
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 < 13; i++) { n 73     for (int i = 0; i < 14; i++) {
74         assert(mod_consts_hash[i] == DEEP_HASH(tstate, mod_consts[i])); 74         assert(mod_consts_hash[i] == DEEP_HASH(tstate, 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_e35ff8ae5f87c5e3c75cbf04d9786c3a; 82 static PyCodeObject *codeobj_e35ff8ae5f87c5e3c75cbf04d9786c3a;
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[2]; CHECK_OBJECT(module_filename_obj); n 87     module_filename_obj = mod_consts[3]; CHECK_OBJECT(module_filename_obj);
88     codeobj_0a3ff06dad97dde4cd14bcf7ad1bc2cd = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[11], mod_consts[11], NULL, NULL, 0, 0, 0); 88     codeobj_0a3ff06dad97dde4cd14bcf7ad1bc2cd = MAKE_CODE_OBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[12], mod_consts[12], NULL, NULL, 0, 0, 0);
89     codeobj_main = codeobj_0a3ff06dad97dde4cd14bcf7ad1bc2cd; 89     codeobj_main = codeobj_0a3ff06dad97dde4cd14bcf7ad1bc2cd;
n 90     codeobj_e35ff8ae5f87c5e3c75cbf04d9786c3a = MAKE_CODE_OBJECT(module_filename_obj, 9, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[6], mod_consts[6], mod_consts[12], NULL, 1, 0, 0); n 90     codeobj_e35ff8ae5f87c5e3c75cbf04d9786c3a = MAKE_CODE_OBJECT(module_filename_obj, 9, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[7], mod_consts[7], mod_consts[13], NULL, 1, 0, 0);
91 } 91 }
92 92
93 // The module function declarations. 93 // The module function declarations.
94 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 94 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
95 95
101     NUITKA_MAY_BE_UNUSED bool had_error = HAS_ERROR_OCCURRED(tstate); 101     NUITKA_MAY_BE_UNUSED bool had_error = HAS_ERROR_OCCURRED(tstate);
102 #endif 102 #endif
103 103
104     // Local variable declarations. 104     // Local variable declarations.
105     PyObject *par_tuple_value1 = python_pars[0]; 105     PyObject *par_tuple_value1 = python_pars[0];
n 106     PyObject *var_l = NULL; n
107     struct Nuitka_FrameObject *frame_e35ff8ae5f87c5e3c75cbf04d9786c3a; 106     struct Nuitka_FrameObject *frame_e35ff8ae5f87c5e3c75cbf04d9786c3a;
108     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 107     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
109     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused; 108     NUITKA_MAY_BE_UNUSED nuitka_void tmp_unused;
110     PyObject *exception_type = NULL; 109     PyObject *exception_type = NULL;
111     PyObject *exception_value = NULL; 110     PyObject *exception_value = NULL;
112     PyTracebackObject *exception_tb = NULL; 111     PyTracebackObject *exception_tb = NULL;
113     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 112     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
114     static struct Nuitka_FrameObject *cache_frame_e35ff8ae5f87c5e3c75cbf04d9786c3a = NULL; 113     static struct Nuitka_FrameObject *cache_frame_e35ff8ae5f87c5e3c75cbf04d9786c3a = NULL;
115     PyObject *tmp_return_value = NULL; 114     PyObject *tmp_return_value = NULL;
n 116     PyObject *exception_keeper_type_1; n
117     PyObject *exception_keeper_value_1;
118     PyTracebackObject *exception_keeper_tb_1;
119     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
120 115
121     // Actual function body. 116     // Actual function body.
n 122     // Tried code: n
123     if (isFrameUnusable(cache_frame_e35ff8ae5f87c5e3c75cbf04d9786c3a)) { 117     if (isFrameUnusable(cache_frame_e35ff8ae5f87c5e3c75cbf04d9786c3a)) {
124         Py_XDECREF(cache_frame_e35ff8ae5f87c5e3c75cbf04d9786c3a); 118         Py_XDECREF(cache_frame_e35ff8ae5f87c5e3c75cbf04d9786c3a);
125 119
126 #if _DEBUG_REFCOUNTS 120 #if _DEBUG_REFCOUNTS
127         if (cache_frame_e35ff8ae5f87c5e3c75cbf04d9786c3a == NULL) { 121         if (cache_frame_e35ff8ae5f87c5e3c75cbf04d9786c3a == NULL) {
160 154
161             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 155             FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);
162 156
163 157
164             exception_lineno = 11; 158             exception_lineno = 11;
n 165             type_description_1 = "oo"; n 159             type_description_1 = "oN";
166             goto frame_exception_exit_1; 160             goto frame_exception_exit_1;
167         } 161         }
168     } 162     }
169 163
170 164
184     // Attaches locals to frame if any. 178     // Attaches locals to frame if any.
185     Nuitka_Frame_AttachLocals( 179     Nuitka_Frame_AttachLocals(
186         frame_e35ff8ae5f87c5e3c75cbf04d9786c3a, 180         frame_e35ff8ae5f87c5e3c75cbf04d9786c3a,
187         type_description_1, 181         type_description_1,
188         par_tuple_value1, 182         par_tuple_value1,
n 189         var_l n 183         NULL
190     ); 184     );
191 185
192 186
193     // Release cached frame if used for exception. 187     // Release cached frame if used for exception.
194     if (frame_e35ff8ae5f87c5e3c75cbf04d9786c3a == cache_frame_e35ff8ae5f87c5e3c75cbf04d9786c3a) { 188     if (frame_e35ff8ae5f87c5e3c75cbf04d9786c3a == cache_frame_e35ff8ae5f87c5e3c75cbf04d9786c3a) {
204 198
205     // Put the previous frame back on top. 199     // Put the previous frame back on top.
206     popFrameStack(tstate); 200     popFrameStack(tstate);
207 201
208     // Return the error. 202     // Return the error.
n 209     goto try_except_handler_1; n 203     goto function_exception_exit;
210     frame_no_exception_1:; 204     frame_no_exception_1:;
211     { 205     {
n 212         PyObject *tmp_assign_source_1; n
213         PyObject *tmp_tuple_element_1; 206         PyObject *tmp_tuple_element_1;
n n 207         tmp_tuple_element_1 = mod_consts[1];
208         tmp_return_value = MAKE_TUPLE_EMPTY(2);
209         PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1);
214         CHECK_OBJECT(par_tuple_value1); 210         CHECK_OBJECT(par_tuple_value1);
215         tmp_tuple_element_1 = par_tuple_value1; 211         tmp_tuple_element_1 = par_tuple_value1;
n 216         tmp_assign_source_1 = MAKE_TUPLE_EMPTY(5); n
217         PyTuple_SET_ITEM0(tmp_assign_source_1, 0, tmp_tuple_element_1);
218         CHECK_OBJECT(par_tuple_value1);
219         tmp_tuple_element_1 = par_tuple_value1;
220         PyTuple_SET_ITEM0(tmp_assign_source_1, 1, tmp_tuple_element_1);
221         CHECK_OBJECT(par_tuple_value1);
222         tmp_tuple_element_1 = par_tuple_value1;
223         PyTuple_SET_ITEM0(tmp_assign_source_1, 2, tmp_tuple_element_1);
224         CHECK_OBJECT(par_tuple_value1);
225         tmp_tuple_element_1 = par_tuple_value1;
226         PyTuple_SET_ITEM0(tmp_assign_source_1, 3, tmp_tuple_element_1);
227         CHECK_OBJECT(par_tuple_value1);
228         tmp_tuple_element_1 = par_tuple_value1;
229         PyTuple_SET_ITEM0(tmp_assign_source_1, 4, tmp_tuple_element_1);
230         assert(var_l == NULL);
231         var_l = tmp_assign_source_1;
232     }
233     {
234         PyObject *tmp_tuple_element_2;
235         CHECK_OBJECT(var_l);
236         tmp_tuple_element_2 = var_l;
237         tmp_return_value = MAKE_TUPLE_EMPTY(2);
238         PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_2);
239         CHECK_OBJECT(par_tuple_value1);
240         tmp_tuple_element_2 = par_tuple_value1;
241         PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_2); 212         PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1);
242         goto try_return_handler_1;
243     }
244     NUITKA_CANNOT_GET_HERE("tried codes exits in all cases");
245     return NULL;
246     // Return handler code:
247     try_return_handler_1:;
248     CHECK_OBJECT(var_l);
249     Py_DECREF(var_l);
250     var_l = NULL;
251     goto function_return_exit; 213         goto function_return_exit;
252     // Exception handler code: 214     }
253     try_except_handler_1:;
254     exception_keeper_type_1 = exception_type;
255     exception_keeper_value_1 = exception_value;
256     exception_keeper_tb_1 = exception_tb;
257     exception_keeper_lineno_1 = exception_lineno;
258     exception_type = NULL;
259     exception_value = NULL;
260     exception_tb = NULL;
261     exception_lineno = 0;
262  
263     // Re-raise.
264     exception_type = exception_keeper_type_1;
265     exception_value = exception_keeper_value_1;
266     exception_tb = exception_keeper_tb_1;
267     exception_lineno = exception_keeper_lineno_1;
268  
269     goto function_exception_exit;
270     // End of try:
271 215
272     NUITKA_CANNOT_GET_HERE("Return statement must have exited already."); 216     NUITKA_CANNOT_GET_HERE("Return statement must have exited already.");
273     return NULL; 217     return NULL;
274 218
275 function_exception_exit: 219 function_exception_exit:
295 239
296 240
297 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { 241 static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() {
298     struct Nuitka_FunctionObject *result = Nuitka_Function_New( 242     struct Nuitka_FunctionObject *result = Nuitka_Function_New(
299         impl___main__$$$function__1_calledRepeatedly, 243         impl___main__$$$function__1_calledRepeatedly,
n 300         mod_consts[6], n 244         mod_consts[7],
301 #if PYTHON_VERSION >= 0x300 245 #if PYTHON_VERSION >= 0x300
302         NULL, 246         NULL,
303 #endif 247 #endif
304         codeobj_e35ff8ae5f87c5e3c75cbf04d9786c3a, 248         codeobj_e35ff8ae5f87c5e3c75cbf04d9786c3a,
305         NULL, 249         NULL,
687 631
688     // Module code. 632     // Module code.
689     { 633     {
690         PyObject *tmp_assign_source_1; 634         PyObject *tmp_assign_source_1;
691         tmp_assign_source_1 = Py_None; 635         tmp_assign_source_1 = Py_None;
n 692         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_1); n 636         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_1);
693     } 637     }
694     { 638     {
695         PyObject *tmp_assign_source_2; 639         PyObject *tmp_assign_source_2;
n 696         tmp_assign_source_2 = mod_consts[2]; n 640         tmp_assign_source_2 = mod_consts[3];
697         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_2); 641         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_2);
698     } 642     }
699     frame_0a3ff06dad97dde4cd14bcf7ad1bc2cd = MAKE_MODULE_FRAME(codeobj_0a3ff06dad97dde4cd14bcf7ad1bc2cd, module___main__); 643     frame_0a3ff06dad97dde4cd14bcf7ad1bc2cd = MAKE_MODULE_FRAME(codeobj_0a3ff06dad97dde4cd14bcf7ad1bc2cd, module___main__);
700 644
701     // Push the new frame as the currently active one, and we should be exclusively 645     // Push the new frame as the currently active one, and we should be exclusively
702     // owning it. 646     // owning it.
708         PyObject *tmp_assign_source_3; 652         PyObject *tmp_assign_source_3;
709         PyObject *tmp_name_value_1; 653         PyObject *tmp_name_value_1;
710         PyObject *tmp_globals_arg_value_1; 654         PyObject *tmp_globals_arg_value_1;
711         PyObject *tmp_locals_arg_value_1; 655         PyObject *tmp_locals_arg_value_1;
712         PyObject *tmp_fromlist_value_1; 656         PyObject *tmp_fromlist_value_1;
n 713         tmp_name_value_1 = mod_consts[4]; n 657         tmp_name_value_1 = mod_consts[5];
714         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; 658         tmp_globals_arg_value_1 = (PyObject *)moduledict___main__;
715         tmp_locals_arg_value_1 = Py_None; 659         tmp_locals_arg_value_1 = Py_None;
716         tmp_fromlist_value_1 = Py_None; 660         tmp_fromlist_value_1 = Py_None;
717         frame_0a3ff06dad97dde4cd14bcf7ad1bc2cd->m_frame.f_lineno = 4; 661         frame_0a3ff06dad97dde4cd14bcf7ad1bc2cd->m_frame.f_lineno = 4;
718         tmp_assign_source_3 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1); 662         tmp_assign_source_3 = IMPORT_MODULE4(tstate, tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1);
724 668
725             exception_lineno = 4; 669             exception_lineno = 4;
726 670
727             goto frame_exception_exit_1; 671             goto frame_exception_exit_1;
728         } 672         }
n 729         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_3); n 673         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_3);
730     } 674     }
731     { 675     {
732         PyObject *tmp_assign_source_4; 676         PyObject *tmp_assign_source_4;
n 733         tmp_assign_source_4 = mod_consts[5]; n 677         tmp_assign_source_4 = mod_consts[6];
734         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4); 678         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_4);
735     } 679     }
736     { 680     {
737         PyObject *tmp_assign_source_5; 681         PyObject *tmp_assign_source_5;
738 682
739 683
740         tmp_assign_source_5 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); 684         tmp_assign_source_5 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly();
741 685
n 742         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_5); n 686         UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_5);
743     } 687     }
744     { 688     {
745         PyObject *tmp_assign_source_6; 689         PyObject *tmp_assign_source_6;
746         PyObject *tmp_iter_arg_1; 690         PyObject *tmp_iter_arg_1;
747         PyObject *tmp_called_instance_1; 691         PyObject *tmp_called_instance_1;
n 748         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[4]); n 692         tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[5]);
749 693
750         if (unlikely(tmp_called_instance_1 == NULL)) { 694         if (unlikely(tmp_called_instance_1 == NULL)) {
n 751             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[4]); n 695             tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[5]);
752         } 696         }
753 697
754         assert(!(tmp_called_instance_1 == NULL)); 698         assert(!(tmp_called_instance_1 == NULL));
755         frame_0a3ff06dad97dde4cd14bcf7ad1bc2cd->m_frame.f_lineno = 22; 699         frame_0a3ff06dad97dde4cd14bcf7ad1bc2cd->m_frame.f_lineno = 22;
756         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( 700         tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2(
757             tstate, 701             tstate,
758             tmp_called_instance_1, 702             tmp_called_instance_1,
n 759             mod_consts[7], n 703             mod_consts[8],
760             &PyTuple_GET_ITEM(mod_consts[8], 0) 704             &PyTuple_GET_ITEM(mod_consts[9], 0)
761         ); 705         );
762 706
763         if (tmp_iter_arg_1 == NULL) { 707         if (tmp_iter_arg_1 == NULL) {
764             assert(HAS_ERROR_OCCURRED(tstate)); 708             assert(HAS_ERROR_OCCURRED(tstate));
765 709
815     } 759     }
816     { 760     {
817         PyObject *tmp_assign_source_8; 761         PyObject *tmp_assign_source_8;
818         CHECK_OBJECT(tmp_for_loop_1__iter_value); 762         CHECK_OBJECT(tmp_for_loop_1__iter_value);
819         tmp_assign_source_8 = tmp_for_loop_1__iter_value; 763         tmp_assign_source_8 = tmp_for_loop_1__iter_value;
n 820         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_8); n 764         UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_8);
821     } 765     }
822     { 766     {
823         PyObject *tmp_called_value_1; 767         PyObject *tmp_called_value_1;
824         PyObject *tmp_call_result_1; 768         PyObject *tmp_call_result_1;
825         PyObject *tmp_args_element_value_1; 769         PyObject *tmp_args_element_value_1;
n 826         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[6]); n 770         tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[7]);
827 771
828         if (unlikely(tmp_called_value_1 == NULL)) { 772         if (unlikely(tmp_called_value_1 == NULL)) {
n 829             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[6]); n 773             tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(tstate, mod_consts[7]);
830         } 774         }
831 775
832         if (tmp_called_value_1 == NULL) { 776         if (tmp_called_value_1 == NULL) {
833             assert(HAS_ERROR_OCCURRED(tstate)); 777             assert(HAS_ERROR_OCCURRED(tstate));
834 778
910     Py_XDECREF(tmp_for_loop_1__iter_value); 854     Py_XDECREF(tmp_for_loop_1__iter_value);
911     tmp_for_loop_1__iter_value = NULL; 855     tmp_for_loop_1__iter_value = NULL;
912     CHECK_OBJECT(tmp_for_loop_1__for_iterator); 856     CHECK_OBJECT(tmp_for_loop_1__for_iterator);
913     Py_DECREF(tmp_for_loop_1__for_iterator); 857     Py_DECREF(tmp_for_loop_1__for_iterator);
914     tmp_for_loop_1__for_iterator = NULL; 858     tmp_for_loop_1__for_iterator = NULL;
t 915     tmp_print_value = mod_consts[10]; t 859     tmp_print_value = mod_consts[11];
916     tmp_result = PRINT_ITEM(tmp_print_value); 860     tmp_result = PRINT_ITEM(tmp_print_value);
917     if (tmp_result == false) { 861     if (tmp_result == false) {
918         assert(HAS_ERROR_OCCURRED(tstate)); 862         assert(HAS_ERROR_OCCURRED(tstate));
919 863
920         FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb); 864         FETCH_ERROR_OCCURRED(tstate, &exception_type, &exception_value, &exception_tb);