Construct CallCompiledObjectMethodPosArgsConstant6

Performance Diagrams

Construct CallCompiledObjectMethodPosArgsConstant6 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000240000000240000000260000000260000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)26472879788.11538461538461257.0CPython 2.788007324240.03846153846155421.96352215959456Nuitka (master)88005600391.96153846153845421.9651314553263Nuitka (develop)88006308543.8846153846154421.9644705612555Nuitka (factory)Construct CallCompiledObjectMethodPosArgsConstant6Ticks Construct CallCompiledObjectMethodPosArgsConstant6 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000240000000240000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)24955029588.11538461538461257.0CPython 3.586560985240.03846153846155418.39899184990406Nuitka (master)86563942391.96153846153845418.3960637019237Nuitka (develop)86558841543.8846153846154418.4011149304823Nuitka (factory)Construct CallCompiledObjectMethodPosArgsConstant6Ticks

Source Code with Construct

from __future__ import print_function

class C(object):
    def compiled_method(self, a,b,c,d,e,f):
        return a, b, c, d, e, f

def calledRepeatedly():
    inst = C()

    # This is supposed to make a call to a non-compiled function, which is
    # being optimized separately.
# construct_begin
    inst.compiled_method("some", "random", "values", "to", "check", "call")
    inst.compiled_method("some", "other", "values", "to", "check", "call")
    inst.compiled_method("some", "new", "values", "to", "check", "call")

# construct_alternative



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

print("OK.")

Source Code without Construct

from __future__ import print_function

class C(object):
    def compiled_method(self, a,b,c,d,e,f):
        return a, b, c, d, e, f

def calledRepeatedly():
    inst = C()

    # This is supposed to make a call to a non-compiled function, which is
    # being optimized separately.
# construct_begin




# construct_alternative
    pass
# construct_end

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

print("OK.")

Context Diff of Source Code


Construct
Baseline
27     inst = C() 27     inst = C()
28 28
29     # This is supposed to make a call to a non-compiled function, which is 29     # This is supposed to make a call to a non-compiled function, which is
30     # being optimized separately. 30     # being optimized separately.
31 # construct_begin 31 # construct_begin
n 32     inst.compiled_method("some", "random", "values", "to", "check", "call") n 32  
33     inst.compiled_method("some", "other", "values", "to", "check", "call") 33  
34     inst.compiled_method("some", "new", "values", "to", "check", "call") 34  
35 35
36 # construct_alternative 36 # construct_alternative
t 37   t 37     pass
38   38 # construct_end
39 39
40 import itertools 40 import itertools
41 for x in itertools.repeat(None, 50000): 41 for x in itertools.repeat(None, 50000):
42     calledRepeatedly() 42     calledRepeatedly()
43 43

Context Diff of Generated Code


Construct
Baseline
29 29
30 PyObject *module___main__; 30 PyObject *module___main__;
31 PyDictObject *moduledict___main__; 31 PyDictObject *moduledict___main__;
32 32
33 /* The module constants used, if any. */ 33 /* The module constants used, if any. */
n 34 static PyObject *const_str_plain_to; n
35 static PyObject *const_str_plain_b; 34 static PyObject *const_str_plain_b;
36 static PyObject *const_str_plain_itertools; 35 static PyObject *const_str_plain_itertools;
37 static PyObject *const_tuple_type_object_tuple; 36 static PyObject *const_tuple_type_object_tuple;
38 static PyObject *const_str_plain_metaclass; 37 static PyObject *const_str_plain_metaclass;
39 static PyObject *const_str_plain___package__; 38 static PyObject *const_str_plain___package__;
40 static PyObject *const_str_plain___spec__; 39 static PyObject *const_str_plain___spec__;
41 extern PyObject *const_str_plain___module__; 40 extern PyObject *const_str_plain___module__;
42 static PyObject *const_str_plain_compiled_method; 41 static PyObject *const_str_plain_compiled_method;
43 static PyObject *const_str_digest_757227af6dac5c01686d3bbc7671f8bf; 42 static PyObject *const_str_digest_757227af6dac5c01686d3bbc7671f8bf;
n 44 static PyObject *const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple; n
45 static PyObject *const_str_plain___qualname__; 43 static PyObject *const_str_plain___qualname__;
46 static PyObject *const_str_plain_f; 44 static PyObject *const_str_plain_f;
n 47 static PyObject *const_str_plain_values; n
48 extern PyObject *const_dict_empty; 45 extern PyObject *const_dict_empty;
49 extern PyObject *const_str_plain___file__; 46 extern PyObject *const_str_plain___file__;
n 50 static PyObject *const_str_plain_other; n
51 extern PyObject *const_int_0; 47 extern PyObject *const_int_0;
n 52 static PyObject *const_str_plain_check; n
53 static PyObject *const_str_digest_228e8562d8ce524857c12a574dd89377; 48 static PyObject *const_str_digest_228e8562d8ce524857c12a574dd89377;
54 extern PyObject *const_str_plain_print; 49 extern PyObject *const_str_plain_print;
55 static PyObject *const_str_plain___prepare__; 50 static PyObject *const_str_plain___prepare__;
n 56 static PyObject *const_str_plain_call; n
57 static PyObject *const_str_plain_a; 51 static PyObject *const_str_plain_a;
58 static PyObject *const_int_pos_50000; 52 static PyObject *const_int_pos_50000;
59 static PyObject *const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple; 53 static PyObject *const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple;
n 60 static PyObject *const_str_plain_random; n
61 static PyObject *const_str_plain_self; 54 static PyObject *const_str_plain_self;
62 static PyObject *const_str_plain_inst; 55 static PyObject *const_str_plain_inst;
63 static PyObject *const_str_plain_e; 56 static PyObject *const_str_plain_e;
64 static PyObject *const_str_plain_calledRepeatedly; 57 static PyObject *const_str_plain_calledRepeatedly;
65 static PyObject *const_str_angle_module; 58 static PyObject *const_str_angle_module;
69 extern PyObject *const_tuple_empty; 62 extern PyObject *const_tuple_empty;
70 static PyObject *const_str_digest_5ed1392909ad16e6227b8230f4582352; 63 static PyObject *const_str_digest_5ed1392909ad16e6227b8230f4582352;
71 static PyObject *const_str_plain_c; 64 static PyObject *const_str_plain_c;
72 static PyObject *const_tuple_str_plain_inst_tuple; 65 static PyObject *const_tuple_str_plain_inst_tuple;
73 static PyObject *const_str_plain_repeat; 66 static PyObject *const_str_plain_repeat;
n 74 static PyObject *const_str_plain_some; n
75 static PyObject *const_str_plain_new;
76 static PyObject *const_tuple_none_int_pos_50000_tuple; 67 static PyObject *const_tuple_none_int_pos_50000_tuple;
77 extern PyObject *const_str_plain___loader__; 68 extern PyObject *const_str_plain___loader__;
78 extern PyObject *const_str_plain___main__; 69 extern PyObject *const_str_plain___main__;
n 79 static PyObject *const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple; n
80 static PyObject *const_tuple_ca2f155a28955fc472d4376e2721d689_tuple;
81 static PyObject *const_str_plain_d; 70 static PyObject *const_str_plain_d;
82 extern PyObject *const_str_plain___doc__; 71 extern PyObject *const_str_plain___doc__;
83 extern PyObject *const_str_plain___cached__; 72 extern PyObject *const_str_plain___cached__;
84 static PyObject *const_str_plain_print_function; 73 static PyObject *const_str_plain_print_function;
85 static PyObject *module_filename_obj; 74 static PyObject *module_filename_obj;
86 75
87 static bool constants_created = false; 76 static bool constants_created = false;
88 77
89 static void createModuleConstants( void ) 78 static void createModuleConstants( void )
90 { 79 {
n 91     const_str_plain_to = UNSTREAM_STRING( &constant_bin[ 0 ], 2, 1 ); n
92     const_str_plain_b = UNSTREAM_STRING( &constant_bin[ 2 ], 1, 1 ); 80     const_str_plain_b = UNSTREAM_STRING( &constant_bin[ 0 ], 1, 1 );
93     const_str_plain_itertools = UNSTREAM_STRING( &constant_bin[ 3 ], 9, 1 ); 81     const_str_plain_itertools = UNSTREAM_STRING( &constant_bin[ 1 ], 9, 1 );
94     const_tuple_type_object_tuple = PyTuple_New( 1 ); 82     const_tuple_type_object_tuple = PyTuple_New( 1 );
95     PyTuple_SET_ITEM( const_tuple_type_object_tuple, 0, (PyObject *)&PyBaseObject_Type ); Py_INCREF( (PyObject *)&PyBaseObject_Type ); 83     PyTuple_SET_ITEM( const_tuple_type_object_tuple, 0, (PyObject *)&PyBaseObject_Type ); Py_INCREF( (PyObject *)&PyBaseObject_Type );
n 96     const_str_plain_metaclass = UNSTREAM_STRING( &constant_bin[ 12 ], 9, 1 ); n 84     const_str_plain_metaclass = UNSTREAM_STRING( &constant_bin[ 10 ], 9, 1 );
97     const_str_plain___package__ = UNSTREAM_STRING( &constant_bin[ 21 ], 11, 1 ); 85     const_str_plain___package__ = UNSTREAM_STRING( &constant_bin[ 19 ], 11, 1 );
98     const_str_plain___spec__ = UNSTREAM_STRING( &constant_bin[ 32 ], 8, 1 ); 86     const_str_plain___spec__ = UNSTREAM_STRING( &constant_bin[ 30 ], 8, 1 );
99     const_str_plain_compiled_method = UNSTREAM_STRING( &constant_bin[ 40 ], 15, 1 ); 87     const_str_plain_compiled_method = UNSTREAM_STRING( &constant_bin[ 38 ], 15, 1 );
100     const_str_digest_757227af6dac5c01686d3bbc7671f8bf = UNSTREAM_STRING( &constant_bin[ 55 ], 17, 0 ); 88     const_str_digest_757227af6dac5c01686d3bbc7671f8bf = UNSTREAM_STRING( &constant_bin[ 53 ], 17, 0 );
101     const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple = PyTuple_New( 6 );
102     const_str_plain_some = UNSTREAM_STRING( &constant_bin[ 72 ], 4, 1 );
103     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 0, const_str_plain_some ); Py_INCREF( const_str_plain_some );
104     const_str_plain_new = UNSTREAM_STRING( &constant_bin[ 76 ], 3, 1 );
105     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 1, const_str_plain_new ); Py_INCREF( const_str_plain_new );
106     const_str_plain_values = UNSTREAM_STRING( &constant_bin[ 79 ], 6, 1 );
107     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 2, const_str_plain_values ); Py_INCREF( const_str_plain_values );
108     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 3, const_str_plain_to ); Py_INCREF( const_str_plain_to );
109     const_str_plain_check = UNSTREAM_STRING( &constant_bin[ 85 ], 5, 1 );
110     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 4, const_str_plain_check ); Py_INCREF( const_str_plain_check );
111     const_str_plain_call = UNSTREAM_STRING( &constant_bin[ 90 ], 4, 1 );
112     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 5, const_str_plain_call ); Py_INCREF( const_str_plain_call );
113     const_str_plain___qualname__ = UNSTREAM_STRING( &constant_bin[ 94 ], 12, 1 ); 89     const_str_plain___qualname__ = UNSTREAM_STRING( &constant_bin[ 70 ], 12, 1 );
114     const_str_plain_f = UNSTREAM_STRING( &constant_bin[ 106 ], 1, 1 ); 90     const_str_plain_f = UNSTREAM_STRING( &constant_bin[ 82 ], 1, 1 );
115     const_str_plain_other = UNSTREAM_STRING( &constant_bin[ 107 ], 5, 1 );
116     const_str_digest_228e8562d8ce524857c12a574dd89377 = UNSTREAM_STRING( &constant_bin[ 112 ], 98, 0 ); 91     const_str_digest_228e8562d8ce524857c12a574dd89377 = UNSTREAM_STRING( &constant_bin[ 83 ], 98, 0 );
117     const_str_plain___prepare__ = UNSTREAM_STRING( &constant_bin[ 210 ], 11, 1 ); 92     const_str_plain___prepare__ = UNSTREAM_STRING( &constant_bin[ 181 ], 11, 1 );
118     const_str_plain_a = UNSTREAM_STRING( &constant_bin[ 15 ], 1, 1 ); 93     const_str_plain_a = UNSTREAM_STRING( &constant_bin[ 13 ], 1, 1 );
119     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul ); 94     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul );
120     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 ); 95     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 );
n 121     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING( &constant_bin[ 221 ], 3, 0 ); n 96     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING( &constant_bin[ 192 ], 3, 0 );
122     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 ); 97     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 );
n 123     const_str_plain_random = UNSTREAM_STRING( &constant_bin[ 224 ], 6, 1 ); n
124     const_str_plain_self = UNSTREAM_STRING( &constant_bin[ 230 ], 4, 1 ); 98     const_str_plain_self = UNSTREAM_STRING( &constant_bin[ 195 ], 4, 1 );
125     const_str_plain_inst = UNSTREAM_STRING( &constant_bin[ 234 ], 4, 1 ); 99     const_str_plain_inst = UNSTREAM_STRING( &constant_bin[ 199 ], 4, 1 );
126     const_str_plain_e = UNSTREAM_STRING( &constant_bin[ 5 ], 1, 1 ); 100     const_str_plain_e = UNSTREAM_STRING( &constant_bin[ 3 ], 1, 1 );
127     const_str_plain_calledRepeatedly = UNSTREAM_STRING( &constant_bin[ 238 ], 16, 1 ); 101     const_str_plain_calledRepeatedly = UNSTREAM_STRING( &constant_bin[ 203 ], 16, 1 );
128     const_str_angle_module = UNSTREAM_STRING( &constant_bin[ 254 ], 8, 0 ); 102     const_str_angle_module = UNSTREAM_STRING( &constant_bin[ 219 ], 8, 0 );
129     const_tuple_ba58284e993f645f647ff630deb3d552_tuple = PyTuple_New( 7 ); 103     const_tuple_ba58284e993f645f647ff630deb3d552_tuple = PyTuple_New( 7 );
130     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 0, const_str_plain_self ); Py_INCREF( const_str_plain_self ); 104     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 0, const_str_plain_self ); Py_INCREF( const_str_plain_self );
131     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 1, const_str_plain_a ); Py_INCREF( const_str_plain_a ); 105     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 1, const_str_plain_a ); Py_INCREF( const_str_plain_a );
132     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 2, const_str_plain_b ); Py_INCREF( const_str_plain_b ); 106     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 2, const_str_plain_b ); Py_INCREF( const_str_plain_b );
n 133     const_str_plain_c = UNSTREAM_STRING( &constant_bin[ 16 ], 1, 1 ); n 107     const_str_plain_c = UNSTREAM_STRING( &constant_bin[ 14 ], 1, 1 );
134     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 3, const_str_plain_c ); Py_INCREF( const_str_plain_c ); 108     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 3, const_str_plain_c ); Py_INCREF( const_str_plain_c );
n 135     const_str_plain_d = UNSTREAM_STRING( &constant_bin[ 47 ], 1, 1 ); n 109     const_str_plain_d = UNSTREAM_STRING( &constant_bin[ 45 ], 1, 1 );
136     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 4, const_str_plain_d ); Py_INCREF( const_str_plain_d ); 110     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 4, const_str_plain_d ); Py_INCREF( const_str_plain_d );
137     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 5, const_str_plain_e ); Py_INCREF( const_str_plain_e ); 111     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 5, const_str_plain_e ); Py_INCREF( const_str_plain_e );
138     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 6, const_str_plain_f ); Py_INCREF( const_str_plain_f ); 112     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 6, const_str_plain_f ); Py_INCREF( const_str_plain_f );
n 139     const_str_plain_x = UNSTREAM_STRING( &constant_bin[ 137 ], 1, 1 ); n 113     const_str_plain_x = UNSTREAM_STRING( &constant_bin[ 108 ], 1, 1 );
140     const_str_plain_C = UNSTREAM_STRING( &constant_bin[ 55 ], 1, 1 ); 114     const_str_plain_C = UNSTREAM_STRING( &constant_bin[ 53 ], 1, 1 );
141     const_tuple_str_plain_inst_tuple = PyTuple_New( 1 ); 115     const_tuple_str_plain_inst_tuple = PyTuple_New( 1 );
142     PyTuple_SET_ITEM( const_tuple_str_plain_inst_tuple, 0, const_str_plain_inst ); Py_INCREF( const_str_plain_inst ); 116     PyTuple_SET_ITEM( const_tuple_str_plain_inst_tuple, 0, const_str_plain_inst ); Py_INCREF( const_str_plain_inst );
n 143     const_str_plain_repeat = UNSTREAM_STRING( &constant_bin[ 262 ], 6, 1 ); n 117     const_str_plain_repeat = UNSTREAM_STRING( &constant_bin[ 227 ], 6, 1 );
144     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 ); 118     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 );
145     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None ); 119     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None );
146     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 ); 120     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 );
n 147     const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple = PyTuple_New( 6 ); n
148     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 0, const_str_plain_some ); Py_INCREF( const_str_plain_some );
149     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 1, const_str_plain_random ); Py_INCREF( const_str_plain_random );
150     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 2, const_str_plain_values ); Py_INCREF( const_str_plain_values );
151     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 3, const_str_plain_to ); Py_INCREF( const_str_plain_to );
152     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 4, const_str_plain_check ); Py_INCREF( const_str_plain_check );
153     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 5, const_str_plain_call ); Py_INCREF( const_str_plain_call );
154     const_tuple_ca2f155a28955fc472d4376e2721d689_tuple = PyTuple_New( 6 );
155     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 0, const_str_plain_some ); Py_INCREF( const_str_plain_some );
156     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 1, const_str_plain_other ); Py_INCREF( const_str_plain_other );
157     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 2, const_str_plain_values ); Py_INCREF( const_str_plain_values );
158     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 3, const_str_plain_to ); Py_INCREF( const_str_plain_to );
159     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 4, const_str_plain_check ); Py_INCREF( const_str_plain_check );
160     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 5, const_str_plain_call ); Py_INCREF( const_str_plain_call );
161     const_str_plain_print_function = UNSTREAM_STRING( &constant_bin[ 268 ], 14, 1 ); 121     const_str_plain_print_function = UNSTREAM_STRING( &constant_bin[ 233 ], 14, 1 );
162 122
163     constants_created = true; 123     constants_created = true;
164 } 124 }
165 125
166 #ifndef __NUITKA_NO_ASSERT__ 126 #ifndef __NUITKA_NO_ASSERT__
309     PyObject *exception_keeper_type_1; 269     PyObject *exception_keeper_type_1;
310     PyObject *exception_keeper_value_1; 270     PyObject *exception_keeper_value_1;
311     PyTracebackObject *exception_keeper_tb_1; 271     PyTracebackObject *exception_keeper_tb_1;
312     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; 272     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
313     PyObject *tmp_assign_source_1; 273     PyObject *tmp_assign_source_1;
n 314     PyObject *tmp_called_instance_1; n
315     PyObject *tmp_called_instance_2;
316     PyObject *tmp_called_instance_3;
317     PyObject *tmp_called_name_1; 274     PyObject *tmp_called_name_1;
318     PyObject *tmp_return_value; 275     PyObject *tmp_return_value;
n 319     NUITKA_MAY_BE_UNUSED PyObject *tmp_unused; n
320     static struct Nuitka_FrameObject *cache_frame_9d906d5e573b9011e6918726adf88e75 = NULL; 276     static struct Nuitka_FrameObject *cache_frame_9d906d5e573b9011e6918726adf88e75 = NULL;
321 277
322     struct Nuitka_FrameObject *frame_9d906d5e573b9011e6918726adf88e75; 278     struct Nuitka_FrameObject *frame_9d906d5e573b9011e6918726adf88e75;
323 279
324     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 280     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
372         goto frame_exception_exit_1; 328         goto frame_exception_exit_1;
373     } 329     }
374     assert( var_inst == NULL ); 330     assert( var_inst == NULL );
375     var_inst = tmp_assign_source_1; 331     var_inst = tmp_assign_source_1;
376 332
n 377     tmp_called_instance_1 = var_inst; n
378  
379     CHECK_OBJECT( tmp_called_instance_1 );
380     frame_9d906d5e573b9011e6918726adf88e75->m_frame.f_lineno = 32;
381     tmp_unused = CALL_METHOD_WITH_ARGS6( tmp_called_instance_1, const_str_plain_compiled_method, &PyTuple_GET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 0 ) );
382  
383     if ( tmp_unused == NULL )
384     {
385         assert( ERROR_OCCURRED() );
386  
387         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
388  
389  
390         exception_lineno = 32;
391         type_description_1 = "o";
392         goto frame_exception_exit_1;
393     }
394     Py_DECREF( tmp_unused );
395     tmp_called_instance_2 = var_inst;
396  
397     if ( tmp_called_instance_2 == NULL )
398     {
399  
400         exception_type = PyExc_UnboundLocalError;
401         Py_INCREF( exception_type );
402         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "inst" );
403         exception_tb = NULL;
404         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
405         CHAIN_EXCEPTION( exception_value );
406  
407         exception_lineno = 33;
408         type_description_1 = "o";
409         goto frame_exception_exit_1;
410     }
411  
412     frame_9d906d5e573b9011e6918726adf88e75->m_frame.f_lineno = 33;
413     tmp_unused = CALL_METHOD_WITH_ARGS6( tmp_called_instance_2, const_str_plain_compiled_method, &PyTuple_GET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 0 ) );
414  
415     if ( tmp_unused == NULL )
416     {
417         assert( ERROR_OCCURRED() );
418  
419         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
420  
421  
422         exception_lineno = 33;
423         type_description_1 = "o";
424         goto frame_exception_exit_1;
425     }
426     Py_DECREF( tmp_unused );
427     tmp_called_instance_3 = var_inst;
428  
429     if ( tmp_called_instance_3 == NULL )
430     {
431  
432         exception_type = PyExc_UnboundLocalError;
433         Py_INCREF( exception_type );
434         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "inst" );
435         exception_tb = NULL;
436         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
437         CHAIN_EXCEPTION( exception_value );
438  
439         exception_lineno = 34;
440         type_description_1 = "o";
441         goto frame_exception_exit_1;
442     }
443  
444     frame_9d906d5e573b9011e6918726adf88e75->m_frame.f_lineno = 34;
445     tmp_unused = CALL_METHOD_WITH_ARGS6( tmp_called_instance_3, const_str_plain_compiled_method, &PyTuple_GET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 0 ) );
446  
447     if ( tmp_unused == NULL )
448     {
449         assert( ERROR_OCCURRED() );
450  
451         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
452  
453  
454         exception_lineno = 34;
455         type_description_1 = "o";
456         goto frame_exception_exit_1;
457     }
458     Py_DECREF( tmp_unused );
459 333
460 #if 0 334 #if 0
461     RESTORE_FRAME_EXCEPTION( frame_9d906d5e573b9011e6918726adf88e75 ); 335     RESTORE_FRAME_EXCEPTION( frame_9d906d5e573b9011e6918726adf88e75 );
462 #endif 336 #endif
463 337
512     // tried codes exits in all cases 386     // tried codes exits in all cases
513     NUITKA_CANNOT_GET_HERE( __main__$$$function_2_calledRepeatedly ); 387     NUITKA_CANNOT_GET_HERE( __main__$$$function_2_calledRepeatedly );
514     return NULL; 388     return NULL;
515     // Return handler code: 389     // Return handler code:
516     try_return_handler_1:; 390     try_return_handler_1:;
n n 391     CHECK_OBJECT( (PyObject *)var_inst );
517     Py_XDECREF( var_inst ); 392     Py_DECREF( var_inst );
518     var_inst = NULL; 393     var_inst = NULL;
519 394
520     goto function_return_exit; 395     goto function_return_exit;
521     // Exception handler code: 396     // Exception handler code:
522     try_except_handler_1:; 397     try_except_handler_1:;
526     exception_keeper_lineno_1 = exception_lineno; 401     exception_keeper_lineno_1 = exception_lineno;
527     exception_type = NULL; 402     exception_type = NULL;
528     exception_value = NULL; 403     exception_value = NULL;
529     exception_tb = NULL; 404     exception_tb = NULL;
530     exception_lineno = 0; 405     exception_lineno = 0;
t 531   t
532     Py_XDECREF( var_inst );
533     var_inst = NULL;
534 406
535     // Re-raise. 407     // Re-raise.
536     exception_type = exception_keeper_type_1; 408     exception_type = exception_keeper_type_1;
537     exception_value = exception_keeper_value_1; 409     exception_value = exception_keeper_value_1;
538     exception_tb = exception_keeper_tb_1; 410     exception_tb = exception_keeper_tb_1;