Construct DictCreation

Performance Diagrams

Construct DictCreation 0010000000100000002000000020000000300000003000000040000000400000005000000050000000600000006000000070000000700000008000000080000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)8269963888.95192307692307257.00000000000006CPython 2.751999625242.31730769230768348.73493020842864Nuitka (master)52000773395.6826923076923348.7314998613509Nuitka (develop)52000695549.0480769230769348.7317329337134Nuitka (factory)Construct DictCreationTicks Construct DictCreation 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)9961083788.95192307692307257.0CPython 3.572000045242.31730769230768325.49708013813176Nuitka (master)71999223395.6826923076923325.4991193625001Nuitka (develop)71999390549.0480769230769325.498705067525Nuitka (factory)Construct DictCreationTicks

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).
    module_value1

# construct_begin
    l = {
        module_key1 : module_value1,
        module_key2 : module_value2,
        module_key3 : module_value3,
        module_key4 : module_value4
    }
# construct_alternative



    return l

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).
    module_value1

# construct_begin






# construct_alternative
    l = 1
# construct_end

    return l

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

print("OK.")

Context Diff of Source Code


Construct
Baseline
23 def calledRepeatedly(): 23 def calledRepeatedly():
24     # Force frame and eliminate forward propagation (currently). 24     # Force frame and eliminate forward propagation (currently).
25     module_value1 25     module_value1
26 26
27 # construct_begin 27 # construct_begin
n 28     l = { n
29         module_key1 : module_value1,
30         module_key2 : module_value2,
31         module_key3 : module_value3,
32         module_key4 : module_value4
33     }
34 # construct_alternative
35 28
36 29
t t 30  
31  
32  
33  
34 # construct_alternative
35     l = 1
36 # construct_end
37 37
38     return l 38     return l
39 39
40 import itertools 40 import itertools
41 for x in itertools.repeat(None, 50000): 41 for x in itertools.repeat(None, 50000):

Context Diff of Generated Code


Construct
Baseline
34 static PyObject *const_str_plain_itertools; 34 static PyObject *const_str_plain_itertools;
35 static PyObject *const_tuple_str_plain_l_tuple; 35 static PyObject *const_tuple_str_plain_l_tuple;
36 static PyObject *const_str_plain_module_key4; 36 static PyObject *const_str_plain_module_key4;
37 static PyObject *const_str_plain_module_value4; 37 static PyObject *const_str_plain_module_value4;
38 static PyObject *const_str_plain_module_key3; 38 static PyObject *const_str_plain_module_key3;
n n 39 extern PyObject *const_int_pos_1;
39 extern PyObject *const_str_plain___file__; 40 extern PyObject *const_str_plain___file__;
40 extern PyObject *const_int_0; 41 extern PyObject *const_int_0;
41 static PyObject *const_str_plain_module_key2; 42 static PyObject *const_str_plain_module_key2;
42 extern PyObject *const_str_plain_print; 43 extern PyObject *const_str_plain_print;
43 static PyObject *const_int_pos_50000; 44 static PyObject *const_int_pos_50000;
65 static bool constants_created = false; 66 static bool constants_created = false;
66 67
67 /* Function to create module private constants. */ 68 /* Function to create module private constants. */
68 static void createModuleConstants( void ) 69 static void createModuleConstants( void )
69 { 70 {
n 70     const_str_plain_itertools = UNSTREAM_STRING_ASCII( &constant_bin[ 310 ], 9, 1 ); n 71     const_str_plain_itertools = UNSTREAM_STRING_ASCII( &constant_bin[ 73 ], 9, 1 );
71     const_tuple_str_plain_l_tuple = PyTuple_New( 1 ); 72     const_tuple_str_plain_l_tuple = PyTuple_New( 1 );
72     const_str_plain_l = UNSTREAM_STRING_ASCII( &constant_bin[ 10 ], 1, 1 ); 73     const_str_plain_l = UNSTREAM_STRING_ASCII( &constant_bin[ 10 ], 1, 1 );
73     PyTuple_SET_ITEM( const_tuple_str_plain_l_tuple, 0, const_str_plain_l ); Py_INCREF(const_str_plain_l); 74     PyTuple_SET_ITEM( const_tuple_str_plain_l_tuple, 0, const_str_plain_l ); Py_INCREF(const_str_plain_l);
n 74     const_str_plain_module_key4 = UNSTREAM_STRING_ASCII( &constant_bin[ 210 ], 11, 1 ); n 75     const_str_plain_module_key4 = UNSTREAM_STRING_ASCII( &constant_bin[ 82 ], 11, 1 );
75     const_str_plain_module_value4 = UNSTREAM_STRING_ASCII( &constant_bin[ 243 ], 13, 1 ); 76     const_str_plain_module_value4 = UNSTREAM_STRING_ASCII( &constant_bin[ 93 ], 13, 1 );
76     const_str_plain_module_key3 = UNSTREAM_STRING_ASCII( &constant_bin[ 142 ], 11, 1 ); 77     const_str_plain_module_key3 = UNSTREAM_STRING_ASCII( &constant_bin[ 106 ], 11, 1 );
77     const_str_plain_module_key2 = UNSTREAM_STRING_ASCII( &constant_bin[ 74 ], 11, 1 ); 78     const_str_plain_module_key2 = UNSTREAM_STRING_ASCII( &constant_bin[ 117 ], 11, 1 );
78     const_int_pos_50000 = PyLong_FromUnsignedLong(50000ul); 79     const_int_pos_50000 = PyLong_FromUnsignedLong(50000ul);
n 79     const_str_plain_module_value2 = UNSTREAM_STRING_ASCII( &constant_bin[ 107 ], 13, 1 ); n 80     const_str_plain_module_value2 = UNSTREAM_STRING_ASCII( &constant_bin[ 128 ], 13, 1 );
80     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 ); 81     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 );
n 81     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING_ASCII( &constant_bin[ 319 ], 3, 0 ); n 82     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING_ASCII( &constant_bin[ 141 ], 3, 0 );
82     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF(const_str_digest_5ed1392909ad16e6227b8230f4582352); 83     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF(const_str_digest_5ed1392909ad16e6227b8230f4582352);
83     const_int_pos_1000 = PyLong_FromUnsignedLong(1000ul); 84     const_int_pos_1000 = PyLong_FromUnsignedLong(1000ul);
84     const_str_plain_module_value1 = UNSTREAM_STRING_ASCII( &constant_bin[ 6 ], 13, 1 ); 85     const_str_plain_module_value1 = UNSTREAM_STRING_ASCII( &constant_bin[ 6 ], 13, 1 );
n 85     const_str_plain_module_value3 = UNSTREAM_STRING_ASCII( &constant_bin[ 175 ], 13, 1 ); n 86     const_str_plain_module_value3 = UNSTREAM_STRING_ASCII( &constant_bin[ 144 ], 13, 1 );
86     const_str_plain_calledRepeatedly = UNSTREAM_STRING_ASCII( &constant_bin[ 278 ], 16, 1 ); 87     const_str_plain_calledRepeatedly = UNSTREAM_STRING_ASCII( &constant_bin[ 41 ], 16, 1 );
87     const_str_angle_module = UNSTREAM_STRING_ASCII( &constant_bin[ 322 ], 8, 0 ); 88     const_str_angle_module = UNSTREAM_STRING_ASCII( &constant_bin[ 157 ], 8, 0 );
88     const_str_plain_None = UNSTREAM_STRING_ASCII( &constant_bin[ 330 ], 4, 1 ); 89     const_str_plain_None = UNSTREAM_STRING_ASCII( &constant_bin[ 165 ], 4, 1 );
89     const_str_digest_bf4a543bf771a36e608194ff6b76da60 = UNSTREAM_STRING_ASCII( &constant_bin[ 334 ], 37, 0 ); 90     const_str_digest_bf4a543bf771a36e608194ff6b76da60 = UNSTREAM_STRING_ASCII( &constant_bin[ 169 ], 37, 0 );
90     const_str_plain_x = UNSTREAM_STRING_ASCII( &constant_bin[ 371 ], 1, 1 ); 91     const_str_plain_x = UNSTREAM_STRING_ASCII( &constant_bin[ 206 ], 1, 1 );
91     const_str_plain_repeat = UNSTREAM_STRING_ASCII( &constant_bin[ 372 ], 6, 1 ); 92     const_str_plain_repeat = UNSTREAM_STRING_ASCII( &constant_bin[ 207 ], 6, 1 );
92     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 ); 93     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 );
93     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF(Py_None); 94     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF(Py_None);
94     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF(const_int_pos_50000); 95     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF(const_int_pos_50000);
n 95     const_str_plain_module_key1 = UNSTREAM_STRING_ASCII( &constant_bin[ 41 ], 11, 1 ); n 96     const_str_plain_module_key1 = UNSTREAM_STRING_ASCII( &constant_bin[ 213 ], 11, 1 );
96 97
97     constants_created = true; 98     constants_created = true;
98 } 99 }
99 100
100 /* Function to verify module private constants for non-corruption. */ 101 /* Function to verify module private constants for non-corruption. */
132 #ifndef __NUITKA_NO_ASSERT__ 133 #ifndef __NUITKA_NO_ASSERT__
133     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED(); 134     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED();
134 #endif 135 #endif
135 136
136     // Local variable declarations. 137     // Local variable declarations.
n 137     PyObject *var_l = NULL; n
138     struct Nuitka_FrameObject *frame_3eca7c695666a4a45e0fb4a1ff4db4d2; 138     struct Nuitka_FrameObject *frame_3eca7c695666a4a45e0fb4a1ff4db4d2;
139     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 139     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
140     PyObject *exception_type = NULL; 140     PyObject *exception_type = NULL;
141     PyObject *exception_value = NULL; 141     PyObject *exception_value = NULL;
142     PyTracebackObject *exception_tb = NULL; 142     PyTracebackObject *exception_tb = NULL;
143     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 143     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n 144     int tmp_res; n
145     static struct Nuitka_FrameObject *cache_frame_3eca7c695666a4a45e0fb4a1ff4db4d2 = NULL; 144     static struct Nuitka_FrameObject *cache_frame_3eca7c695666a4a45e0fb4a1ff4db4d2 = NULL;
146     PyObject *tmp_return_value = NULL; 145     PyObject *tmp_return_value = NULL;
n 147     PyObject *exception_keeper_type_1; n
148     PyObject *exception_keeper_value_1;
149     PyTracebackObject *exception_keeper_tb_1;
150     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
151 146
152     // Actual function body. 147     // Actual function body.
n 153     // Tried code: n
154     MAKE_OR_REUSE_FRAME(cache_frame_3eca7c695666a4a45e0fb4a1ff4db4d2, codeobj_3eca7c695666a4a45e0fb4a1ff4db4d2, module___main__, sizeof(void *)); 148     MAKE_OR_REUSE_FRAME(cache_frame_3eca7c695666a4a45e0fb4a1ff4db4d2, codeobj_3eca7c695666a4a45e0fb4a1ff4db4d2, module___main__, sizeof(void *));
155     frame_3eca7c695666a4a45e0fb4a1ff4db4d2 = cache_frame_3eca7c695666a4a45e0fb4a1ff4db4d2; 149     frame_3eca7c695666a4a45e0fb4a1ff4db4d2 = cache_frame_3eca7c695666a4a45e0fb4a1ff4db4d2;
156 150
157     // Push the new frame as the currently active one. 151     // Push the new frame as the currently active one.
158     pushFrameStack(frame_3eca7c695666a4a45e0fb4a1ff4db4d2); 152     pushFrameStack(frame_3eca7c695666a4a45e0fb4a1ff4db4d2);
178             exception_tb = NULL; 172             exception_tb = NULL;
179             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 173             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
180             CHAIN_EXCEPTION( exception_value ); 174             CHAIN_EXCEPTION( exception_value );
181 175
182             exception_lineno = 25; 176             exception_lineno = 25;
n 183             type_description_1 = "o"; n 177             type_description_1 = "N";
184             goto frame_exception_exit_1; 178             goto frame_exception_exit_1;
185         } 179         }
186 180
n 187     } n
188     {
189         PyObject *tmp_assign_source_1;
190         PyObject *tmp_dict_key_1;
191         PyObject *tmp_dict_value_1;
192         PyObject *tmp_mvar_value_2;
193         PyObject *tmp_mvar_value_3;
194         PyObject *tmp_dict_key_2;
195         PyObject *tmp_dict_value_2;
196         PyObject *tmp_mvar_value_4;
197         PyObject *tmp_mvar_value_5;
198         PyObject *tmp_dict_key_3;
199         PyObject *tmp_dict_value_3;
200         PyObject *tmp_mvar_value_6;
201         PyObject *tmp_mvar_value_7;
202         PyObject *tmp_dict_key_4;
203         PyObject *tmp_dict_value_4;
204         PyObject *tmp_mvar_value_8;
205         PyObject *tmp_mvar_value_9;
206         tmp_mvar_value_2 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_key1);
207  
208         if (unlikely( tmp_mvar_value_2 == NULL )) {
209             tmp_mvar_value_2 = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)const_str_plain_module_key1);
210         }
211  
212         if ( tmp_mvar_value_2 == NULL )
213         {
214  
215             exception_type = PyExc_NameError;
216             Py_INCREF(exception_type);
217             exception_value = UNSTREAM_STRING( &constant_bin[ 35 ], 33, 0 );
218             exception_tb = NULL;
219             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
220             CHAIN_EXCEPTION( exception_value );
221  
222             exception_lineno = 29;
223             type_description_1 = "o";
224             goto frame_exception_exit_1;
225         }
226  
227         tmp_dict_key_1 = tmp_mvar_value_2;
228         tmp_mvar_value_3 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1);
229  
230         if (unlikely( tmp_mvar_value_3 == NULL )) {
231             tmp_mvar_value_3 = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)const_str_plain_module_value1);
232         }
233  
234         if ( tmp_mvar_value_3 == NULL )
235         {
236  
237             exception_type = PyExc_NameError;
238             Py_INCREF(exception_type);
239             exception_value = UNSTREAM_STRING( &constant_bin[ 0 ], 35, 0 );
240             exception_tb = NULL;
241             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
242             CHAIN_EXCEPTION( exception_value );
243  
244             exception_lineno = 29;
245             type_description_1 = "o";
246             goto frame_exception_exit_1;
247         }
248  
249         tmp_dict_value_1 = tmp_mvar_value_3;
250         tmp_assign_source_1 = _PyDict_NewPresized( 4 );
251         tmp_res = PyDict_SetItem(tmp_assign_source_1, tmp_dict_key_1, tmp_dict_value_1);
252         if ( tmp_res != 0 )
253         {
254             assert(ERROR_OCCURRED());
255  
256             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
257             Py_DECREF(tmp_assign_source_1);
258  
259             exception_lineno = 28;
260             type_description_1 = "o";
261             goto frame_exception_exit_1;
262         }
263         tmp_mvar_value_4 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_key2);
264  
265         if (unlikely( tmp_mvar_value_4 == NULL )) {
266             tmp_mvar_value_4 = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)const_str_plain_module_key2);
267         }
268  
269         if ( tmp_mvar_value_4 == NULL )
270         {
271             Py_DECREF(tmp_assign_source_1);
272             exception_type = PyExc_NameError;
273             Py_INCREF(exception_type);
274             exception_value = UNSTREAM_STRING( &constant_bin[ 68 ], 33, 0 );
275             exception_tb = NULL;
276             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
277             CHAIN_EXCEPTION( exception_value );
278  
279             exception_lineno = 30;
280             type_description_1 = "o";
281             goto frame_exception_exit_1;
282         }
283  
284         tmp_dict_key_2 = tmp_mvar_value_4;
285         tmp_mvar_value_5 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value2);
286  
287         if (unlikely( tmp_mvar_value_5 == NULL )) {
288             tmp_mvar_value_5 = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)const_str_plain_module_value2);
289         }
290  
291         if ( tmp_mvar_value_5 == NULL )
292         {
293             Py_DECREF(tmp_assign_source_1);
294             exception_type = PyExc_NameError;
295             Py_INCREF(exception_type);
296             exception_value = UNSTREAM_STRING( &constant_bin[ 101 ], 35, 0 );
297             exception_tb = NULL;
298             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
299             CHAIN_EXCEPTION( exception_value );
300  
301             exception_lineno = 30;
302             type_description_1 = "o";
303             goto frame_exception_exit_1;
304         }
305  
306         tmp_dict_value_2 = tmp_mvar_value_5;
307         tmp_res = PyDict_SetItem(tmp_assign_source_1, tmp_dict_key_2, tmp_dict_value_2);
308         if ( tmp_res != 0 )
309         {
310             assert(ERROR_OCCURRED());
311  
312             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
313             Py_DECREF(tmp_assign_source_1);
314  
315             exception_lineno = 28;
316             type_description_1 = "o";
317             goto frame_exception_exit_1;
318         }
319         tmp_mvar_value_6 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_key3);
320  
321         if (unlikely( tmp_mvar_value_6 == NULL )) {
322             tmp_mvar_value_6 = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)const_str_plain_module_key3);
323         }
324  
325         if ( tmp_mvar_value_6 == NULL )
326         {
327             Py_DECREF(tmp_assign_source_1);
328             exception_type = PyExc_NameError;
329             Py_INCREF(exception_type);
330             exception_value = UNSTREAM_STRING( &constant_bin[ 136 ], 33, 0 );
331             exception_tb = NULL;
332             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
333             CHAIN_EXCEPTION( exception_value );
334  
335             exception_lineno = 31;
336             type_description_1 = "o";
337             goto frame_exception_exit_1;
338         }
339  
340         tmp_dict_key_3 = tmp_mvar_value_6;
341         tmp_mvar_value_7 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value3);
342  
343         if (unlikely( tmp_mvar_value_7 == NULL )) {
344             tmp_mvar_value_7 = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)const_str_plain_module_value3);
345         }
346  
347         if ( tmp_mvar_value_7 == NULL )
348         {
349             Py_DECREF(tmp_assign_source_1);
350             exception_type = PyExc_NameError;
351             Py_INCREF(exception_type);
352             exception_value = UNSTREAM_STRING( &constant_bin[ 169 ], 35, 0 );
353             exception_tb = NULL;
354             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
355             CHAIN_EXCEPTION( exception_value );
356  
357             exception_lineno = 31;
358             type_description_1 = "o";
359             goto frame_exception_exit_1;
360         }
361  
362         tmp_dict_value_3 = tmp_mvar_value_7;
363         tmp_res = PyDict_SetItem(tmp_assign_source_1, tmp_dict_key_3, tmp_dict_value_3);
364         if ( tmp_res != 0 )
365         {
366             assert(ERROR_OCCURRED());
367  
368             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
369             Py_DECREF(tmp_assign_source_1);
370  
371             exception_lineno = 28;
372             type_description_1 = "o";
373             goto frame_exception_exit_1;
374         }
375         tmp_mvar_value_8 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_key4);
376  
377         if (unlikely( tmp_mvar_value_8 == NULL )) {
378             tmp_mvar_value_8 = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)const_str_plain_module_key4);
379         }
380  
381         if ( tmp_mvar_value_8 == NULL )
382         {
383             Py_DECREF(tmp_assign_source_1);
384             exception_type = PyExc_NameError;
385             Py_INCREF(exception_type);
386             exception_value = UNSTREAM_STRING( &constant_bin[ 204 ], 33, 0 );
387             exception_tb = NULL;
388             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
389             CHAIN_EXCEPTION( exception_value );
390  
391             exception_lineno = 32;
392             type_description_1 = "o";
393             goto frame_exception_exit_1;
394         }
395  
396         tmp_dict_key_4 = tmp_mvar_value_8;
397         tmp_mvar_value_9 = GET_STRING_DICT_VALUE(moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value4);
398  
399         if (unlikely( tmp_mvar_value_9 == NULL )) {
400             tmp_mvar_value_9 = GET_STRING_DICT_VALUE(dict_builtin, (Nuitka_StringObject *)const_str_plain_module_value4);
401         }
402  
403         if ( tmp_mvar_value_9 == NULL )
404         {
405             Py_DECREF(tmp_assign_source_1);
406             exception_type = PyExc_NameError;
407             Py_INCREF(exception_type);
408             exception_value = UNSTREAM_STRING( &constant_bin[ 237 ], 35, 0 );
409             exception_tb = NULL;
410             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
411             CHAIN_EXCEPTION( exception_value );
412  
413             exception_lineno = 32;
414             type_description_1 = "o";
415             goto frame_exception_exit_1;
416         }
417  
418         tmp_dict_value_4 = tmp_mvar_value_9;
419         tmp_res = PyDict_SetItem(tmp_assign_source_1, tmp_dict_key_4, tmp_dict_value_4);
420         if ( tmp_res != 0 )
421         {
422             assert(ERROR_OCCURRED());
423  
424             FETCH_ERROR_OCCURRED(&exception_type, &exception_value, &exception_tb);
425             Py_DECREF(tmp_assign_source_1);
426  
427             exception_lineno = 28;
428             type_description_1 = "o";
429             goto frame_exception_exit_1;
430         }
431         assert(var_l == NULL);
432         var_l = tmp_assign_source_1;
433     } 181     }
434 182
435 #if 0 183 #if 0
436     RESTORE_FRAME_EXCEPTION(frame_3eca7c695666a4a45e0fb4a1ff4db4d2); 184     RESTORE_FRAME_EXCEPTION(frame_3eca7c695666a4a45e0fb4a1ff4db4d2);
437 #endif 185 #endif
456 204
457     // Attachs locals to frame if any. 205     // Attachs locals to frame if any.
458     Nuitka_Frame_AttachLocals( 206     Nuitka_Frame_AttachLocals(
459         (struct Nuitka_FrameObject *)frame_3eca7c695666a4a45e0fb4a1ff4db4d2, 207         (struct Nuitka_FrameObject *)frame_3eca7c695666a4a45e0fb4a1ff4db4d2,
460         type_description_1, 208         type_description_1,
n 461         var_l n 209         NULL
462     ); 210     );
463 211
464 212
465     // Release cached frame. 213     // Release cached frame.
466     if (frame_3eca7c695666a4a45e0fb4a1ff4db4d2 == cache_frame_3eca7c695666a4a45e0fb4a1ff4db4d2) { 214     if (frame_3eca7c695666a4a45e0fb4a1ff4db4d2 == cache_frame_3eca7c695666a4a45e0fb4a1ff4db4d2) {
472 220
473     // Put the previous frame back on top. 221     // Put the previous frame back on top.
474     popFrameStack(); 222     popFrameStack();
475 223
476     // Return the error. 224     // Return the error.
n 477     goto try_except_handler_1; n 225     goto function_exception_exit;
478 226
479     frame_no_exception_1:; 227     frame_no_exception_1:;
n 480     CHECK_OBJECT(var_l); n 228     tmp_return_value = const_int_pos_1;
481     tmp_return_value = var_l;
482     Py_INCREF(tmp_return_value); 229     Py_INCREF(tmp_return_value);
n 483     goto try_return_handler_1; n
484     // tried codes exits in all cases
485     NUITKA_CANNOT_GET_HERE(__main__$$$function_1_calledRepeatedly);
486     return NULL;
487     // Return handler code:
488     try_return_handler_1:;
489     CHECK_OBJECT((PyObject *)var_l);
490     Py_DECREF(var_l);
491     var_l = NULL;
492  
493     goto function_return_exit; 230     goto function_return_exit;
n 494     // Exception handler code: n
495     try_except_handler_1:;
496     exception_keeper_type_1 = exception_type;
497     exception_keeper_value_1 = exception_value;
498     exception_keeper_tb_1 = exception_tb;
499     exception_keeper_lineno_1 = exception_lineno;
500     exception_type = NULL;
501     exception_value = NULL;
502     exception_tb = NULL;
503     exception_lineno = 0;
504  
505     // Re-raise.
506     exception_type = exception_keeper_type_1;
507     exception_value = exception_keeper_value_1;
508     exception_tb = exception_keeper_tb_1;
509     exception_lineno = exception_keeper_lineno_1;
510  
511     goto function_exception_exit;
512     // End of try:
513 231
514     // Return statement must have exited already. 232     // Return statement must have exited already.
515     NUITKA_CANNOT_GET_HERE(__main__$$$function_1_calledRepeatedly); 233     NUITKA_CANNOT_GET_HERE(__main__$$$function_1_calledRepeatedly);
516     return NULL; 234     return NULL;
517 235
1023         if ( tmp_mvar_value_2 == NULL ) 741         if ( tmp_mvar_value_2 == NULL )
1024         { 742         {
1025 743
1026             exception_type = PyExc_NameError; 744             exception_type = PyExc_NameError;
1027             Py_INCREF(exception_type); 745             Py_INCREF(exception_type);
t 1028             exception_value = UNSTREAM_STRING( &constant_bin[ 272 ], 38, 0 ); t 746             exception_value = UNSTREAM_STRING( &constant_bin[ 35 ], 38, 0 );
1029             exception_tb = NULL; 747             exception_tb = NULL;
1030             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 748             NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
1031             CHAIN_EXCEPTION( exception_value ); 749             CHAIN_EXCEPTION( exception_value );
1032 750
1033             exception_lineno = 42; 751             exception_lineno = 42;