Construct CallCompiledObjectMethodPosArgsConstant6

Performance Diagrams

Construct CallCompiledObjectMethodPosArgsConstant6 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000240000000240000000260000000260000000CPython 2.7Nuitka (master)Nuitka (develop)Nuitka (factory)27696912588.11538461538461257.0CPython 2.788156081240.03846153846155425.4614051781459Nuitka (master)88156023391.96153846153845425.4614569264854Nuitka (develop)88156087543.8846153846154425.46139982486943Nuitka (factory)Construct CallCompiledObjectMethodPosArgsConstant6Ticks Construct CallCompiledObjectMethodPosArgsConstant6 002000000020000000400000004000000060000000600000008000000080000000100000000100000000120000000120000000140000000140000000160000000160000000180000000180000000200000000200000000220000000220000000240000000240000000CPython 3.5Nuitka (master)Nuitka (develop)Nuitka (factory)25642441088.11538461538461257.0CPython 3.588105491240.03846153846155419.2084044445331Nuitka (master)88115143391.96153846153845419.19910284297214Nuitka (develop)88117549543.8846153846154419.19678418845956Nuitka (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 extern PyObject *const_str_plain___module__; 38 extern PyObject *const_str_plain___module__;
40 static PyObject *const_str_plain_compiled_method; 39 static PyObject *const_str_plain_compiled_method;
41 extern PyObject *const_str_plain___class__; 40 extern PyObject *const_str_plain___class__;
42 static PyObject *const_str_digest_757227af6dac5c01686d3bbc7671f8bf; 41 static PyObject *const_str_digest_757227af6dac5c01686d3bbc7671f8bf;
n 43 static PyObject *const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple; n
44 static PyObject *const_tuple_str_plain___class___tuple; 42 static PyObject *const_tuple_str_plain___class___tuple;
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 static PyObject *const_str_plain_object; 45 static PyObject *const_str_plain_object;
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_tuple_str_plain_C_tuple_type_object_tuple_tuple; 48 static PyObject *const_tuple_str_plain_C_tuple_type_object_tuple_tuple;
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;
66 static PyObject *const_str_plain_None; 59 static PyObject *const_str_plain_None;
67 static PyObject *const_tuple_ba58284e993f645f647ff630deb3d552_tuple; 60 static PyObject *const_tuple_ba58284e993f645f647ff630deb3d552_tuple;
68 static PyObject *const_str_plain_x; 61 static PyObject *const_str_plain_x;
n n 62 static PyObject *const_str_digest_b17dcfd58b63808c64c2f5c9f5955434;
69 static PyObject *const_str_plain_C; 63 static PyObject *const_str_plain_C;
n 70 static PyObject *const_str_digest_b17dcfd58b63808c64c2f5c9f5955434; n
71 extern PyObject *const_tuple_empty; 64 extern PyObject *const_tuple_empty;
n n 65 static PyObject *const_str_plain_c;
72 static PyObject *const_str_digest_5ed1392909ad16e6227b8230f4582352; 66 static PyObject *const_str_digest_5ed1392909ad16e6227b8230f4582352;
n 73 static PyObject *const_str_plain_c; n
74 static PyObject *const_tuple_str_plain_inst_tuple; 67 static PyObject *const_tuple_str_plain_inst_tuple;
75 static PyObject *const_str_plain_repeat; 68 static PyObject *const_str_plain_repeat;
n 76 static PyObject *const_str_plain_some; n
77 static PyObject *const_str_plain_new;
78 static PyObject *const_tuple_none_int_pos_50000_tuple; 69 static PyObject *const_tuple_none_int_pos_50000_tuple;
79 extern PyObject *const_str_plain___main__; 70 extern PyObject *const_str_plain___main__;
n 80 static PyObject *const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple; n
81 extern PyObject *const_str_plain_type; 71 extern PyObject *const_str_plain_type;
n 82 static PyObject *const_tuple_ca2f155a28955fc472d4376e2721d689_tuple; n
83 static PyObject *const_str_plain_d; 72 static PyObject *const_str_plain_d;
84 extern PyObject *const_str_plain___doc__; 73 extern PyObject *const_str_plain___doc__;
85 extern PyObject *const_str_plain___cached__; 74 extern PyObject *const_str_plain___cached__;
86 static PyObject *const_str_plain_print_function; 75 static PyObject *const_str_plain_print_function;
87 static PyObject *module_filename_obj; 76 static PyObject *module_filename_obj;
88 77
89 static bool constants_created = false; 78 static bool constants_created = false;
90 79
91 static void createModuleConstants( void ) 80 static void createModuleConstants( void )
92 { 81 {
n 93     const_str_plain_to = UNSTREAM_STRING( &constant_bin[ 0 ], 2, 1 ); n
94     const_str_plain_b = UNSTREAM_STRING( &constant_bin[ 2 ], 1, 1 ); 82     const_str_plain_b = UNSTREAM_STRING( &constant_bin[ 0 ], 1, 1 );
95     const_str_plain_itertools = UNSTREAM_STRING( &constant_bin[ 3 ], 9, 1 ); 83     const_str_plain_itertools = UNSTREAM_STRING( &constant_bin[ 1 ], 9, 1 );
96     const_tuple_type_object_tuple = PyTuple_New( 1 ); 84     const_tuple_type_object_tuple = PyTuple_New( 1 );
97     PyTuple_SET_ITEM( const_tuple_type_object_tuple, 0, (PyObject *)&PyBaseObject_Type ); Py_INCREF( (PyObject *)&PyBaseObject_Type ); 85     PyTuple_SET_ITEM( const_tuple_type_object_tuple, 0, (PyObject *)&PyBaseObject_Type ); Py_INCREF( (PyObject *)&PyBaseObject_Type );
n 98     const_str_plain_metaclass = UNSTREAM_STRING( &constant_bin[ 12 ], 9, 1 ); n 86     const_str_plain_metaclass = UNSTREAM_STRING( &constant_bin[ 10 ], 9, 1 );
99     const_str_plain_compiled_method = UNSTREAM_STRING( &constant_bin[ 21 ], 15, 1 ); 87     const_str_plain_compiled_method = UNSTREAM_STRING( &constant_bin[ 19 ], 15, 1 );
100     const_str_digest_757227af6dac5c01686d3bbc7671f8bf = UNSTREAM_STRING( &constant_bin[ 36 ], 17, 0 ); 88     const_str_digest_757227af6dac5c01686d3bbc7671f8bf = UNSTREAM_STRING( &constant_bin[ 34 ], 17, 0 );
101     const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple = PyTuple_New( 6 );
102     const_str_plain_some = UNSTREAM_STRING( &constant_bin[ 53 ], 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[ 57 ], 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[ 60 ], 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[ 66 ], 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[ 71 ], 4, 1 );
112     PyTuple_SET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 5, const_str_plain_call ); Py_INCREF( const_str_plain_call );
113     const_tuple_str_plain___class___tuple = PyTuple_New( 1 ); 89     const_tuple_str_plain___class___tuple = PyTuple_New( 1 );
114     PyTuple_SET_ITEM( const_tuple_str_plain___class___tuple, 0, const_str_plain___class__ ); Py_INCREF( const_str_plain___class__ ); 90     PyTuple_SET_ITEM( const_tuple_str_plain___class___tuple, 0, const_str_plain___class__ ); Py_INCREF( const_str_plain___class__ );
n 115     const_str_plain___qualname__ = UNSTREAM_STRING( &constant_bin[ 75 ], 12, 1 ); n 91     const_str_plain___qualname__ = UNSTREAM_STRING( &constant_bin[ 51 ], 12, 1 );
116     const_str_plain_f = UNSTREAM_STRING( &constant_bin[ 87 ], 1, 1 ); 92     const_str_plain_f = UNSTREAM_STRING( &constant_bin[ 63 ], 1, 1 );
117     const_str_plain_object = UNSTREAM_STRING( &constant_bin[ 88 ], 6, 1 ); 93     const_str_plain_object = UNSTREAM_STRING( &constant_bin[ 64 ], 6, 1 );
118     const_str_plain_other = UNSTREAM_STRING( &constant_bin[ 94 ], 5, 1 );
119     const_tuple_str_plain_C_tuple_type_object_tuple_tuple = PyTuple_New( 2 ); 94     const_tuple_str_plain_C_tuple_type_object_tuple_tuple = PyTuple_New( 2 );
n 120     const_str_plain_C = UNSTREAM_STRING( &constant_bin[ 36 ], 1, 1 ); n 95     const_str_plain_C = UNSTREAM_STRING( &constant_bin[ 34 ], 1, 1 );
121     PyTuple_SET_ITEM( const_tuple_str_plain_C_tuple_type_object_tuple_tuple, 0, const_str_plain_C ); Py_INCREF( const_str_plain_C ); 96     PyTuple_SET_ITEM( const_tuple_str_plain_C_tuple_type_object_tuple_tuple, 0, const_str_plain_C ); Py_INCREF( const_str_plain_C );
122     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 ); 97     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 123     const_str_plain___prepare__ = UNSTREAM_STRING( &constant_bin[ 99 ], 11, 1 ); n 98     const_str_plain___prepare__ = UNSTREAM_STRING( &constant_bin[ 70 ], 11, 1 );
124     const_str_plain_a = UNSTREAM_STRING( &constant_bin[ 15 ], 1, 1 ); 99     const_str_plain_a = UNSTREAM_STRING( &constant_bin[ 13 ], 1, 1 );
125     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul ); 100     const_int_pos_50000 = PyLong_FromUnsignedLong( 50000ul );
126     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 ); 101     const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple = PyTuple_New( 1 );
n 127     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING( &constant_bin[ 110 ], 3, 0 ); n 102     const_str_digest_5ed1392909ad16e6227b8230f4582352 = UNSTREAM_STRING( &constant_bin[ 81 ], 3, 0 );
128     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 ); 103     PyTuple_SET_ITEM( const_tuple_str_digest_5ed1392909ad16e6227b8230f4582352_tuple, 0, const_str_digest_5ed1392909ad16e6227b8230f4582352 ); Py_INCREF( const_str_digest_5ed1392909ad16e6227b8230f4582352 );
n 129     const_str_plain_random = UNSTREAM_STRING( &constant_bin[ 113 ], 6, 1 ); n
130     const_str_plain_self = UNSTREAM_STRING( &constant_bin[ 119 ], 4, 1 ); 104     const_str_plain_self = UNSTREAM_STRING( &constant_bin[ 84 ], 4, 1 );
131     const_str_plain_inst = UNSTREAM_STRING( &constant_bin[ 123 ], 4, 1 ); 105     const_str_plain_inst = UNSTREAM_STRING( &constant_bin[ 88 ], 4, 1 );
132     const_str_plain_e = UNSTREAM_STRING( &constant_bin[ 5 ], 1, 1 ); 106     const_str_plain_e = UNSTREAM_STRING( &constant_bin[ 3 ], 1, 1 );
133     const_str_plain_calledRepeatedly = UNSTREAM_STRING( &constant_bin[ 127 ], 16, 1 ); 107     const_str_plain_calledRepeatedly = UNSTREAM_STRING( &constant_bin[ 92 ], 16, 1 );
134     const_str_angle_module = UNSTREAM_STRING( &constant_bin[ 143 ], 8, 0 ); 108     const_str_angle_module = UNSTREAM_STRING( &constant_bin[ 108 ], 8, 0 );
135     const_str_plain_None = UNSTREAM_STRING( &constant_bin[ 151 ], 4, 1 ); 109     const_str_plain_None = UNSTREAM_STRING( &constant_bin[ 116 ], 4, 1 );
136     const_tuple_ba58284e993f645f647ff630deb3d552_tuple = PyTuple_New( 7 ); 110     const_tuple_ba58284e993f645f647ff630deb3d552_tuple = PyTuple_New( 7 );
137     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 0, const_str_plain_self ); Py_INCREF( const_str_plain_self ); 111     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 0, const_str_plain_self ); Py_INCREF( const_str_plain_self );
138     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 1, const_str_plain_a ); Py_INCREF( const_str_plain_a ); 112     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 1, const_str_plain_a ); Py_INCREF( const_str_plain_a );
139     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 2, const_str_plain_b ); Py_INCREF( const_str_plain_b ); 113     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 2, const_str_plain_b ); Py_INCREF( const_str_plain_b );
n 140     const_str_plain_c = UNSTREAM_STRING( &constant_bin[ 16 ], 1, 1 ); n 114     const_str_plain_c = UNSTREAM_STRING( &constant_bin[ 14 ], 1, 1 );
141     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 3, const_str_plain_c ); Py_INCREF( const_str_plain_c ); 115     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 3, const_str_plain_c ); Py_INCREF( const_str_plain_c );
n 142     const_str_plain_d = UNSTREAM_STRING( &constant_bin[ 28 ], 1, 1 ); n 116     const_str_plain_d = UNSTREAM_STRING( &constant_bin[ 26 ], 1, 1 );
143     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 4, const_str_plain_d ); Py_INCREF( const_str_plain_d ); 117     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 4, const_str_plain_d ); Py_INCREF( const_str_plain_d );
144     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 5, const_str_plain_e ); Py_INCREF( const_str_plain_e ); 118     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 5, const_str_plain_e ); Py_INCREF( const_str_plain_e );
145     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 6, const_str_plain_f ); Py_INCREF( const_str_plain_f ); 119     PyTuple_SET_ITEM( const_tuple_ba58284e993f645f647ff630deb3d552_tuple, 6, const_str_plain_f ); Py_INCREF( const_str_plain_f );
n 146     const_str_plain_x = UNSTREAM_STRING( &constant_bin[ 155 ], 1, 1 ); n 120     const_str_plain_x = UNSTREAM_STRING( &constant_bin[ 120 ], 1, 1 );
147     const_str_digest_b17dcfd58b63808c64c2f5c9f5955434 = UNSTREAM_STRING( &constant_bin[ 156 ], 98, 0 ); 121     const_str_digest_b17dcfd58b63808c64c2f5c9f5955434 = UNSTREAM_STRING( &constant_bin[ 121 ], 98, 0 );
148     const_tuple_str_plain_inst_tuple = PyTuple_New( 1 ); 122     const_tuple_str_plain_inst_tuple = PyTuple_New( 1 );
149     PyTuple_SET_ITEM( const_tuple_str_plain_inst_tuple, 0, const_str_plain_inst ); Py_INCREF( const_str_plain_inst ); 123     PyTuple_SET_ITEM( const_tuple_str_plain_inst_tuple, 0, const_str_plain_inst ); Py_INCREF( const_str_plain_inst );
n 150     const_str_plain_repeat = UNSTREAM_STRING( &constant_bin[ 254 ], 6, 1 ); n 124     const_str_plain_repeat = UNSTREAM_STRING( &constant_bin[ 219 ], 6, 1 );
151     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 ); 125     const_tuple_none_int_pos_50000_tuple = PyTuple_New( 2 );
152     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None ); 126     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 0, Py_None ); Py_INCREF( Py_None );
153     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 ); 127     PyTuple_SET_ITEM( const_tuple_none_int_pos_50000_tuple, 1, const_int_pos_50000 ); Py_INCREF( const_int_pos_50000 );
n 154     const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple = PyTuple_New( 6 ); n
155     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 0, const_str_plain_some ); Py_INCREF( const_str_plain_some );
156     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 1, const_str_plain_random ); Py_INCREF( const_str_plain_random );
157     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 2, const_str_plain_values ); Py_INCREF( const_str_plain_values );
158     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 3, const_str_plain_to ); Py_INCREF( const_str_plain_to );
159     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 4, const_str_plain_check ); Py_INCREF( const_str_plain_check );
160     PyTuple_SET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 5, const_str_plain_call ); Py_INCREF( const_str_plain_call );
161     const_tuple_ca2f155a28955fc472d4376e2721d689_tuple = PyTuple_New( 6 );
162     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 0, const_str_plain_some ); Py_INCREF( const_str_plain_some );
163     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 1, const_str_plain_other ); Py_INCREF( const_str_plain_other );
164     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 2, const_str_plain_values ); Py_INCREF( const_str_plain_values );
165     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 3, const_str_plain_to ); Py_INCREF( const_str_plain_to );
166     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 4, const_str_plain_check ); Py_INCREF( const_str_plain_check );
167     PyTuple_SET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 5, const_str_plain_call ); Py_INCREF( const_str_plain_call );
168     const_str_plain_print_function = UNSTREAM_STRING( &constant_bin[ 260 ], 14, 1 ); 128     const_str_plain_print_function = UNSTREAM_STRING( &constant_bin[ 225 ], 14, 1 );
169 129
170     constants_created = true; 130     constants_created = true;
171 } 131 }
172 132
173 #ifndef __NUITKA_NO_ASSERT__ 133 #ifndef __NUITKA_NO_ASSERT__
334     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL; 294     NUITKA_MAY_BE_UNUSED char const *type_description_1 = NULL;
335     PyObject *exception_type = NULL; 295     PyObject *exception_type = NULL;
336     PyObject *exception_value = NULL; 296     PyObject *exception_value = NULL;
337     PyTracebackObject *exception_tb = NULL; 297     PyTracebackObject *exception_tb = NULL;
338     NUITKA_MAY_BE_UNUSED int exception_lineno = 0; 298     NUITKA_MAY_BE_UNUSED int exception_lineno = 0;
n 339     NUITKA_MAY_BE_UNUSED PyObject *tmp_unused; n
340     static struct Nuitka_FrameObject *cache_frame_9232a3f325553dc91369f1318d005656 = NULL; 299     static struct Nuitka_FrameObject *cache_frame_9232a3f325553dc91369f1318d005656 = NULL;
341     PyObject *tmp_return_value = NULL; 300     PyObject *tmp_return_value = NULL;
342     PyObject *exception_keeper_type_1; 301     PyObject *exception_keeper_type_1;
343     PyObject *exception_keeper_value_1; 302     PyObject *exception_keeper_value_1;
344     PyTracebackObject *exception_keeper_tb_1; 303     PyTracebackObject *exception_keeper_tb_1;
397     } 356     }
398     assert( var_inst == NULL ); 357     assert( var_inst == NULL );
399     var_inst = tmp_assign_source_1; 358     var_inst = tmp_assign_source_1;
400 359
401     } 360     }
n 402     { n
403     PyObject *tmp_called_instance_1;
404     tmp_called_instance_1 = var_inst;
405  
406     CHECK_OBJECT( tmp_called_instance_1 );
407     frame_9232a3f325553dc91369f1318d005656->m_frame.f_lineno = 32;
408     tmp_unused = CALL_METHOD_WITH_ARGS6( tmp_called_instance_1, const_str_plain_compiled_method, &PyTuple_GET_ITEM( const_tuple_78e2f1ad354bdb7db1a0fda186168ee0_tuple, 0 ) );
409  
410     if ( tmp_unused == NULL )
411     {
412         assert( ERROR_OCCURRED() );
413  
414         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
415  
416  
417         exception_lineno = 32;
418         type_description_1 = "o";
419         goto frame_exception_exit_1;
420     }
421     Py_DECREF( tmp_unused );
422     }
423     {
424     PyObject *tmp_called_instance_2;
425     tmp_called_instance_2 = var_inst;
426  
427     if ( tmp_called_instance_2 == NULL )
428     {
429  
430         exception_type = PyExc_UnboundLocalError;
431         Py_INCREF( exception_type );
432         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "inst" );
433         exception_tb = NULL;
434         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
435         CHAIN_EXCEPTION( exception_value );
436  
437         exception_lineno = 33;
438         type_description_1 = "o";
439         goto frame_exception_exit_1;
440     }
441  
442     frame_9232a3f325553dc91369f1318d005656->m_frame.f_lineno = 33;
443     tmp_unused = CALL_METHOD_WITH_ARGS6( tmp_called_instance_2, const_str_plain_compiled_method, &PyTuple_GET_ITEM( const_tuple_ca2f155a28955fc472d4376e2721d689_tuple, 0 ) );
444  
445     if ( tmp_unused == NULL )
446     {
447         assert( ERROR_OCCURRED() );
448  
449         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
450  
451  
452         exception_lineno = 33;
453         type_description_1 = "o";
454         goto frame_exception_exit_1;
455     }
456     Py_DECREF( tmp_unused );
457     }
458     {
459     PyObject *tmp_called_instance_3;
460     tmp_called_instance_3 = var_inst;
461  
462     if ( tmp_called_instance_3 == NULL )
463     {
464  
465         exception_type = PyExc_UnboundLocalError;
466         Py_INCREF( exception_type );
467         exception_value = PyUnicode_FromFormat( "local variable '%s' referenced before assignment", "inst" );
468         exception_tb = NULL;
469         NORMALIZE_EXCEPTION( &exception_type, &exception_value, &exception_tb );
470         CHAIN_EXCEPTION( exception_value );
471  
472         exception_lineno = 34;
473         type_description_1 = "o";
474         goto frame_exception_exit_1;
475     }
476  
477     frame_9232a3f325553dc91369f1318d005656->m_frame.f_lineno = 34;
478     tmp_unused = CALL_METHOD_WITH_ARGS6( tmp_called_instance_3, const_str_plain_compiled_method, &PyTuple_GET_ITEM( const_tuple_4cee4124c8df2995a8a82b981e580f5e_tuple, 0 ) );
479  
480     if ( tmp_unused == NULL )
481     {
482         assert( ERROR_OCCURRED() );
483  
484         FETCH_ERROR_OCCURRED( &exception_type, &exception_value, &exception_tb );
485  
486  
487         exception_lineno = 34;
488         type_description_1 = "o";
489         goto frame_exception_exit_1;
490     }
491     Py_DECREF( tmp_unused );
492     }
493 361
494 #if 0 362 #if 0
495     RESTORE_FRAME_EXCEPTION( frame_9232a3f325553dc91369f1318d005656 ); 363     RESTORE_FRAME_EXCEPTION( frame_9232a3f325553dc91369f1318d005656 );
496 #endif 364 #endif
497 365
549     NUITKA_CANNOT_GET_HERE( __main__$$$function_2_calledRepeatedly ); 417     NUITKA_CANNOT_GET_HERE( __main__$$$function_2_calledRepeatedly );
550     return NULL; 418     return NULL;
551     // Return handler code: 419     // Return handler code:
552     try_return_handler_1:; 420     try_return_handler_1:;
553     { 421     {
n n 422     CHECK_OBJECT( (PyObject *)var_inst );
554     Py_XDECREF( var_inst ); 423     Py_DECREF( var_inst );
555     var_inst = NULL; 424     var_inst = NULL;
556 425
557     } 426     }
558     { 427     {
559     goto function_return_exit; 428     goto function_return_exit;
567     exception_type = NULL; 436     exception_type = NULL;
568     exception_value = NULL; 437     exception_value = NULL;
569     exception_tb = NULL; 438     exception_tb = NULL;
570     exception_lineno = 0; 439     exception_lineno = 0;
571 440
t 572     { t
573     Py_XDECREF( var_inst );
574     var_inst = NULL;
575  
576     }
577     { 441     {
578     // Re-raise. 442     // Re-raise.
579     exception_type = exception_keeper_type_1; 443     exception_type = exception_keeper_type_1;
580     exception_value = exception_keeper_value_1; 444     exception_value = exception_keeper_value_1;
581     exception_tb = exception_keeper_tb_1; 445     exception_tb = exception_keeper_tb_1;