Construct LoopSmallXrange

Performance Diagrams

Construct LoopSmallXrange 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)9147532988.95192307692307257.0CPython 2.730706599242.31730769230768421.16325856055096Nuitka (master)30706010395.6826923076923421.1648497104613Nuitka (develop)30706045549.0480769230769421.1647551599573Nuitka (factory)Construct LoopSmallXrangeTicks Construct LoopSmallXrange 00100000001000000020000000200000003000000030000000400000004000000050000000500000006000000060000000700000007000000080000000800000009000000090000000100000000100000000110000000110000000120000000120000000130000000130000000140000000140000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)14521877888.11538461538461257.0CPython 3.587865595240.03846153846155354.5965647911012Nuitka (master)87832016391.96153846153845354.65370538692684Nuitka (develop)87824947543.8846153846154354.66573453823844Nuitka (factory)Construct LoopSmallXrangeTicks

Source Code with Construct

module_value1 = 5
module_value2 = 3

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

    # Make sure we have a local variable x anyway
    x = 2

    local_value = module_value1

# construct_begin
    for x in xrange(local_value, local_value+3):
        pass
# construct_end

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

print("OK.")

Source Code without Construct

module_value1 = 5
module_value2 = 3

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

    # Make sure we have a local variable x anyway
    x = 2

    local_value = module_value1

# construct_begin




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

print("OK.")

Context Diff of Source Code


Construct
Baseline
29     x = 2 29     x = 2
30 30
31     local_value = module_value1 31     local_value = module_value1
32 32
33 # construct_begin 33 # construct_begin
t 34     for x in xrange(local_value, local_value+3): t 34  
35         pass 35  
36 # construct_end 36  
37 37
38 import itertools 38 import itertools
39 for x in itertools.repeat(None, 50000): 39 for x in itertools.repeat(None, 50000):
40     calledRepeatedly() 40     calledRepeatedly()
41 41

Context Diff of Generated Code


Construct
Baseline
32 32
33 /* The module constants used, if any. */ 33 /* The module constants used, if any. */
34 static PyObject *const_str_plain_itertools; 34 static PyObject *const_str_plain_itertools;
35 static PyObject *const_str_plain___package__; 35 static PyObject *const_str_plain___package__;
36 static PyObject *const_str_plain___spec__; 36 static PyObject *const_str_plain___spec__;
n 37 static PyObject *const_str_digest_26d330f2e815c97fe30c5501b791a062; n
38 extern PyObject *const_dict_empty; 37 extern PyObject *const_dict_empty;
39 extern PyObject *const_str_plain___file__; 38 extern PyObject *const_str_plain___file__;
40 extern PyObject *const_int_0; 39 extern PyObject *const_int_0;
41 extern PyObject *const_str_plain_print; 40 extern PyObject *const_str_plain_print;
42 static PyObject *const_int_pos_3; 41 static PyObject *const_int_pos_3;
50 static PyObject *const_str_plain_x; 49 static PyObject *const_str_plain_x;
51 extern PyObject *const_tuple_empty; 50 extern PyObject *const_tuple_empty;
52 static PyObject *const_str_digest_5ed1392909ad16e6227b8230f4582352; 51 static PyObject *const_str_digest_5ed1392909ad16e6227b8230f4582352;
53 static PyObject *const_int_pos_5; 52 static PyObject *const_int_pos_5;
54 static PyObject *const_str_plain_repeat; 53 static PyObject *const_str_plain_repeat;
n 55 static PyObject *const_int_pos_2; n
56 static PyObject *const_tuple_none_int_pos_50000_tuple; 54 static PyObject *const_tuple_none_int_pos_50000_tuple;
57 static PyObject *const_tuple_str_plain_x_str_plain_local_value_tuple; 55 static PyObject *const_tuple_str_plain_x_str_plain_local_value_tuple;
58 extern PyObject *const_str_plain___loader__; 56 extern PyObject *const_str_plain___loader__;
59 static PyObject *const_str_digest_e260612cf58ea6c13e15d9e6743b60c4; 57 static PyObject *const_str_digest_e260612cf58ea6c13e15d9e6743b60c4;
60 extern PyObject *const_str_plain___main__; 58 extern PyObject *const_str_plain___main__;
67 static void createModuleConstants( void ) 65 static void createModuleConstants( void )
68 { 66 {
69     const_str_plain_itertools = UNSTREAM_STRING( &constant_bin[ 0 ], 9, 1 ); 67     const_str_plain_itertools = UNSTREAM_STRING( &constant_bin[ 0 ], 9, 1 );
70     const_str_plain___package__ = UNSTREAM_STRING( &constant_bin[ 9 ], 11, 1 ); 68     const_str_plain___package__ = UNSTREAM_STRING( &constant_bin[ 9 ], 11, 1 );
71     const_str_plain___spec__ = UNSTREAM_STRING( &constant_bin[ 20 ], 8, 1 ); 69     const_str_plain___spec__ = UNSTREAM_STRING( &constant_bin[ 20 ], 8, 1 );
n 72     const_str_digest_26d330f2e815c97fe30c5501b791a062 = UNSTREAM_STRING( &constant_bin[ 28 ], 56, 0 ); n
73     const_int_pos_3 = PyLong_FromUnsignedLong( 3ul ); 70     const_int_pos_3 = PyLong_FromUnsignedLong( 3ul );
74     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul ); 71     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul );
n 75     const_str_plain_local_value = UNSTREAM_STRING( &constant_bin[ 84 ], 11, 1 ); n 72     const_str_plain_local_value = UNSTREAM_STRING( &constant_bin[ 28 ], 11, 1 );
76     const_str_plain_module_value2 = UNSTREAM_STRING( &constant_bin[ 95 ], 13, 1 ); 73     const_str_plain_module_value2 = UNSTREAM_STRING( &constant_bin[ 39 ], 13, 1 );
77     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 ); 74     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 );
n 78     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING( &constant_bin[ 108 ], 3, 0 ); n 75     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING( &constant_bin[ 52 ], 3, 0 );
79     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 ); 76     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 );
n 80     const_str_plain_module_value1 = UNSTREAM_STRING( &constant_bin[ 111 ], 13, 1 ); n 77     const_str_plain_module_value1 = UNSTREAM_STRING( &constant_bin[ 55 ], 13, 1 );
81     const_str_plain_calledRepeatedly = UNSTREAM_STRING( &constant_bin[ 124 ], 16, 1 ); 78     const_str_plain_calledRepeatedly = UNSTREAM_STRING( &constant_bin[ 68 ], 16, 1 );
82     const_str_angle_module = UNSTREAM_STRING( &constant_bin[ 140 ], 8, 0 ); 79     const_str_angle_module = UNSTREAM_STRING( &constant_bin[ 84 ], 8, 0 );
83     const_str_plain_x = UNSTREAM_STRING( &constant_bin[ 148 ], 1, 1 ); 80     const_str_plain_x = UNSTREAM_STRING( &constant_bin[ 92 ], 1, 1 );
84     const_int_pos_5 = PyLong_FromUnsignedLong( 5ul ); 81     const_int_pos_5 = PyLong_FromUnsignedLong( 5ul );
n 85     const_str_plain_repeat = UNSTREAM_STRING( &constant_bin[ 149 ], 6, 1 ); n 82     const_str_plain_repeat = UNSTREAM_STRING( &constant_bin[ 93 ], 6, 1 );
86     const_int_pos_2 = PyLong_FromUnsignedLong( 2ul );
87     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 ); 83     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 );
88     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None ); 84     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None );
89     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 ); 85     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 );
90     const_tuple_str_plain_x_str_plain_local_value_tuple = PyTuple_New( 2 ); 86     const_tuple_str_plain_x_str_plain_local_value_tuple = PyTuple_New( 2 );
91     PyTuple_SET_ITEM( const_tuple_str_plain_x_str_plain_local_value_tuple, 0, const_str_plain_x ); Py_INCREF( const_str_plain_x ); 87     PyTuple_SET_ITEM( const_tuple_str_plain_x_str_plain_local_value_tuple, 0, const_str_plain_x ); Py_INCREF( const_str_plain_x );
92     PyTuple_SET_ITEM( const_tuple_str_plain_x_str_plain_local_value_tuple, 1, const_str_plain_local_value ); Py_INCREF( const_str_plain_local_value ); 88     PyTuple_SET_ITEM( const_tuple_str_plain_x_str_plain_local_value_tuple, 1, const_str_plain_local_value ); Py_INCREF( const_str_plain_local_value );
n 93     const_str_digest_e260612cf58ea6c13e15d9e6743b60c4 = UNSTREAM_STRING( &constant_bin[ 155 ], 73, 0 ); n 89     const_str_digest_e260612cf58ea6c13e15d9e6743b60c4 = UNSTREAM_STRING( &constant_bin[ 99 ], 73, 0 );
94 90
95     constants_created = true; 91     constants_created = true;
96 } 92 }
97 93
98 #ifndef __NUITKA_NO_ASSERT__ 94 #ifndef __NUITKA_NO_ASSERT__
105 } 101 }
106 #endif 102 #endif
107 103
108 // The module code objects. 104 // The module code objects.
109 static PyCodeObject *codeobj_bd03b64e9b5d2d4d9df9e6a7afe90628; 105 static PyCodeObject *codeobj_bd03b64e9b5d2d4d9df9e6a7afe90628;
n 110 static PyCodeObject *codeobj_b96c1f50b7a6ca8c8269c815dc4cf8bc; n 106 static PyCodeObject *codeobj_21b234b4b9e2d8114a9176040c2c627b;
111 /* For use in "MainProgram.c". */ 107 /* For use in "MainProgram.c". */
112 PyCodeObject *codeobj_main = NULL; 108 PyCodeObject *codeobj_main = NULL;
113 109
114 static void createModuleCodeObjects(void) 110 static void createModuleCodeObjects(void)
115 { 111 {
116     module_filename_obj = const_str_digest_e260612cf58ea6c13e15d9e6743b60c4; 112     module_filename_obj = const_str_digest_e260612cf58ea6c13e15d9e6743b60c4;
117     codeobj_bd03b64e9b5d2d4d9df9e6a7afe90628 = MAKE_CODEOBJ( module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE ); 113     codeobj_bd03b64e9b5d2d4d9df9e6a7afe90628 = MAKE_CODEOBJ( module_filename_obj, const_str_angle_module, 1, const_tuple_empty, 0, 0, CO_NOFREE );
118     codeobj_main = codeobj_bd03b64e9b5d2d4d9df9e6a7afe90628; 114     codeobj_main = codeobj_bd03b64e9b5d2d4d9df9e6a7afe90628;
n 119     codeobj_b96c1f50b7a6ca8c8269c815dc4cf8bc = MAKE_CODEOBJ( module_filename_obj, const_str_plain_calledRepeatedly, 25, const_tuple_str_plain_x_str_plain_local_value_tuple, 0, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE ); n 115     codeobj_21b234b4b9e2d8114a9176040c2c627b = MAKE_CODEOBJ( module_filename_obj, const_str_plain_calledRepeatedly, 24, const_tuple_str_plain_x_str_plain_local_value_tuple, 0, 0, CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE );
120 } 116 }
121 117
122 // The module function declarations. 118 // The module function declarations.
123 static PyObject *MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  ); 119 static PyObject *MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  );
124 120
130 #ifndef __NUITKA_NO_ASSERT__ 126 #ifndef __NUITKA_NO_ASSERT__
131     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED(); 127     NUITKA_MAY_BE_UNUSED bool had_error = ERROR_OCCURRED();
132 #endif 128 #endif
133 129
134     // Local variable declarations. 130     // Local variable declarations.
n 135     PyObject *var_x = NULL; n
136     PyObject *var_local_value = NULL; 131     PyObject *var_local_value = NULL;
n 137     PyObject *tmp_for_loop_1__for_iterator = NULL; n
138     PyObject *tmp_for_loop_1__iter_value = NULL;
139     PyObject *exception_type = NULL; 132     PyObject *exception_type = NULL;
140     PyObject *exception_value = NULL; 133     PyObject *exception_value = NULL;
141     PyTracebackObject *exception_tb = NULL; 134     PyTracebackObject *exception_tb = NULL;
142     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 135     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
143     PyObject *exception_keeper_type_1; 136     PyObject *exception_keeper_type_1;
144     PyObject *exception_keeper_value_1; 137     PyObject *exception_keeper_value_1;
145     PyTracebackObject *exception_keeper_tb_1; 138     PyTracebackObject *exception_keeper_tb_1;
146     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; 139     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
n 147     PyObject *exception_keeper_type_2; n
148     PyObject *exception_keeper_value_2;
149     PyTracebackObject *exception_keeper_tb_2;
150     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_2;
151     PyObject *tmp_assign_source_1; 140     PyObject *tmp_assign_source_1;
n 152     PyObject *tmp_assign_source_2; n
153     PyObject *tmp_assign_source_3;
154     PyObject *tmp_assign_source_4;
155     PyObject *tmp_assign_source_5;
156     PyObject *tmp_iter_arg_1;
157     PyObject *tmp_left_name_1;
158     PyObject *tmp_next_source_1;
159     PyObject *tmp_return_value; 141     PyObject *tmp_return_value;
n 160     PyObject *tmp_right_name_1; n
161     NUITKA_MAY_BE_UNUSED PyObject *tmp_unused; 142     NUITKA_MAY_BE_UNUSED PyObject *tmp_unused;
n 162     PyObject *tmp_xrange_high_1; n 143     static struct Nuitka_FrameObject *cache_frame_21b234b4b9e2d8114a9176040c2c627b = NULL;
163     PyObject *tmp_xrange_low_1;
164     static struct Nuitka_FrameObject *cache_frame_b96c1f50b7a6ca8c8269c815dc4cf8bc = NULL;
165 144
n 166     struct Nuitka_FrameObject *frame_b96c1f50b7a6ca8c8269c815dc4cf8bc; n 145     struct Nuitka_FrameObject *frame_21b234b4b9e2d8114a9176040c2c627b;
167 146
168     char const *type_description; 147     char const *type_description;
169     tmp_return_value = NULL; 148     tmp_return_value = NULL;
170 149
171     // Actual function code. 150     // Actual function code.
172     // Tried code: 151     // Tried code:
n 173     MAKE_OR_REUSE_FRAME( cache_frame_b96c1f50b7a6ca8c8269c815dc4cf8bc, codeobj_b96c1f50b7a6ca8c8269c815dc4cf8bc, module___main__, sizeof(PyObject *)+sizeof(PyObject *) ); n 152     MAKE_OR_REUSE_FRAME( cache_frame_21b234b4b9e2d8114a9176040c2c627b, codeobj_21b234b4b9e2d8114a9176040c2c627b, module___main__, sizeof(void *)+sizeof(PyObject *) );
174     frame_b96c1f50b7a6ca8c8269c815dc4cf8bc = cache_frame_b96c1f50b7a6ca8c8269c815dc4cf8bc; 153     frame_21b234b4b9e2d8114a9176040c2c627b = cache_frame_21b234b4b9e2d8114a9176040c2c627b;
175 154
176     // Push the new frame as the currently active one. 155     // Push the new frame as the currently active one.
n 177     pushFrameStack( frame_b96c1f50b7a6ca8c8269c815dc4cf8bc ); n 156     pushFrameStack( frame_21b234b4b9e2d8114a9176040c2c627b );
178 157
179     // Mark the frame object as in use, ref count 1 will be up for reuse. 158     // Mark the frame object as in use, ref count 1 will be up for reuse.
n 180     assert( Py_REFCNT( frame_b96c1f50b7a6ca8c8269c815dc4cf8bc ) == 2 ); // Frame stack n 159     assert( Py_REFCNT( frame_21b234b4b9e2d8114a9176040c2c627b ) == 2 ); // Frame stack
181 160
182     // Framed code: 161     // Framed code:
183     tmp_unused = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 ); 162     tmp_unused = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 );
184 163
185     if (unlikely( tmp_unused == NULL )) 164     if (unlikely( tmp_unused == NULL ))
195         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" ); 174         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" );
196         exception_tb = NULL; 175         exception_tb = NULL;
197         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 176         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
198         CHAIN_EXCEPTION( exception_value ); 177         CHAIN_EXCEPTION( exception_value );
199 178
n 200         exception_lineno = 27; n 179         exception_lineno = 26;
201         type_description = "oo"; 180         type_description = "No";
202         goto frame_exception_exit_1; 181         goto frame_exception_exit_1;
203     } 182     }
204 183
n 205     tmp_assign_source_1 = const_int_pos_2; n
206     assert( var_x == NULL );
207     Py_INCREF( tmp_assign_source_1 );
208     var_x = tmp_assign_source_1;
209  
210     tmp_assign_source_2 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 ); 184     tmp_assign_source_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1 );
211 185
n 212     if (unlikely( tmp_assign_source_2 == NULL )) n 186     if (unlikely( tmp_assign_source_1 == NULL ))
213     { 187     {
n 214         tmp_assign_source_2 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_module_value1 ); n 188         tmp_assign_source_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_module_value1 );
215     } 189     }
216 190
n 217     if ( tmp_assign_source_2 == NULL ) n 191     if ( tmp_assign_source_1 == NULL )
218     { 192     {
219 193
220         exception_type = PyExc_NameError; 194         exception_type = PyExc_NameError;
221         Py_INCREF( exception_type ); 195         Py_INCREF( exception_type );
222         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" ); 196         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "module_value1" );
223         exception_tb = NULL; 197         exception_tb = NULL;
224         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 198         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
225         CHAIN_EXCEPTION( exception_value ); 199         CHAIN_EXCEPTION( exception_value );
226 200
n 227         exception_lineno = 32; n 201         exception_lineno = 31;
228         type_description = "oo"; 202         type_description = "No";
229         goto frame_exception_exit_1; 203         goto frame_exception_exit_1;
230     } 204     }
231 205
232     assert( var_local_value == NULL ); 206     assert( var_local_value == NULL );
n 233     Py_INCREF( tmp_assign_source_2 ); n 207     Py_INCREF( tmp_assign_source_1 );
234     var_local_value = tmp_assign_source_2; 208     var_local_value = tmp_assign_source_1;
235 209
n 236     tmp_xrange_low_1 = var_local_value; n
237 210
n 238     CHECK_OBJECT( tmp_xrange_low_1 ); n 211 #if 0
239     tmp_left_name_1 = var_local_value; 212     RESTORE_FRAME_EXCEPTION( frame_21b234b4b9e2d8114a9176040c2c627b );
213 #endif
240 214
n 241     CHECK_OBJECT( tmp_left_name_1 ); n 215     // Put the previous frame back on top.
242     tmp_right_name_1 = const_int_pos_3; 216     popFrameStack();
243     tmp_xrange_high_1 = BINARY_OPERATION_ADD( tmp_left_name_1, tmp_right_name_1 );
244     if ( tmp_xrange_high_1 == NULL )
245     {
246         assert( ERROR_OCCURRED() );
247 217
n 248         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); n 218     goto frame_no_exception_1;
249 219
n 250   n
251         exception_lineno = 35;
252         type_description = "oo";
253         goto frame_exception_exit_1; 220     frame_exception_exit_1:;
221  
222 #if 0
223     RESTORE_FRAME_EXCEPTION( frame_21b234b4b9e2d8114a9176040c2c627b );
224 #endif
225  
226     if ( exception_tb == NULL )
254     } 227     {
255     tmp_iter_arg_1 = BUILTIN_XRANGE2( tmp_xrange_low_1, tmp_xrange_high_1 ); 228         exception_tb = MAKE_TRACEBACK( frame_21b234b4b9e2d8114a9176040c2c627b, exception_lineno );
256     Py_DECREF( tmp_xrange_high_1 );
257     if ( tmp_iter_arg_1 == NULL )
258     { 229     }
259         assert( ERROR_OCCURRED() ); 230     else if ( exception_tb->tb_frame != &frame_21b234b4b9e2d8114a9176040c2c627b->m_frame )
260  
261         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
262  
263  
264         exception_lineno = 35;
265         type_description = "oo";
266         goto frame_exception_exit_1;
267     } 231     {
268     tmp_assign_source_3 = MAKE_ITERATOR( tmp_iter_arg_1 ); 232         exception_tb = ADD_TRACEBACK( exception_tb, frame_21b234b4b9e2d8114a9176040c2c627b, exception_lineno );
269     Py_DECREF( tmp_iter_arg_1 );
270     if ( tmp_assign_source_3 == NULL )
271     { 233     }
272         assert( ERROR_OCCURRED() );
273 234
n 274         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); n 235     Nuitka_Frame_AttachLocals( (struct Nuitka_FrameObject *)frame_21b234b4b9e2d8114a9176040c2c627b, type_description ,NULL, var_local_value );
275 236
n 276   n 237     // Release cached frame.
277         exception_lineno = 35; 238     if ( frame_21b234b4b9e2d8114a9176040c2c627b == cache_frame_21b234b4b9e2d8114a9176040c2c627b )
278         type_description = "oo";
279         goto frame_exception_exit_1;
280     } 239     {
281     assert( tmp_for_loop_1__for_iterator == NULL ); 240         Py_DECREF( frame_21b234b4b9e2d8114a9176040c2c627b );
282     tmp_for_loop_1__for_iterator = tmp_assign_source_3;
283  
284     // Tried code:
285     loop_start_1:;
286     tmp_next_source_1 = tmp_for_loop_1__for_iterator;
287  
288     CHECK_OBJECT( tmp_next_source_1 );
289     tmp_assign_source_4 = ITERATOR_NEXT( tmp_next_source_1 );
290     if ( tmp_assign_source_4 == NULL )
291     { 241     }
292         if ( CHECK_AND_CLEAR_STOP_ITERATION_OCCURRED() ) 242     cache_frame_21b234b4b9e2d8114a9176040c2c627b = NULL;
293         {
294 243
n 295             goto loop_end_1; n 244     assertFrameObject( frame_21b234b4b9e2d8114a9176040c2c627b );
296         }
297         else
298         {
299 245
n 300             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); n
301             type_description = "oo";
302             exception_lineno = 35;
303             goto try_except_handler_2;
304         }
305     }
306 246
n 307     { n 247     // Put the previous frame back on top.
308         PyObject *old = tmp_for_loop_1__iter_value; 248     popFrameStack();
309         tmp_for_loop_1__iter_value = tmp_assign_source_4;
310         Py_XDECREF( old );
311     }
312 249
n 313     tmp_assign_source_5 = tmp_for_loop_1__iter_value; n 250     // Return the error.
314  
315     CHECK_OBJECT( tmp_assign_source_5 );
316     {
317         PyObject *old = var_x;
318         var_x = tmp_assign_source_5;
319         Py_INCREF( var_x );
320         Py_XDECREF( old );
321     }
322  
323     if ( CONSIDER_THREADING() == false )
324     {
325         assert( ERROR_OCCURRED() );
326  
327         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
328  
329  
330         exception_lineno = 35;
331         type_description = "oo";
332         goto try_except_handler_2; 251     goto try_except_handler_1;
333     } 252  
334     goto loop_start_1; 253     frame_no_exception_1:;
335     loop_end_1:; 254  
255     tmp_return_value = Py_None;
256     Py_INCREF( tmp_return_value );
336     goto try_end_1; 257     goto try_return_handler_1;
258     // tried codes exits in all cases
259     NUITKA_CANNOT_GET_HERE( __main__$$$function_1_calledRepeatedly );
260     return NULL;
261     // Return handler code:
262     try_return_handler_1:;
263     CHECK_OBJECT( (PyObject *)var_local_value );
264     Py_DECREF( var_local_value );
265     var_local_value = NULL;
266  
267     goto function_return_exit;
337     // Exception handler code: 268     // Exception handler code:
n 338     try_except_handler_2:; n 269     try_except_handler_1:;
339     exception_keeper_type_1 = exception_type; 270     exception_keeper_type_1 = exception_type;
340     exception_keeper_value_1 = exception_value; 271     exception_keeper_value_1 = exception_value;
341     exception_keeper_tb_1 = exception_tb; 272     exception_keeper_tb_1 = exception_tb;
342     exception_keeper_lineno_1 = exception_lineno; 273     exception_keeper_lineno_1 = exception_lineno;
343     exception_type = NULL; 274     exception_type = NULL;
344     exception_value = NULL; 275     exception_value = NULL;
345     exception_tb = NULL; 276     exception_tb = NULL;
346     exception_lineno = 0; 277     exception_lineno = 0;
347 278
n 348     Py_XDECREF( tmp_for_loop_1__iter_value ); n
349     tmp_for_loop_1__iter_value = NULL;
350  
351     Py_XDECREF( tmp_for_loop_1__for_iterator );
352     tmp_for_loop_1__for_iterator = NULL;
353  
354     // Re-raise. 279     // Re-raise.
355     exception_type = exception_keeper_type_1; 280     exception_type = exception_keeper_type_1;
356     exception_value = exception_keeper_value_1; 281     exception_value = exception_keeper_value_1;
357     exception_tb = exception_keeper_tb_1; 282     exception_tb = exception_keeper_tb_1;
358     exception_lineno = exception_keeper_lineno_1; 283     exception_lineno = exception_keeper_lineno_1;
n 359   n
360     goto frame_exception_exit_1;
361     // End of try:
362     try_end_1:;
363  
364 #if 0
365     RESTORE_FRAME_EXCEPTION( frame_b96c1f50b7a6ca8c8269c815dc4cf8bc );
366 #endif
367  
368     // Put the previous frame back on top.
369     popFrameStack();
370  
371     goto frame_no_exception_1;
372  
373     frame_exception_exit_1:;
374  
375 #if 0
376     RESTORE_FRAME_EXCEPTION( frame_b96c1f50b7a6ca8c8269c815dc4cf8bc );
377 #endif
378  
379     if ( exception_tb == NULL )
380     {
381         exception_tb = MAKE_TRACEBACK( frame_b96c1f50b7a6ca8c8269c815dc4cf8bc, exception_lineno );
382     }
383     else if ( exception_tb->tb_frame != &frame_b96c1f50b7a6ca8c8269c815dc4cf8bc->m_frame )
384     {
385         exception_tb = ADD_TRACEBACK( exception_tb, frame_b96c1f50b7a6ca8c8269c815dc4cf8bc, exception_lineno );
386     }
387  
388     Nuitka_Frame_AttachLocals( (struct Nuitka_FrameObject *)frame_b96c1f50b7a6ca8c8269c815dc4cf8bc, type_description ,var_x, var_local_value );
389  
390     // Release cached frame.
391     if ( frame_b96c1f50b7a6ca8c8269c815dc4cf8bc == cache_frame_b96c1f50b7a6ca8c8269c815dc4cf8bc )
392     {
393         Py_DECREF( frame_b96c1f50b7a6ca8c8269c815dc4cf8bc );
394     }
395     cache_frame_b96c1f50b7a6ca8c8269c815dc4cf8bc = NULL;
396  
397     assertFrameObject( frame_b96c1f50b7a6ca8c8269c815dc4cf8bc );
398  
399  
400     // Put the previous frame back on top.
401     popFrameStack();
402  
403     // Return the error.
404     goto try_except_handler_1;
405  
406     frame_no_exception_1:;
407  
408     Py_XDECREF( tmp_for_loop_1__iter_value );
409     tmp_for_loop_1__iter_value = NULL;
410  
411     Py_XDECREF( tmp_for_loop_1__for_iterator );
412     tmp_for_loop_1__for_iterator = NULL;
413  
414     tmp_return_value = Py_None;
415     Py_INCREF( tmp_return_value );
416     goto try_return_handler_1;
417     // tried codes exits in all cases
418     NUITKA_CANNOT_GET_HERE( __main__$$$function_1_calledRepeatedly );
419     return NULL;
420     // Return handler code:
421     try_return_handler_1:;
422     Py_XDECREF( var_x );
423     var_x = NULL;
424  
425     Py_XDECREF( var_local_value );
426     var_local_value = NULL;
427  
428     goto function_return_exit;
429     // Exception handler code:
430     try_except_handler_1:;
431     exception_keeper_type_2 = exception_type;
432     exception_keeper_value_2 = exception_value;
433     exception_keeper_tb_2 = exception_tb;
434     exception_keeper_lineno_2 = exception_lineno;
435     exception_type = NULL;
436     exception_value = NULL;
437     exception_tb = NULL;
438     exception_lineno = 0;
439  
440     Py_XDECREF( var_x );
441     var_x = NULL;
442  
443     Py_XDECREF( var_local_value );
444     var_local_value = NULL;
445  
446     // Re-raise.
447     exception_type = exception_keeper_type_2;
448     exception_value = exception_keeper_value_2;
449     exception_tb = exception_keeper_tb_2;
450     exception_lineno = exception_keeper_lineno_2;
451 284
452     goto function_exception_exit; 285     goto function_exception_exit;
453     // End of try: 286     // End of try:
454 287
455     // Return statement must have exited already. 288     // Return statement must have exited already.
477         impl___main__$$$function_1_calledRepeatedly, 310         impl___main__$$$function_1_calledRepeatedly,
478         const_str_plain_calledRepeatedly, 311         const_str_plain_calledRepeatedly,
479 #if PYTHON_VERSION >= 330 312 #if PYTHON_VERSION >= 330
480         NULL, 313         NULL,
481 #endif 314 #endif
n 482         codeobj_b96c1f50b7a6ca8c8269c815dc4cf8bc, n 315         codeobj_21b234b4b9e2d8114a9176040c2c627b,
483         NULL, 316         NULL,
484 #if PYTHON_VERSION >= 300 317 #if PYTHON_VERSION >= 300
485         NULL, 318         NULL,
486         const_dict_empty, 319         const_dict_empty,
487 #endif 320 #endif
688     PyObject *tmp_assign_source_9; 521     PyObject *tmp_assign_source_9;
689     PyObject *tmp_assign_source_10; 522     PyObject *tmp_assign_source_10;
690     PyObject *tmp_assign_source_11; 523     PyObject *tmp_assign_source_11;
691     PyObject *tmp_assign_source_12; 524     PyObject *tmp_assign_source_12;
692     PyObject *tmp_assign_source_13; 525     PyObject *tmp_assign_source_13;
n 693     PyObject *tmp_assign_source_14; n
694     PyObject *tmp_called_instance_1; 526     PyObject *tmp_called_instance_1;
695     PyObject *tmp_called_name_1; 527     PyObject *tmp_called_name_1;
696     PyObject *tmp_called_name_2; 528     PyObject *tmp_called_name_2;
697     PyObject *tmp_fromlist_name_1; 529     PyObject *tmp_fromlist_name_1;
698     PyObject *tmp_globals_name_1; 530     PyObject *tmp_globals_name_1;
716     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___spec__, tmp_assign_source_4 ); 548     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___spec__, tmp_assign_source_4 );
717     tmp_assign_source_5 = Py_None; 549     tmp_assign_source_5 = Py_None;
718     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___cached__, tmp_assign_source_5 ); 550     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___cached__, tmp_assign_source_5 );
719     tmp_assign_source_6 = Py_None; 551     tmp_assign_source_6 = Py_None;
720     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___package__, tmp_assign_source_6 ); 552     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___package__, tmp_assign_source_6 );
n 721     tmp_assign_source_7 = const_str_digest_26d330f2e815c97fe30c5501b791a062; n
722     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain___file__, tmp_assign_source_7 );
723     tmp_assign_source_8 = const_int_pos_5; 553     tmp_assign_source_7 = const_int_pos_5;
724     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1, tmp_assign_source_8 ); 554     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value1, tmp_assign_source_7 );
725     tmp_assign_source_9 = const_int_pos_3; 555     tmp_assign_source_8 = const_int_pos_3;
726     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value2, tmp_assign_source_9 ); 556     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_module_value2, tmp_assign_source_8 );
727     tmp_assign_source_10 = MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  ); 557     tmp_assign_source_9 = MAKE_FUNCTION___main__$$$function_1_calledRepeatedly(  );
728     UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_calledRepeatedly, tmp_assign_source_10 ); 558     UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_calledRepeatedly, tmp_assign_source_9 );
729     tmp_name_name_1 = const_str_plain_itertools; 559     tmp_name_name_1 = const_str_plain_itertools;
730     tmp_globals_name_1 = ((PyModuleObject *)module___main__)->md_dict; 560     tmp_globals_name_1 = ((PyModuleObject *)module___main__)->md_dict;
731     tmp_locals_name_1 = Py_None; 561     tmp_locals_name_1 = Py_None;
732     tmp_fromlist_name_1 = Py_None; 562     tmp_fromlist_name_1 = Py_None;
733     tmp_level_name_1 = const_int_0; 563     tmp_level_name_1 = const_int_0;
n 734     tmp_assign_source_11 = IMPORT_MODULE5( tmp_name_name_1, tmp_globals_name_1, tmp_locals_name_1, tmp_fromlist_name_1, tmp_level_name_1 ); n 564     tmp_assign_source_10 = IMPORT_MODULE5( tmp_name_name_1, tmp_globals_name_1, tmp_locals_name_1, tmp_fromlist_name_1, tmp_level_name_1 );
735     assert( tmp_assign_source_11 != NULL ); 565     assert( tmp_assign_source_10 != NULL );
736     UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_itertools, tmp_assign_source_11 ); 566     UPDATE_STRING_DICT1( moduledict___main__, (Nuitka_StringObject *)const_str_plain_itertools, tmp_assign_source_10 );
737     // Frame without reuse. 567     // Frame without reuse.
738     frame_bd03b64e9b5d2d4d9df9e6a7afe90628 = MAKE_MODULE_FRAME( codeobj_bd03b64e9b5d2d4d9df9e6a7afe90628, module___main__ ); 568     frame_bd03b64e9b5d2d4d9df9e6a7afe90628 = MAKE_MODULE_FRAME( codeobj_bd03b64e9b5d2d4d9df9e6a7afe90628, module___main__ );
739 569
740     // Push the new frame as the currently active one, and we should be exclusively 570     // Push the new frame as the currently active one, and we should be exclusively
741     // owning it. 571     // owning it.
758         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "itertools" ); 588         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "itertools" );
759         exception_tb = NULL; 589         exception_tb = NULL;
760         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 590         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
761         CHAIN_EXCEPTION( exception_value ); 591         CHAIN_EXCEPTION( exception_value );
762 592
n 763         exception_lineno = 40; n 593         exception_lineno = 39;
764 594
765         goto frame_exception_exit_1; 595         goto frame_exception_exit_1;
766     } 596     }
767 597
n 768     frame_bd03b64e9b5d2d4d9df9e6a7afe90628->m_frame.f_lineno = 40; n 598     frame_bd03b64e9b5d2d4d9df9e6a7afe90628->m_frame.f_lineno = 39;
769     tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( tmp_called_instance_1, const_str_plain_repeat, &PyTuple_GET_ITEM( const_tuple_none_int_pos_50000_tuple, 0 ) ); 599     tmp_iter_arg_1 = CALL_METHOD_WITH_ARGS2( tmp_called_instance_1, const_str_plain_repeat, &PyTuple_GET_ITEM( const_tuple_none_int_pos_50000_tuple, 0 ) );
770 600
771     if ( tmp_iter_arg_1 == NULL ) 601     if ( tmp_iter_arg_1 == NULL )
772     { 602     {
773         assert( ERROR_OCCURRED() ); 603         assert( ERROR_OCCURRED() );
774 604
775         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 605         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
776 606
777 607
n 778         exception_lineno = 40; n 608         exception_lineno = 39;
779 609
780         goto frame_exception_exit_1; 610         goto frame_exception_exit_1;
781     } 611     }
n 782     tmp_assign_source_12 = MAKE_ITERATOR( tmp_iter_arg_1 ); n 612     tmp_assign_source_11 = MAKE_ITERATOR( tmp_iter_arg_1 );
783     Py_DECREF( tmp_iter_arg_1 ); 613     Py_DECREF( tmp_iter_arg_1 );
n 784     if ( tmp_assign_source_12 == NULL ) n 614     if ( tmp_assign_source_11 == NULL )
785     { 615     {
786         assert( ERROR_OCCURRED() ); 616         assert( ERROR_OCCURRED() );
787 617
788         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 618         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
789 619
790 620
n 791         exception_lineno = 40; n 621         exception_lineno = 39;
792 622
793         goto frame_exception_exit_1; 623         goto frame_exception_exit_1;
794     } 624     }
795     assert( tmp_for_loop_1__for_iterator == NULL ); 625     assert( tmp_for_loop_1__for_iterator == NULL );
n 796     tmp_for_loop_1__for_iterator = tmp_assign_source_12; n 626     tmp_for_loop_1__for_iterator = tmp_assign_source_11;
797 627
798     // Tried code: 628     // Tried code:
799     loop_start_1:; 629     loop_start_1:;
800     tmp_next_source_1 = tmp_for_loop_1__for_iterator; 630     tmp_next_source_1 = tmp_for_loop_1__for_iterator;
801 631
802     CHECK_OBJECT( tmp_next_source_1 ); 632     CHECK_OBJECT( tmp_next_source_1 );
n 803     tmp_assign_source_13 = ITERATOR_NEXT( tmp_next_source_1 ); n 633     tmp_assign_source_12 = ITERATOR_NEXT( tmp_next_source_1 );
804     if ( tmp_assign_source_13 == NULL ) 634     if ( tmp_assign_source_12 == NULL )
805     { 635     {
806         if ( CHECK_AND_CLEAR_STOP_ITERATION_OCCURRED() ) 636         if ( CHECK_AND_CLEAR_STOP_ITERATION_OCCURRED() )
807         { 637         {
808 638
809             goto loop_end_1; 639             goto loop_end_1;
811         else 641         else
812         { 642         {
813 643
814             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 644             FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
815 645
n 816             exception_lineno = 40; n 646             exception_lineno = 39;
817             goto try_except_handler_1; 647             goto try_except_handler_1;
818         } 648         }
819     } 649     }
820 650
821     { 651     {
822         PyObject *old = tmp_for_loop_1__iter_value; 652         PyObject *old = tmp_for_loop_1__iter_value;
n 823         tmp_for_loop_1__iter_value = tmp_assign_source_13; n 653         tmp_for_loop_1__iter_value = tmp_assign_source_12;
824         Py_XDECREF( old ); 654         Py_XDECREF( old );
825     } 655     }
826 656
n 827     tmp_assign_source_14 = tmp_for_loop_1__iter_value; n 657     tmp_assign_source_13 = tmp_for_loop_1__iter_value;
828 658
n 829     CHECK_OBJECT( tmp_assign_source_14 ); n 659     CHECK_OBJECT( tmp_assign_source_13 );
830     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_x, tmp_assign_source_14 ); 660     UPDATE_STRING_DICT0( moduledict___main__, (Nuitka_StringObject *)const_str_plain_x, tmp_assign_source_13 );
831     tmp_called_name_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_calledRepeatedly ); 661     tmp_called_name_1 = GET_STRING_DICT_VALUE( moduledict___main__, (Nuitka_StringObject *)const_str_plain_calledRepeatedly );
832 662
833     if (unlikely( tmp_called_name_1 == NULL )) 663     if (unlikely( tmp_called_name_1 == NULL ))
834     { 664     {
835         tmp_called_name_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_calledRepeatedly ); 665         tmp_called_name_1 = GET_STRING_DICT_VALUE( dict_builtin, (Nuitka_StringObject *)const_str_plain_calledRepeatedly );
843         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "calledRepeatedly" ); 673         exception_value = PyUnicode_FromFormat( "name '%s' is not defined", "calledRepeatedly" );
844         exception_tb = NULL; 674         exception_tb = NULL;
845         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb ); 675         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
846         CHAIN_EXCEPTION( exception_value ); 676         CHAIN_EXCEPTION( exception_value );
847 677
n 848         exception_lineno = 41; n 678         exception_lineno = 40;
849 679
850         goto try_except_handler_1; 680         goto try_except_handler_1;
851     } 681     }
852 682
n 853     frame_bd03b64e9b5d2d4d9df9e6a7afe90628->m_frame.f_lineno = 41; n 683     frame_bd03b64e9b5d2d4d9df9e6a7afe90628->m_frame.f_lineno = 40;
854     tmp_unused = CALL_FUNCTION_NO_ARGS( tmp_called_name_1 ); 684     tmp_unused = CALL_FUNCTION_NO_ARGS( tmp_called_name_1 );
855     if ( tmp_unused == NULL ) 685     if ( tmp_unused == NULL )
856     { 686     {
857         assert( ERROR_OCCURRED() ); 687         assert( ERROR_OCCURRED() );
858 688
859         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 689         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
860 690
861 691
n 862         exception_lineno = 41; n 692         exception_lineno = 40;
863 693
864         goto try_except_handler_1; 694         goto try_except_handler_1;
865     } 695     }
866     Py_DECREF( tmp_unused ); 696     Py_DECREF( tmp_unused );
867     if ( CONSIDER_THREADING() == false ) 697     if ( CONSIDER_THREADING() == false )
869         assert( ERROR_OCCURRED() ); 699         assert( ERROR_OCCURRED() );
870 700
871         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 701         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
872 702
873 703
n 874         exception_lineno = 40; n 704         exception_lineno = 39;
875 705
876         goto try_except_handler_1; 706         goto try_except_handler_1;
877     } 707     }
878     goto loop_start_1; 708     goto loop_start_1;
879     loop_end_1:; 709     loop_end_1:;
910     Py_XDECREF( tmp_for_loop_1__for_iterator ); 740     Py_XDECREF( tmp_for_loop_1__for_iterator );
911     tmp_for_loop_1__for_iterator = NULL; 741     tmp_for_loop_1__for_iterator = NULL;
912 742
913     tmp_called_name_2 = LOOKUP_BUILTIN( const_str_plain_print ); 743     tmp_called_name_2 = LOOKUP_BUILTIN( const_str_plain_print );
914     assert( tmp_called_name_2 != NULL ); 744     assert( tmp_called_name_2 != NULL );
n 915     frame_bd03b64e9b5d2d4d9df9e6a7afe90628->m_frame.f_lineno = 43; n 745     frame_bd03b64e9b5d2d4d9df9e6a7afe90628->m_frame.f_lineno = 42;
916     tmp_unused = CALL_FUNCTION_WITH_ARGS1( tmp_called_name_2, &PyTuple_GET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0 ) ); 746     tmp_unused = CALL_FUNCTION_WITH_ARGS1( tmp_called_name_2, &PyTuple_GET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0 ) );
917 747
918     if ( tmp_unused == NULL ) 748     if ( tmp_unused == NULL )
919     { 749     {
920         assert( ERROR_OCCURRED() ); 750         assert( ERROR_OCCURRED() );
921 751
922         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb ); 752         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
923 753
924 754
t 925         exception_lineno = 43; t 755         exception_lineno = 42;
926 756
927         goto frame_exception_exit_1; 757         goto frame_exception_exit_1;
928     } 758     }
929     Py_DECREF( tmp_unused ); 759     Py_DECREF( tmp_unused );
930 760