Construct CallCompiledObjectMethodPosArgsConstant6

Performance Diagrams

Construct CallCompiledObjectMethodPosArgsConstant6 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000240000000240000000260000000260000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)27696909588.11538461538461257.0CPython 2.788156093240.03846153846155425.4613859521597Nuitka (master)88156033391.96153846153845425.46143948493045Nuitka (develop)88156150543.8846153846154425.4613350960274Nuitka (factory)Construct CallCompiledObjectMethodPosArgsConstant6Ticks Construct CallCompiledObjectMethodPosArgsConstant6 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000240000000240000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)25642420088.11538461538461257.0CPython 3.588111511240.03846153846155419.202533449981Nuitka (master)88117705391.96153846153845419.196564307083Nuitka (develop)88116241543.8846153846154419.1979751603608Nuitka (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__;
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 extern PyObject *const_str_plain___class__; 42 extern PyObject *const_str_plain___class__;
44 static PyObject *const_str_digest_757227af6dac5c01686d3bbc7671f8bf; 43 static PyObject *const_str_digest_757227af6dac5c01686d3bbc7671f8bf;
45 static PyObject *const_str_digest_09f78888d9b49e6f933446d486696d54; 44 static PyObject *const_str_digest_09f78888d9b49e6f933446d486696d54;
n 46 static PyObject *const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple; n
47 static PyObject *const_tuple_str_plain___class___tuple; 45 static PyObject *const_tuple_str_plain___class___tuple;
48 static PyObject *const_str_plain___qualname__; 46 static PyObject *const_str_plain___qualname__;
49 static PyObject *const_str_plain_f; 47 static PyObject *const_str_plain_f;
n 50 static PyObject *const_str_plain_values; n
51 extern PyObject *const_dict_empty; 48 extern PyObject *const_dict_empty;
52 extern PyObject *const_str_plain___file__; 49 extern PyObject *const_str_plain___file__;
n 53 static PyObject *const_str_plain_other; n
54 extern PyObject *const_int_0; 50 extern PyObject *const_int_0;
n 55 static PyObject *const_str_plain_check; n
56 static PyObject *const_tuple_str_plain_C_tuple_type_object_tuple_tuple; 51 static PyObject *const_tuple_str_plain_C_tuple_type_object_tuple_tuple;
57 extern PyObject *const_str_plain_print; 52 extern PyObject *const_str_plain_print;
58 static PyObject *const_str_plain___prepare__; 53 static PyObject *const_str_plain___prepare__;
n 59 static PyObject *const_str_plain_call; n
60 static PyObject *const_str_plain_a; 54 static PyObject *const_str_plain_a;
61 static PyObject *const_int_pos_50000; 55 static PyObject *const_int_pos_50000;
62 static PyObject *const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple; 56 static PyObject *const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple;
n 63 static PyObject *const_str_plain_random; n
64 static PyObject *const_str_plain_self; 57 static PyObject *const_str_plain_self;
65 static PyObject *const_str_plain_inst; 58 static PyObject *const_str_plain_inst;
66 static PyObject *const_str_plain_e; 59 static PyObject *const_str_plain_e;
67 static PyObject *const_str_plain_calledRepeatedly; 60 static PyObject *const_str_plain_calledRepeatedly;
68 static PyObject *const_str_angle_module; 61 static PyObject *const_str_angle_module;
72 extern PyObject *const_tuple_empty; 65 extern PyObject *const_tuple_empty;
73 static PyObject *const_str_digest_5ed1392909ad16e6227b8230f4582352; 66 static PyObject *const_str_digest_5ed1392909ad16e6227b8230f4582352;
74 static PyObject *const_str_plain_c; 67 static PyObject *const_str_plain_c;
75 static PyObject *const_tuple_str_plain_inst_tuple; 68 static PyObject *const_tuple_str_plain_inst_tuple;
76 static PyObject *const_str_plain_repeat; 69 static PyObject *const_str_plain_repeat;
n 77 static PyObject *const_str_plain_some; n
78 static PyObject *const_str_plain_new;
79 static PyObject *const_tuple_none_int_pos_50000_tuple; 70 static PyObject *const_tuple_none_int_pos_50000_tuple;
80 extern PyObject *const_str_plain___loader__; 71 extern PyObject *const_str_plain___loader__;
81 extern PyObject *const_str_plain___main__; 72 extern PyObject *const_str_plain___main__;
n 82 static PyObject *const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple; n
83 static PyObject *const_tuple_ca2f155a28955fc472d4376e2721d689_tuple;
84 static PyObject *const_str_plain_d; 73 static PyObject *const_str_plain_d;
85 extern PyObject *const_str_plain___doc__; 74 extern PyObject *const_str_plain___doc__;
86 extern PyObject *const_str_plain___cached__; 75 extern PyObject *const_str_plain___cached__;
87 static PyObject *const_str_plain_print_function; 76 static PyObject *const_str_plain_print_function;
88 static PyObject *module_filename_obj; 77 static PyObject *module_filename_obj;
89 78
90 static bool constants_created = false; 79 static bool constants_created = false;
91 80
92 static void createModuleConstants( void ) 81 static void createModuleConstants( void )
93 { 82 {
n 94     const_str_plain_to = UNSTREAM_STRING( &constant_bin[ 0 ], 2, 1 ); n
95     const_str_plain_b = UNSTREAM_STRING( &constant_bin[ 2 ], 1, 1 ); 83     const_str_plain_b = UNSTREAM_STRING( &constant_bin[ 0 ], 1, 1 );
96     const_str_plain_itertools = UNSTREAM_STRING( &constant_bin[ 3 ], 9, 1 ); 84     const_str_plain_itertools = UNSTREAM_STRING( &constant_bin[ 1 ], 9, 1 );
97     const_tuple_type_object_tuple = PyTuple_New( 1 ); 85     const_tuple_type_object_tuple = PyTuple_New( 1 );
98     PyTuple_SET_ITEM( const_tuple_type_object_tuple, 0, (PyObject *)&PyBaseObject_Type ); Py_INCREF( (PyObject *)&PyBaseObject_Type ); 86     PyTuple_SET_ITEM( const_tuple_type_object_tuple, 0, (PyObject *)&PyBaseObject_Type ); Py_INCREF( (PyObject *)&PyBaseObject_Type );
n 99     const_str_plain_metaclass = UNSTREAM_STRING( &constant_bin[ 12 ], 9, 1 ); n 87     const_str_plain_metaclass = UNSTREAM_STRING( &constant_bin[ 10 ], 9, 1 );
100     const_str_plain___package__ = UNSTREAM_STRING( &constant_bin[ 21 ], 11, 1 ); 88     const_str_plain___package__ = UNSTREAM_STRING( &constant_bin[ 19 ], 11, 1 );
101     const_str_plain___spec__ = UNSTREAM_STRING( &constant_bin[ 32 ], 8, 1 ); 89     const_str_plain___spec__ = UNSTREAM_STRING( &constant_bin[ 30 ], 8, 1 );
102     const_str_plain_compiled_method = UNSTREAM_STRING( &constant_bin[ 40 ], 15, 1 ); 90     const_str_plain_compiled_method = UNSTREAM_STRING( &constant_bin[ 38 ], 15, 1 );
103     const_str_digest_757227af6dac5c01686d3bbc7671f8bf = UNSTREAM_STRING( &constant_bin[ 55 ], 17, 0 ); 91     const_str_digest_757227af6dac5c01686d3bbc7671f8bf = UNSTREAM_STRING( &constant_bin[ 53 ], 17, 0 );
104     const_str_digest_09f78888d9b49e6f933446d486696d54 = UNSTREAM_STRING( &constant_bin[ 72 ], 98, 0 ); 92     const_str_digest_09f78888d9b49e6f933446d486696d54 = UNSTREAM_STRING( &constant_bin[ 70 ], 98, 0 );
105     const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple = PyTuple_New( 6 );
106     const_str_plain_some = UNSTREAM_STRING( &constant_bin[ 170 ], 4, 1 );
107     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 0, const_str_plain_some ); Py_INCREF( const_str_plain_some );
108     const_str_plain_new = UNSTREAM_STRING( &constant_bin[ 174 ], 3, 1 );
109     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 1, const_str_plain_new ); Py_INCREF( const_str_plain_new );
110     const_str_plain_values = UNSTREAM_STRING( &constant_bin[ 177 ], 6, 1 );
111     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 2, const_str_plain_values ); Py_INCREF( const_str_plain_values );
112     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 3, const_str_plain_to ); Py_INCREF( const_str_plain_to );
113     const_str_plain_check = UNSTREAM_STRING( &constant_bin[ 183 ], 5, 1 );
114     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 4, const_str_plain_check ); Py_INCREF( const_str_plain_check );
115     const_str_plain_call = UNSTREAM_STRING( &constant_bin[ 188 ], 4, 1 );
116     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 5, const_str_plain_call ); Py_INCREF( const_str_plain_call );
117     const_tuple_str_plain___class___tuple = PyTuple_New( 1 ); 93     const_tuple_str_plain___class___tuple = PyTuple_New( 1 );
118     PyTuple_SET_ITEM( const_tuple_str_plain___class___tuple, 0, const_str_plain___class__ ); Py_INCREF( const_str_plain___class__ ); 94     PyTuple_SET_ITEM( const_tuple_str_plain___class___tuple, 0, const_str_plain___class__ ); Py_INCREF( const_str_plain___class__ );
n 119     const_str_plain___qualname__ = UNSTREAM_STRING( &constant_bin[ 192 ], 12, 1 ); n 95     const_str_plain___qualname__ = UNSTREAM_STRING( &constant_bin[ 168 ], 12, 1 );
120     const_str_plain_f = UNSTREAM_STRING( &constant_bin[ 204 ], 1, 1 ); 96     const_str_plain_f = UNSTREAM_STRING( &constant_bin[ 180 ], 1, 1 );
121     const_str_plain_other = UNSTREAM_STRING( &constant_bin[ 205 ], 5, 1 );
122     const_tuple_str_plain_C_tuple_type_object_tuple_tuple = PyTuple_New( 2 ); 97     const_tuple_str_plain_C_tuple_type_object_tuple_tuple = PyTuple_New( 2 );
n 123     const_str_plain_C = UNSTREAM_STRING( &constant_bin[ 55 ], 1, 1 ); n 98     const_str_plain_C = UNSTREAM_STRING( &constant_bin[ 53 ], 1, 1 );
124     PyTuple_SET_ITEM( const_tuple_str_plain_C_tuple_type_object_tuple_tuple, 0, const_str_plain_C ); Py_INCREF( const_str_plain_C ); 99     PyTuple_SET_ITEM( const_tuple_str_plain_C_tuple_type_object_tuple_tuple, 0, const_str_plain_C ); Py_INCREF( const_str_plain_C );
125     PyTuple_SET_ITEM( const_tuple_str_plain_C_tuple_type_object_tuple_tuple, 1, const_tuple_type_object_tuple ); Py_INCREF( const_tuple_type_object_tuple ); 100     PyTuple_SET_ITEM( const_tuple_str_plain_C_tuple_type_object_tuple_tuple, 1, const_tuple_type_object_tuple ); Py_INCREF( const_tuple_type_object_tuple );
n 126     const_str_plain___prepare__ = UNSTREAM_STRING( &constant_bin[ 210 ], 11, 1 ); n 101     const_str_plain___prepare__ = UNSTREAM_STRING( &constant_bin[ 181 ], 11, 1 );
127     const_str_plain_a = UNSTREAM_STRING( &constant_bin[ 15 ], 1, 1 ); 102     const_str_plain_a = UNSTREAM_STRING( &constant_bin[ 13 ], 1, 1 );
128     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul ); 103     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul );
129     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 ); 104     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 );
n 130     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING( &constant_bin[ 221 ], 3, 0 ); n 105     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING( &constant_bin[ 192 ], 3, 0 );
131     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 ); 106     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 );
n 132     const_str_plain_random = UNSTREAM_STRING( &constant_bin[ 224 ], 6, 1 ); n
133     const_str_plain_self = UNSTREAM_STRING( &constant_bin[ 230 ], 4, 1 ); 107     const_str_plain_self = UNSTREAM_STRING( &constant_bin[ 195 ], 4, 1 );
134     const_str_plain_inst = UNSTREAM_STRING( &constant_bin[ 234 ], 4, 1 ); 108     const_str_plain_inst = UNSTREAM_STRING( &constant_bin[ 199 ], 4, 1 );
135     const_str_plain_e = UNSTREAM_STRING( &constant_bin[ 5 ], 1, 1 ); 109     const_str_plain_e = UNSTREAM_STRING( &constant_bin[ 3 ], 1, 1 );
136     const_str_plain_calledRepeatedly = UNSTREAM_STRING( &constant_bin[ 238 ], 16, 1 ); 110     const_str_plain_calledRepeatedly = UNSTREAM_STRING( &constant_bin[ 203 ], 16, 1 );
137     const_str_angle_module = UNSTREAM_STRING( &constant_bin[ 254 ], 8, 0 ); 111     const_str_angle_module = UNSTREAM_STRING( &constant_bin[ 219 ], 8, 0 );
138     const_tuple_ba58284e993f645f647ff630deb3d552_tuple = PyTuple_New( 7 ); 112     const_tuple_ba58284e993f645f647ff630deb3d552_tuple = PyTuple_New( 7 );
139     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 0, const_str_plain_self ); Py_INCREF( const_str_plain_self ); 113     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 0, const_str_plain_self ); Py_INCREF( const_str_plain_self );
140     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 1, const_str_plain_a ); Py_INCREF( const_str_plain_a ); 114     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 1, const_str_plain_a ); Py_INCREF( const_str_plain_a );
141     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 2, const_str_plain_b ); Py_INCREF( const_str_plain_b ); 115     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 2, const_str_plain_b ); Py_INCREF( const_str_plain_b );
n 142     const_str_plain_c = UNSTREAM_STRING( &constant_bin[ 16 ], 1, 1 ); n 116     const_str_plain_c = UNSTREAM_STRING( &constant_bin[ 14 ], 1, 1 );
143     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 3, const_str_plain_c ); Py_INCREF( const_str_plain_c ); 117     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 3, const_str_plain_c ); Py_INCREF( const_str_plain_c );
n 144     const_str_plain_d = UNSTREAM_STRING( &constant_bin[ 47 ], 1, 1 ); n 118     const_str_plain_d = UNSTREAM_STRING( &constant_bin[ 45 ], 1, 1 );
145     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 4, const_str_plain_d ); Py_INCREF( const_str_plain_d ); 119     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 4, const_str_plain_d ); Py_INCREF( const_str_plain_d );
146     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 5, const_str_plain_e ); Py_INCREF( const_str_plain_e ); 120     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 5, const_str_plain_e ); Py_INCREF( const_str_plain_e );
147     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 6, const_str_plain_f ); Py_INCREF( const_str_plain_f ); 121     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 6, const_str_plain_f ); Py_INCREF( const_str_plain_f );
n 148     const_str_plain_x = UNSTREAM_STRING( &constant_bin[ 97 ], 1, 1 ); n 122     const_str_plain_x = UNSTREAM_STRING( &constant_bin[ 95 ], 1, 1 );
149     const_tuple_str_plain_inst_tuple = PyTuple_New( 1 ); 123     const_tuple_str_plain_inst_tuple = PyTuple_New( 1 );
150     PyTuple_SET_ITEM( const_tuple_str_plain_inst_tuple, 0, const_str_plain_inst ); Py_INCREF( const_str_plain_inst ); 124     PyTuple_SET_ITEM( const_tuple_str_plain_inst_tuple, 0, const_str_plain_inst ); Py_INCREF( const_str_plain_inst );
n 151     const_str_plain_repeat = UNSTREAM_STRING( &constant_bin[ 262 ], 6, 1 ); n 125     const_str_plain_repeat = UNSTREAM_STRING( &constant_bin[ 227 ], 6, 1 );
152     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 ); 126     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 );
153     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None ); 127     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None );
154     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 ); 128     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 );
n 155     const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple = PyTuple_New( 6 ); n
156     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 0, const_str_plain_some ); Py_INCREF( const_str_plain_some );
157     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 1, const_str_plain_random ); Py_INCREF( const_str_plain_random );
158     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 2, const_str_plain_values ); Py_INCREF( const_str_plain_values );
159     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 3, const_str_plain_to ); Py_INCREF( const_str_plain_to );
160     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 4, const_str_plain_check ); Py_INCREF( const_str_plain_check );
161     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 5, const_str_plain_call ); Py_INCREF( const_str_plain_call );
162     const_tuple_ca2f155a28955fc472d4376e2721d689_tuple = PyTuple_New( 6 );
163     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 0, const_str_plain_some ); Py_INCREF( const_str_plain_some );
164     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 1, const_str_plain_other ); Py_INCREF( const_str_plain_other );
165     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 2, const_str_plain_values ); Py_INCREF( const_str_plain_values );
166     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 3, const_str_plain_to ); Py_INCREF( const_str_plain_to );
167     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 4, const_str_plain_check ); Py_INCREF( const_str_plain_check );
168     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 5, const_str_plain_call ); Py_INCREF( const_str_plain_call );
169     const_str_plain_print_function = UNSTREAM_STRING( &constant_bin[ 268 ], 14, 1 ); 129     const_str_plain_print_function = UNSTREAM_STRING( &constant_bin[ 233 ], 14, 1 );
170 130
171     constants_created = true; 131     constants_created = true;
172 } 132 }
173 133
174 #ifndef __NUITKA_NO_ASSERT__ 134 #ifndef __NUITKA_NO_ASSERT__
319     PyObject *exception_keeper_type_1; 279     PyObject *exception_keeper_type_1;
320     PyObject *exception_keeper_value_1; 280     PyObject *exception_keeper_value_1;
321     PyTracebackObject *exception_keeper_tb_1; 281     PyTracebackObject *exception_keeper_tb_1;
322     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1; 282     NUITKA_MAY_BE_UNUSED int exception_keeper_lineno_1;
323     PyObject *tmp_assign_source_1; 283     PyObject *tmp_assign_source_1;
n 324     PyObject *tmp_called_instance_1; n
325     PyObject *tmp_called_instance_2;
326     PyObject *tmp_called_instance_3;
327     PyObject *tmp_called_name_1; 284     PyObject *tmp_called_name_1;
328     PyObject *tmp_return_value; 285     PyObject *tmp_return_value;
n 329     NUITKA_MAY_BE_UNUSED PyObject *tmp_unused; n
330     static struct Nuitka_FrameObject *cache_frame_999c0cd97512ce1c3428efc2deb340b9 = NULL; 286     static struct Nuitka_FrameObject *cache_frame_999c0cd97512ce1c3428efc2deb340b9 = NULL;
331 287
332     struct Nuitka_FrameObject *frame_999c0cd97512ce1c3428efc2deb340b9; 288     struct Nuitka_FrameObject *frame_999c0cd97512ce1c3428efc2deb340b9;
333 289
334     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 290     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
382         goto frame_exception_exit_1; 338         goto frame_exception_exit_1;
383     } 339     }
384     assert( var_inst == NULL ); 340     assert( var_inst == NULL );
385     var_inst = tmp_assign_source_1; 341     var_inst = tmp_assign_source_1;
386 342
n 387     tmp_called_instance_1 = var_inst; n
388  
389     CHECK_OBJECT( tmp_called_instance_1 );
390     frame_999c0cd97512ce1c3428efc2deb340b9->m_frame.f_lineno = 32;
391     tmp_unused = CALL_METHOD_WITH_ARGS6( tmp_called_instance_1, const_str_plain_compiled_method, &PyTuple_GET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 0 ) );
392  
393     if ( tmp_unused == NULL )
394     {
395         assert( ERROR_OCCURRED() );
396  
397         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
398  
399  
400         exception_lineno = 32;
401         type_description_1 = "o";
402         goto frame_exception_exit_1;
403     }
404     Py_DECREF( tmp_unused );
405     tmp_called_instance_2 = var_inst;
406  
407     if ( tmp_called_instance_2 == NULL )
408     {
409  
410         exception_type = PyExc_UnboundLocalError;
411         Py_INCREF( exception_type );
412         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "inst" );
413         exception_tb = NULL;
414         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
415         CHAIN_EXCEPTION( exception_value );
416  
417         exception_lineno = 33;
418         type_description_1 = "o";
419         goto frame_exception_exit_1;
420     }
421  
422     frame_999c0cd97512ce1c3428efc2deb340b9->m_frame.f_lineno = 33;
423     tmp_unused = CALL_METHOD_WITH_ARGS6( tmp_called_instance_2, const_str_plain_compiled_method, &PyTuple_GET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 0 ) );
424  
425     if ( tmp_unused == NULL )
426     {
427         assert( ERROR_OCCURRED() );
428  
429         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
430  
431  
432         exception_lineno = 33;
433         type_description_1 = "o";
434         goto frame_exception_exit_1;
435     }
436     Py_DECREF( tmp_unused );
437     tmp_called_instance_3 = var_inst;
438  
439     if ( tmp_called_instance_3 == NULL )
440     {
441  
442         exception_type = PyExc_UnboundLocalError;
443         Py_INCREF( exception_type );
444         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "inst" );
445         exception_tb = NULL;
446         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
447         CHAIN_EXCEPTION( exception_value );
448  
449         exception_lineno = 34;
450         type_description_1 = "o";
451         goto frame_exception_exit_1;
452     }
453  
454     frame_999c0cd97512ce1c3428efc2deb340b9->m_frame.f_lineno = 34;
455     tmp_unused = CALL_METHOD_WITH_ARGS6( tmp_called_instance_3, const_str_plain_compiled_method, &PyTuple_GET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 0 ) );
456  
457     if ( tmp_unused == NULL )
458     {
459         assert( ERROR_OCCURRED() );
460  
461         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
462  
463  
464         exception_lineno = 34;
465         type_description_1 = "o";
466         goto frame_exception_exit_1;
467     }
468     Py_DECREF( tmp_unused );
469 343
470 #if 0 344 #if 0
471     RESTORE_FRAME_EXCEPTION( frame_999c0cd97512ce1c3428efc2deb340b9 ); 345     RESTORE_FRAME_EXCEPTION( frame_999c0cd97512ce1c3428efc2deb340b9 );
472 #endif 346 #endif
473 347
522     // tried codes exits in all cases 396     // tried codes exits in all cases
523     NUITKA_CANNOT_GET_HERE( __main__$$$function_2_calledRepeatedly ); 397     NUITKA_CANNOT_GET_HERE( __main__$$$function_2_calledRepeatedly );
524     return NULL; 398     return NULL;
525     // Return handler code: 399     // Return handler code:
526     try_return_handler_1:; 400     try_return_handler_1:;
n n 401     CHECK_OBJECT( (PyObject *)var_inst );
527     Py_XDECREF( var_inst ); 402     Py_DECREF( var_inst );
528     var_inst = NULL; 403     var_inst = NULL;
529 404
530     goto function_return_exit; 405     goto function_return_exit;
531     // Exception handler code: 406     // Exception handler code:
532     try_except_handler_1:; 407     try_except_handler_1:;
536     exception_keeper_lineno_1 = exception_lineno; 411     exception_keeper_lineno_1 = exception_lineno;
537     exception_type = NULL; 412     exception_type = NULL;
538     exception_value = NULL; 413     exception_value = NULL;
539     exception_tb = NULL; 414     exception_tb = NULL;
540     exception_lineno = 0; 415     exception_lineno = 0;
t 541   t
542     Py_XDECREF( var_inst );
543     var_inst = NULL;
544 416
545     // Re-raise. 417     // Re-raise.
546     exception_type = exception_keeper_type_1; 418     exception_type = exception_keeper_type_1;
547     exception_value = exception_keeper_value_1; 419     exception_value = exception_keeper_value_1;
548     exception_tb = exception_keeper_tb_1; 420     exception_tb = exception_keeper_tb_1;