Construct DictCreation
Performance Diagrams
Source Code with Construct
module_value1 = module_value2 = module_value3 = module_value4 = 1000 module_key1 = module_key2 = module_key3 = module_key4 = 1000 def calledRepeatedly(): # Force frame and eliminate forward propagation (currently), and use local # variables to avoid impact of global variable access. dict_key1 = module_value1 dict_key2 = module_value2 dict_key3 = module_value3 dict_key4 = module_value4 dict_val1 = module_value1 dict_val2 = module_value2 dict_val3 = module_value3 dict_val4 = module_value4 # construct_begin l = { dict_key1 : dict_val1, dict_key2 : dict_val2, dict_key3 : dict_val3, dict_key4 : dict_val4 } # construct_alternative return l, dict_val1, dict_val2, dict_val3, dict_val4, dict_key1, dict_key2, dict_key3, dict_key4 import itertools for x in itertools.repeat(None, 50000): calledRepeatedly() print("OK.")
Source Code without Construct
module_value1 = module_value2 = module_value3 = module_value4 = 1000 module_key1 = module_key2 = module_key3 = module_key4 = 1000 def calledRepeatedly(): # Force frame and eliminate forward propagation (currently), and use local # variables to avoid impact of global variable access. dict_key1 = module_value1 dict_key2 = module_value2 dict_key3 = module_value3 dict_key4 = module_value4 dict_val1 = module_value1 dict_val2 = module_value2 dict_val3 = module_value3 dict_val4 = module_value4 # construct_begin # construct_alternative l = 1 # construct_end return l, dict_val1, dict_val2, dict_val3, dict_val4, dict_key1, dict_key2, dict_key3, dict_key4 import itertools for x in itertools.repeat(None, 50000): calledRepeatedly() print("OK.")
Context Diff of Source Code
Construct | Baseline | ||||
---|---|---|---|---|---|
32 | dict_val2 = module_value2 | 32 | dict_val2 = module_value2 | ||
33 | dict_val3 = module_value3 | 33 | dict_val3 = module_value3 | ||
34 | dict_val4 = module_value4 | 34 | dict_val4 = module_value4 | ||
35 | 35 | ||||
36 | # construct_begin | 36 | # construct_begin | ||
n | 37 | l = { | n | ||
38 | dict_key1 : dict_val1, | ||||
39 | dict_key2 : dict_val2, | ||||
40 | dict_key3 : dict_val3, | ||||
41 | dict_key4 : dict_val4 | ||||
42 | } | ||||
43 | # construct_alternative | ||||
44 | 37 | ||||
45 | 38 | ||||
t | t | 39 | |||
40 | |||||
41 | |||||
42 | |||||
43 | # construct_alternative | ||||
44 | l = 1 | ||||
45 | # construct_end | ||||
46 | 46 | ||||
47 | return l, dict_val1, dict_val2, dict_val3, dict_val4, dict_key1, dict_key2, dict_key3, dict_key4 | 47 | return l, dict_val1, dict_val2, dict_val3, dict_val4, dict_key1, dict_key2, dict_key3, dict_key4 | ||
48 | 48 | ||||
49 | import itertools | 49 | import itertools | ||
50 | for x in itertools.repeat(None, 50000): | 50 | 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[24]; | n | 36 | static PyObject *mod_consts[25]; |
37 | #ifndef __NUITKA_NO_ASSERT__ | 37 | #ifndef __NUITKA_NO_ASSERT__ | ||
n | 38 | static Py_hash_t mod_consts_hash[24]; | n | 38 | static Py_hash_t mod_consts_hash[25]; |
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 < 24; i++) { | n | 53 | for(int i = 0; i < 25; 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 < 24; i++) { | n | 73 | for(int i = 0; i < 25; 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_187cfa0fb3e2bb396388ff8f768b956a; | 82 | static PyCodeObject *codeobj_187cfa0fb3e2bb396388ff8f768b956a; | ||
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[5]; CHECK_OBJECT(module_filename_obj); | n | 87 | module_filename_obj = mod_consts[6]; CHECK_OBJECT(module_filename_obj); |
88 | codeobj_5b55e7240ff428d1f4952fd0d2b8ccd7 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[22], NULL, NULL, 0, 0, 0); | 88 | codeobj_5b55e7240ff428d1f4952fd0d2b8ccd7 = MAKE_CODEOBJECT(module_filename_obj, 1, CO_NOFREE, mod_consts[23], NULL, NULL, 0, 0, 0); | ||
89 | codeobj_187cfa0fb3e2bb396388ff8f768b956a = MAKE_CODEOBJECT(module_filename_obj, 23, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[14], mod_consts[23], NULL, 0, 0, 0); | 89 | codeobj_187cfa0fb3e2bb396388ff8f768b956a = MAKE_CODEOBJECT(module_filename_obj, 23, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE, mod_consts[15], mod_consts[24], 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 | ||||
107 | PyObject *var_dict_key4 = NULL; | 107 | PyObject *var_dict_key4 = NULL; | ||
108 | PyObject *var_dict_val1 = NULL; | 108 | PyObject *var_dict_val1 = NULL; | ||
109 | PyObject *var_dict_val2 = NULL; | 109 | PyObject *var_dict_val2 = NULL; | ||
110 | PyObject *var_dict_val3 = NULL; | 110 | PyObject *var_dict_val3 = NULL; | ||
111 | PyObject *var_dict_val4 = NULL; | 111 | PyObject *var_dict_val4 = NULL; | ||
n | 112 | PyObject *var_l = NULL; | n | ||
113 | struct Nuitka_FrameObject *frame_187cfa0fb3e2bb396388ff8f768b956a; | 112 | struct Nuitka_FrameObject *frame_187cfa0fb3e2bb396388ff8f768b956a; | ||
114 | NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; | 113 | NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; | ||
115 | PyObject *exception_type = NULL; | 114 | PyObject *exception_type = NULL; | ||
116 | PyObject *exception_value = NULL; | 115 | PyObject *exception_value = NULL; | ||
117 | PyTracebackObject *exception_tb = NULL; | 116 | PyTracebackObject *exception_tb = NULL; | ||
118 | NUITKA_MAY_BE_UNUSED int exception_lineno = 0; | 117 | NUITKA_MAY_BE_UNUSED int exception_lineno = 0; | ||
n | 119 | int tmp_res; | n | ||
120 | static struct Nuitka_FrameObject *cache_frame_187cfa0fb3e2bb396388ff8f768b956a = NULL; | 118 | static struct Nuitka_FrameObject *cache_frame_187cfa0fb3e2bb396388ff8f768b956a = NULL; | ||
121 | PyObject *tmp_return_value = NULL; | 119 | PyObject *tmp_return_value = NULL; | ||
122 | PyObject *exception_keeper_type_1; | 120 | PyObject *exception_keeper_type_1; | ||
123 | PyObject *exception_keeper_value_1; | 121 | PyObject *exception_keeper_value_1; | ||
124 | PyTracebackObject *exception_keeper_tb_1; | 122 | PyTracebackObject *exception_keeper_tb_1; | ||
166 | 164 | ||||
167 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | 165 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||
168 | 166 | ||||
169 | 167 | ||||
170 | exception_lineno = 26; | 168 | exception_lineno = 26; | ||
n | 171 | type_description_1 = "ooooooooo"; | n | 169 | type_description_1 = "ooooooooN"; |
172 | goto frame_exception_exit_1; | 170 | goto frame_exception_exit_1; | ||
173 | } | 171 | } | ||
174 | assert(var_dict_key1 == NULL); | 172 | assert(var_dict_key1 == NULL); | ||
175 | Py_INCREF(tmp_assign_source_1); | 173 | Py_INCREF(tmp_assign_source_1); | ||
176 | var_dict_key1 = tmp_assign_source_1; | 174 | var_dict_key1 = tmp_assign_source_1; | ||
188 | 186 | ||||
189 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | 187 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||
190 | 188 | ||||
191 | 189 | ||||
192 | exception_lineno = 27; | 190 | exception_lineno = 27; | ||
n | 193 | type_description_1 = "ooooooooo"; | n | 191 | type_description_1 = "ooooooooN"; |
194 | goto frame_exception_exit_1; | 192 | goto frame_exception_exit_1; | ||
195 | } | 193 | } | ||
196 | assert(var_dict_key2 == NULL); | 194 | assert(var_dict_key2 == NULL); | ||
197 | Py_INCREF(tmp_assign_source_2); | 195 | Py_INCREF(tmp_assign_source_2); | ||
198 | var_dict_key2 = tmp_assign_source_2; | 196 | var_dict_key2 = tmp_assign_source_2; | ||
210 | 208 | ||||
211 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | 209 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||
212 | 210 | ||||
213 | 211 | ||||
214 | exception_lineno = 28; | 212 | exception_lineno = 28; | ||
n | 215 | type_description_1 = "ooooooooo"; | n | 213 | type_description_1 = "ooooooooN"; |
216 | goto frame_exception_exit_1; | 214 | goto frame_exception_exit_1; | ||
217 | } | 215 | } | ||
218 | assert(var_dict_key3 == NULL); | 216 | assert(var_dict_key3 == NULL); | ||
219 | Py_INCREF(tmp_assign_source_3); | 217 | Py_INCREF(tmp_assign_source_3); | ||
220 | var_dict_key3 = tmp_assign_source_3; | 218 | var_dict_key3 = tmp_assign_source_3; | ||
232 | 230 | ||||
233 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | 231 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||
234 | 232 | ||||
235 | 233 | ||||
236 | exception_lineno = 29; | 234 | exception_lineno = 29; | ||
n | 237 | type_description_1 = "ooooooooo"; | n | 235 | type_description_1 = "ooooooooN"; |
238 | goto frame_exception_exit_1; | 236 | goto frame_exception_exit_1; | ||
239 | } | 237 | } | ||
240 | assert(var_dict_key4 == NULL); | 238 | assert(var_dict_key4 == NULL); | ||
241 | Py_INCREF(tmp_assign_source_4); | 239 | Py_INCREF(tmp_assign_source_4); | ||
242 | var_dict_key4 = tmp_assign_source_4; | 240 | var_dict_key4 = tmp_assign_source_4; | ||
254 | 252 | ||||
255 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | 253 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||
256 | 254 | ||||
257 | 255 | ||||
258 | exception_lineno = 31; | 256 | exception_lineno = 31; | ||
n | 259 | type_description_1 = "ooooooooo"; | n | 257 | type_description_1 = "ooooooooN"; |
260 | goto frame_exception_exit_1; | 258 | goto frame_exception_exit_1; | ||
261 | } | 259 | } | ||
262 | assert(var_dict_val1 == NULL); | 260 | assert(var_dict_val1 == NULL); | ||
263 | Py_INCREF(tmp_assign_source_5); | 261 | Py_INCREF(tmp_assign_source_5); | ||
264 | var_dict_val1 = tmp_assign_source_5; | 262 | var_dict_val1 = tmp_assign_source_5; | ||
276 | 274 | ||||
277 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | 275 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||
278 | 276 | ||||
279 | 277 | ||||
280 | exception_lineno = 32; | 278 | exception_lineno = 32; | ||
n | 281 | type_description_1 = "ooooooooo"; | n | 279 | type_description_1 = "ooooooooN"; |
282 | goto frame_exception_exit_1; | 280 | goto frame_exception_exit_1; | ||
283 | } | 281 | } | ||
284 | assert(var_dict_val2 == NULL); | 282 | assert(var_dict_val2 == NULL); | ||
285 | Py_INCREF(tmp_assign_source_6); | 283 | Py_INCREF(tmp_assign_source_6); | ||
286 | var_dict_val2 = tmp_assign_source_6; | 284 | var_dict_val2 = tmp_assign_source_6; | ||
298 | 296 | ||||
299 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | 297 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||
300 | 298 | ||||
301 | 299 | ||||
302 | exception_lineno = 33; | 300 | exception_lineno = 33; | ||
n | 303 | type_description_1 = "ooooooooo"; | n | 301 | type_description_1 = "ooooooooN"; |
304 | goto frame_exception_exit_1; | 302 | goto frame_exception_exit_1; | ||
305 | } | 303 | } | ||
306 | assert(var_dict_val3 == NULL); | 304 | assert(var_dict_val3 == NULL); | ||
307 | Py_INCREF(tmp_assign_source_7); | 305 | Py_INCREF(tmp_assign_source_7); | ||
308 | var_dict_val3 = tmp_assign_source_7; | 306 | var_dict_val3 = tmp_assign_source_7; | ||
320 | 318 | ||||
321 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | 319 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||
322 | 320 | ||||
323 | 321 | ||||
324 | exception_lineno = 34; | 322 | exception_lineno = 34; | ||
n | 325 | type_description_1 = "ooooooooo"; | n | 323 | type_description_1 = "ooooooooN"; |
326 | goto frame_exception_exit_1; | 324 | goto frame_exception_exit_1; | ||
327 | } | 325 | } | ||
328 | assert(var_dict_val4 == NULL); | 326 | assert(var_dict_val4 == NULL); | ||
329 | Py_INCREF(tmp_assign_source_8); | 327 | Py_INCREF(tmp_assign_source_8); | ||
330 | var_dict_val4 = tmp_assign_source_8; | 328 | var_dict_val4 = tmp_assign_source_8; | ||
n | 331 | } | n | ||
332 | { | ||||
333 | PyObject *tmp_assign_source_9; | ||||
334 | PyObject *tmp_dict_key_1; | ||||
335 | PyObject *tmp_dict_value_1; | ||||
336 | CHECK_OBJECT(var_dict_key1); | ||||
337 | tmp_dict_key_1 = var_dict_key1; | ||||
338 | CHECK_OBJECT(var_dict_val1); | ||||
339 | tmp_dict_value_1 = var_dict_val1; | ||||
340 | tmp_assign_source_9 = _PyDict_NewPresized( 4 ); | ||||
341 | tmp_res = PyDict_SetItem(tmp_assign_source_9, tmp_dict_key_1, tmp_dict_value_1); | ||||
342 | if (tmp_res != 0) { | ||||
343 | assert(ERROR_OCCURRED()); | ||||
344 | |||||
345 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||||
346 | |||||
347 | |||||
348 | exception_lineno = 38; | ||||
349 | type_description_1 = "ooooooooo"; | ||||
350 | goto dict_build_exception_1; | ||||
351 | } | ||||
352 | CHECK_OBJECT(var_dict_key2); | ||||
353 | tmp_dict_key_1 = var_dict_key2; | ||||
354 | CHECK_OBJECT(var_dict_val2); | ||||
355 | tmp_dict_value_1 = var_dict_val2; | ||||
356 | tmp_res = PyDict_SetItem(tmp_assign_source_9, tmp_dict_key_1, tmp_dict_value_1); | ||||
357 | if (tmp_res != 0) { | ||||
358 | assert(ERROR_OCCURRED()); | ||||
359 | |||||
360 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||||
361 | |||||
362 | |||||
363 | exception_lineno = 39; | ||||
364 | type_description_1 = "ooooooooo"; | ||||
365 | goto dict_build_exception_1; | ||||
366 | } | ||||
367 | CHECK_OBJECT(var_dict_key3); | ||||
368 | tmp_dict_key_1 = var_dict_key3; | ||||
369 | CHECK_OBJECT(var_dict_val3); | ||||
370 | tmp_dict_value_1 = var_dict_val3; | ||||
371 | tmp_res = PyDict_SetItem(tmp_assign_source_9, tmp_dict_key_1, tmp_dict_value_1); | ||||
372 | if (tmp_res != 0) { | ||||
373 | assert(ERROR_OCCURRED()); | ||||
374 | |||||
375 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||||
376 | |||||
377 | |||||
378 | exception_lineno = 40; | ||||
379 | type_description_1 = "ooooooooo"; | ||||
380 | goto dict_build_exception_1; | ||||
381 | } | ||||
382 | CHECK_OBJECT(var_dict_key4); | ||||
383 | tmp_dict_key_1 = var_dict_key4; | ||||
384 | CHECK_OBJECT(var_dict_val4); | ||||
385 | tmp_dict_value_1 = var_dict_val4; | ||||
386 | tmp_res = PyDict_SetItem(tmp_assign_source_9, tmp_dict_key_1, tmp_dict_value_1); | ||||
387 | if (tmp_res != 0) { | ||||
388 | assert(ERROR_OCCURRED()); | ||||
389 | |||||
390 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | ||||
391 | |||||
392 | |||||
393 | exception_lineno = 41; | ||||
394 | type_description_1 = "ooooooooo"; | ||||
395 | goto dict_build_exception_1; | ||||
396 | } | ||||
397 | goto dict_build_noexception_1; | ||||
398 | // Exception handling pass through code for dict_build: | ||||
399 | dict_build_exception_1:; | ||||
400 | Py_DECREF(tmp_assign_source_9); | ||||
401 | goto frame_exception_exit_1; | ||||
402 | // Finished with no exception for dict_build: | ||||
403 | dict_build_noexception_1:; | ||||
404 | assert(var_l == NULL); | ||||
405 | var_l = tmp_assign_source_9; | ||||
406 | } | 329 | } | ||
407 | 330 | ||||
408 | #if 0 | 331 | #if 0 | ||
409 | RESTORE_FRAME_EXCEPTION(frame_187cfa0fb3e2bb396388ff8f768b956a); | 332 | RESTORE_FRAME_EXCEPTION(frame_187cfa0fb3e2bb396388ff8f768b956a); | ||
410 | #endif | 333 | #endif | ||
436 | var_dict_key4, | 359 | var_dict_key4, | ||
437 | var_dict_val1, | 360 | var_dict_val1, | ||
438 | var_dict_val2, | 361 | var_dict_val2, | ||
439 | var_dict_val3, | 362 | var_dict_val3, | ||
440 | var_dict_val4, | 363 | var_dict_val4, | ||
n | 441 | var_l | n | 364 | NULL |
442 | ); | 365 | ); | ||
443 | 366 | ||||
444 | 367 | ||||
445 | // Release cached frame if used for exception. | 368 | // Release cached frame if used for exception. | ||
446 | if (frame_187cfa0fb3e2bb396388ff8f768b956a == cache_frame_187cfa0fb3e2bb396388ff8f768b956a) { | 369 | if (frame_187cfa0fb3e2bb396388ff8f768b956a == cache_frame_187cfa0fb3e2bb396388ff8f768b956a) { | ||
462 | goto try_except_handler_1; | 385 | goto try_except_handler_1; | ||
463 | 386 | ||||
464 | frame_no_exception_1:; | 387 | frame_no_exception_1:; | ||
465 | { | 388 | { | ||
466 | PyObject *tmp_tuple_element_1; | 389 | PyObject *tmp_tuple_element_1; | ||
n | 467 | CHECK_OBJECT(var_l); | n | ||
468 | tmp_tuple_element_1 = var_l; | 390 | tmp_tuple_element_1 = mod_consts[4]; | ||
469 | tmp_return_value = PyTuple_New(9); | 391 | tmp_return_value = PyTuple_New(9); | ||
470 | PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1); | 392 | PyTuple_SET_ITEM0(tmp_return_value, 0, tmp_tuple_element_1); | ||
471 | CHECK_OBJECT(var_dict_val1); | 393 | CHECK_OBJECT(var_dict_val1); | ||
472 | tmp_tuple_element_1 = var_dict_val1; | 394 | tmp_tuple_element_1 = var_dict_val1; | ||
473 | PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1); | 395 | PyTuple_SET_ITEM0(tmp_return_value, 1, tmp_tuple_element_1); | ||
520 | Py_DECREF(var_dict_val3); | 442 | Py_DECREF(var_dict_val3); | ||
521 | var_dict_val3 = NULL; | 443 | var_dict_val3 = NULL; | ||
522 | CHECK_OBJECT(var_dict_val4); | 444 | CHECK_OBJECT(var_dict_val4); | ||
523 | Py_DECREF(var_dict_val4); | 445 | Py_DECREF(var_dict_val4); | ||
524 | var_dict_val4 = NULL; | 446 | var_dict_val4 = NULL; | ||
n | 525 | CHECK_OBJECT(var_l); | n | ||
526 | Py_DECREF(var_l); | ||||
527 | var_l = NULL; | ||||
528 | goto function_return_exit; | 447 | goto function_return_exit; | ||
529 | // Exception handler code: | 448 | // Exception handler code: | ||
530 | try_except_handler_1:; | 449 | try_except_handler_1:; | ||
531 | exception_keeper_type_1 = exception_type; | 450 | exception_keeper_type_1 = exception_type; | ||
532 | exception_keeper_value_1 = exception_value; | 451 | exception_keeper_value_1 = exception_value; | ||
549 | var_dict_val1 = NULL; | 468 | var_dict_val1 = NULL; | ||
550 | Py_XDECREF(var_dict_val2); | 469 | Py_XDECREF(var_dict_val2); | ||
551 | var_dict_val2 = NULL; | 470 | var_dict_val2 = NULL; | ||
552 | Py_XDECREF(var_dict_val3); | 471 | Py_XDECREF(var_dict_val3); | ||
553 | var_dict_val3 = NULL; | 472 | var_dict_val3 = NULL; | ||
n | 554 | Py_XDECREF(var_dict_val4); | n | ||
555 | var_dict_val4 = NULL; | ||||
556 | // Re-raise. | 473 | // Re-raise. | ||
557 | exception_type = exception_keeper_type_1; | 474 | exception_type = exception_keeper_type_1; | ||
558 | exception_value = exception_keeper_value_1; | 475 | exception_value = exception_keeper_value_1; | ||
559 | exception_tb = exception_keeper_tb_1; | 476 | exception_tb = exception_keeper_tb_1; | ||
560 | exception_lineno = exception_keeper_lineno_1; | 477 | exception_lineno = exception_keeper_lineno_1; | ||
585 | 502 | ||||
586 | 503 | ||||
587 | static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { | 504 | static PyObject *MAKE_FUNCTION___main__$$$function__1_calledRepeatedly() { | ||
588 | struct Nuitka_FunctionObject *result = Nuitka_Function_New( | 505 | struct Nuitka_FunctionObject *result = Nuitka_Function_New( | ||
589 | impl___main__$$$function__1_calledRepeatedly, | 506 | impl___main__$$$function__1_calledRepeatedly, | ||
n | 590 | mod_consts[14], | n | 507 | mod_consts[15], |
591 | #if PYTHON_VERSION >= 0x300 | 508 | #if PYTHON_VERSION >= 0x300 | ||
592 | NULL, | 509 | NULL, | ||
593 | #endif | 510 | #endif | ||
594 | codeobj_187cfa0fb3e2bb396388ff8f768b956a, | 511 | codeobj_187cfa0fb3e2bb396388ff8f768b956a, | ||
595 | NULL, | 512 | NULL, | ||
970 | 887 | ||||
971 | // Module code. | 888 | // Module code. | ||
972 | { | 889 | { | ||
973 | PyObject *tmp_assign_source_1; | 890 | PyObject *tmp_assign_source_1; | ||
974 | tmp_assign_source_1 = Py_None; | 891 | tmp_assign_source_1 = Py_None; | ||
n | 975 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[4], tmp_assign_source_1); | n | 892 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[5], tmp_assign_source_1); |
976 | } | 893 | } | ||
977 | { | 894 | { | ||
978 | PyObject *tmp_assign_source_2; | 895 | PyObject *tmp_assign_source_2; | ||
n | 979 | tmp_assign_source_2 = mod_consts[5]; | n | 896 | tmp_assign_source_2 = mod_consts[6]; |
980 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[6], tmp_assign_source_2); | 897 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_2); | ||
981 | } | 898 | } | ||
982 | { | 899 | { | ||
983 | PyObject *tmp_assign_source_3; | 900 | PyObject *tmp_assign_source_3; | ||
984 | tmp_assign_source_3 = Py_None; | 901 | tmp_assign_source_3 = Py_None; | ||
n | 985 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[7], tmp_assign_source_3); | n | 902 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_3); |
986 | } | 903 | } | ||
987 | { | 904 | { | ||
988 | PyObject *tmp_assign_source_4; | 905 | PyObject *tmp_assign_source_4; | ||
989 | tmp_assign_source_4 = PyDict_New(); | 906 | tmp_assign_source_4 = PyDict_New(); | ||
n | 990 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[8], tmp_assign_source_4); | n | 907 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[9], tmp_assign_source_4); |
991 | } | 908 | } | ||
992 | { | 909 | { | ||
993 | PyObject *tmp_assign_source_5; | 910 | PyObject *tmp_assign_source_5; | ||
n | 994 | tmp_assign_source_5 = mod_consts[9]; | n | 911 | tmp_assign_source_5 = mod_consts[10]; |
995 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_5); | 912 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[0], tmp_assign_source_5); | ||
996 | } | 913 | } | ||
997 | { | 914 | { | ||
998 | PyObject *tmp_assign_source_6; | 915 | PyObject *tmp_assign_source_6; | ||
n | 999 | tmp_assign_source_6 = mod_consts[9]; | n | 916 | tmp_assign_source_6 = mod_consts[10]; |
1000 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_6); | 917 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[1], tmp_assign_source_6); | ||
1001 | } | 918 | } | ||
1002 | { | 919 | { | ||
1003 | PyObject *tmp_assign_source_7; | 920 | PyObject *tmp_assign_source_7; | ||
n | 1004 | tmp_assign_source_7 = mod_consts[9]; | n | 921 | tmp_assign_source_7 = mod_consts[10]; |
1005 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_7); | 922 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[2], tmp_assign_source_7); | ||
1006 | } | 923 | } | ||
1007 | { | 924 | { | ||
1008 | PyObject *tmp_assign_source_8; | 925 | PyObject *tmp_assign_source_8; | ||
n | 1009 | tmp_assign_source_8 = mod_consts[9]; | n | 926 | tmp_assign_source_8 = mod_consts[10]; |
1010 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_8); | 927 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[3], tmp_assign_source_8); | ||
1011 | } | 928 | } | ||
1012 | { | 929 | { | ||
1013 | PyObject *tmp_assign_source_9; | 930 | PyObject *tmp_assign_source_9; | ||
n | 1014 | tmp_assign_source_9 = mod_consts[9]; | n | 931 | tmp_assign_source_9 = mod_consts[10]; |
1015 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[10], tmp_assign_source_9); | 932 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_9); | ||
1016 | } | 933 | } | ||
1017 | { | 934 | { | ||
1018 | PyObject *tmp_assign_source_10; | 935 | PyObject *tmp_assign_source_10; | ||
n | 1019 | tmp_assign_source_10 = mod_consts[9]; | n | 936 | tmp_assign_source_10 = mod_consts[10]; |
1020 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[11], tmp_assign_source_10); | 937 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_10); | ||
1021 | } | 938 | } | ||
1022 | { | 939 | { | ||
1023 | PyObject *tmp_assign_source_11; | 940 | PyObject *tmp_assign_source_11; | ||
n | 1024 | tmp_assign_source_11 = mod_consts[9]; | n | 941 | tmp_assign_source_11 = mod_consts[10]; |
1025 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[12], tmp_assign_source_11); | 942 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[13], tmp_assign_source_11); | ||
1026 | } | 943 | } | ||
1027 | { | 944 | { | ||
1028 | PyObject *tmp_assign_source_12; | 945 | PyObject *tmp_assign_source_12; | ||
n | 1029 | tmp_assign_source_12 = mod_consts[9]; | n | 946 | tmp_assign_source_12 = mod_consts[10]; |
1030 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[13], tmp_assign_source_12); | 947 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[14], tmp_assign_source_12); | ||
1031 | } | 948 | } | ||
1032 | { | 949 | { | ||
1033 | PyObject *tmp_assign_source_13; | 950 | PyObject *tmp_assign_source_13; | ||
1034 | 951 | ||||
1035 | 952 | ||||
1036 | tmp_assign_source_13 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); | 953 | tmp_assign_source_13 = MAKE_FUNCTION___main__$$$function__1_calledRepeatedly(); | ||
1037 | 954 | ||||
n | 1038 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[14], tmp_assign_source_13); | n | 955 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[15], tmp_assign_source_13); |
1039 | } | 956 | } | ||
1040 | { | 957 | { | ||
1041 | PyObject *tmp_assign_source_14; | 958 | PyObject *tmp_assign_source_14; | ||
1042 | PyObject *tmp_name_value_1; | 959 | PyObject *tmp_name_value_1; | ||
1043 | PyObject *tmp_globals_arg_value_1; | 960 | PyObject *tmp_globals_arg_value_1; | ||
1044 | PyObject *tmp_locals_arg_value_1; | 961 | PyObject *tmp_locals_arg_value_1; | ||
1045 | PyObject *tmp_fromlist_value_1; | 962 | PyObject *tmp_fromlist_value_1; | ||
1046 | PyObject *tmp_level_value_1; | 963 | PyObject *tmp_level_value_1; | ||
n | 1047 | tmp_name_value_1 = mod_consts[15]; | n | 964 | tmp_name_value_1 = mod_consts[16]; |
1048 | tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; | 965 | tmp_globals_arg_value_1 = (PyObject *)moduledict___main__; | ||
1049 | tmp_locals_arg_value_1 = Py_None; | 966 | tmp_locals_arg_value_1 = Py_None; | ||
1050 | tmp_fromlist_value_1 = Py_None; | 967 | tmp_fromlist_value_1 = Py_None; | ||
n | 1051 | tmp_level_value_1 = mod_consts[16]; | n | 968 | tmp_level_value_1 = mod_consts[17]; |
1052 | tmp_assign_source_14 = IMPORT_MODULE5(tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1, tmp_level_value_1); | 969 | tmp_assign_source_14 = IMPORT_MODULE5(tmp_name_value_1, tmp_globals_arg_value_1, tmp_locals_arg_value_1, tmp_fromlist_value_1, tmp_level_value_1); | ||
1053 | assert(!(tmp_assign_source_14 == NULL)); | 970 | assert(!(tmp_assign_source_14 == NULL)); | ||
n | 1054 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[15], tmp_assign_source_14); | n | 971 | UPDATE_STRING_DICT1(moduledict___main__, (Nuitka_StringObject *)mod_consts[16], tmp_assign_source_14); |
1055 | } | 972 | } | ||
1056 | // Frame without reuse. | 973 | // Frame without reuse. | ||
1057 | frame_5b55e7240ff428d1f4952fd0d2b8ccd7 = MAKE_MODULE_FRAME(codeobj_5b55e7240ff428d1f4952fd0d2b8ccd7, module___main__); | 974 | frame_5b55e7240ff428d1f4952fd0d2b8ccd7 = MAKE_MODULE_FRAME(codeobj_5b55e7240ff428d1f4952fd0d2b8ccd7, module___main__); | ||
1058 | 975 | ||||
1059 | // Push the new frame as the currently active one, and we should be exclusively | 976 | // Push the new frame as the currently active one, and we should be exclusively | ||
1064 | // Framed code: | 981 | // Framed code: | ||
1065 | { | 982 | { | ||
1066 | PyObject *tmp_assign_source_15; | 983 | PyObject *tmp_assign_source_15; | ||
1067 | PyObject *tmp_iter_arg_1; | 984 | PyObject *tmp_iter_arg_1; | ||
1068 | PyObject *tmp_called_instance_1; | 985 | PyObject *tmp_called_instance_1; | ||
n | 1069 | tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[15]); | n | 986 | tmp_called_instance_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[16]); |
1070 | 987 | ||||
1071 | if (unlikely(tmp_called_instance_1 == NULL)) { | 988 | if (unlikely(tmp_called_instance_1 == NULL)) { | ||
n | 1072 | tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[15]); | n | 989 | tmp_called_instance_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[16]); |
1073 | } | 990 | } | ||
1074 | 991 | ||||
1075 | assert(!(tmp_called_instance_1 == NULL)); | 992 | assert(!(tmp_called_instance_1 == NULL)); | ||
1076 | frame_5b55e7240ff428d1f4952fd0d2b8ccd7->m_frame.f_lineno = 50; | 993 | frame_5b55e7240ff428d1f4952fd0d2b8ccd7->m_frame.f_lineno = 50; | ||
1077 | tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( | 994 | tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( | ||
1078 | tmp_called_instance_1, | 995 | tmp_called_instance_1, | ||
n | 1079 | mod_consts[17], | n | 996 | mod_consts[18], |
1080 | &PyTuple_GET_ITEM(mod_consts[18], 0) | 997 | &PyTuple_GET_ITEM(mod_consts[19], 0) | ||
1081 | ); | 998 | ); | ||
1082 | 999 | ||||
1083 | if (tmp_iter_arg_1 == NULL) { | 1000 | if (tmp_iter_arg_1 == NULL) { | ||
1084 | assert(ERROR_OCCURRED()); | 1001 | assert(ERROR_OCCURRED()); | ||
1085 | 1002 | ||||
1135 | } | 1052 | } | ||
1136 | { | 1053 | { | ||
1137 | PyObject *tmp_assign_source_17; | 1054 | PyObject *tmp_assign_source_17; | ||
1138 | CHECK_OBJECT(tmp_for_loop_1__iter_value); | 1055 | CHECK_OBJECT(tmp_for_loop_1__iter_value); | ||
1139 | tmp_assign_source_17 = tmp_for_loop_1__iter_value; | 1056 | tmp_assign_source_17 = tmp_for_loop_1__iter_value; | ||
n | 1140 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[19], tmp_assign_source_17); | n | 1057 | UPDATE_STRING_DICT0(moduledict___main__, (Nuitka_StringObject *)mod_consts[20], tmp_assign_source_17); |
1141 | } | 1058 | } | ||
1142 | { | 1059 | { | ||
1143 | PyObject *tmp_called_value_1; | 1060 | PyObject *tmp_called_value_1; | ||
1144 | PyObject *tmp_call_result_1; | 1061 | PyObject *tmp_call_result_1; | ||
n | 1145 | tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[14]); | n | 1062 | tmp_called_value_1 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)mod_consts[15]); |
1146 | 1063 | ||||
1147 | if (unlikely(tmp_called_value_1 == NULL)) { | 1064 | if (unlikely(tmp_called_value_1 == NULL)) { | ||
n | 1148 | tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[14]); | n | 1065 | tmp_called_value_1 = GET_MODULE_VARIABLE_VALUE_FALLBACK(mod_consts[15]); |
1149 | } | 1066 | } | ||
1150 | 1067 | ||||
1151 | if (tmp_called_value_1 == NULL) { | 1068 | if (tmp_called_value_1 == NULL) { | ||
1152 | assert(ERROR_OCCURRED()); | 1069 | assert(ERROR_OCCURRED()); | ||
1153 | 1070 | ||||
1216 | Py_DECREF(tmp_for_loop_1__for_iterator); | 1133 | Py_DECREF(tmp_for_loop_1__for_iterator); | ||
1217 | tmp_for_loop_1__for_iterator = NULL; | 1134 | tmp_for_loop_1__for_iterator = NULL; | ||
1218 | { | 1135 | { | ||
1219 | PyObject *tmp_called_value_2; | 1136 | PyObject *tmp_called_value_2; | ||
1220 | PyObject *tmp_call_result_2; | 1137 | PyObject *tmp_call_result_2; | ||
n | 1221 | tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[20]); | n | 1138 | tmp_called_value_2 = LOOKUP_BUILTIN(mod_consts[21]); |
1222 | assert(tmp_called_value_2 != NULL); | 1139 | assert(tmp_called_value_2 != NULL); | ||
1223 | frame_5b55e7240ff428d1f4952fd0d2b8ccd7->m_frame.f_lineno = 53; | 1140 | frame_5b55e7240ff428d1f4952fd0d2b8ccd7->m_frame.f_lineno = 53; | ||
t | 1224 | tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tmp_called_value_2, mod_consts[21]); | t | 1141 | tmp_call_result_2 = CALL_FUNCTION_WITH_POSARGS1(tmp_called_value_2, mod_consts[22]); |
1225 | 1142 | ||||
1226 | if (tmp_call_result_2 == NULL) { | 1143 | if (tmp_call_result_2 == NULL) { | ||
1227 | assert(ERROR_OCCURRED()); | 1144 | assert(ERROR_OCCURRED()); | ||
1228 | 1145 | ||||
1229 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); | 1146 | FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb); |