/home/mdboom/Work/builds/cpython/Include/internal/pycore_code.h
Line | Count | Source (jump to first uncovered line) |
1 | #ifndef Py_INTERNAL_CODE_H |
2 | #define Py_INTERNAL_CODE_H |
3 | #ifdef __cplusplus |
4 | extern "C" { |
5 | #endif |
6 | |
7 | /* PEP 659 |
8 | * Specialization and quickening structs and helper functions |
9 | */ |
10 | |
11 | |
12 | // Inline caches. If you change the number of cache entries for an instruction, |
13 | // you must *also* update the number of cache entries in Lib/opcode.py and bump |
14 | // the magic number in Lib/importlib/_bootstrap_external.py! |
15 | |
16 | #define CACHE_ENTRIES(cache) (sizeof(cache)/sizeof(_Py_CODEUNIT)) |
17 | |
18 | typedef struct { |
19 | _Py_CODEUNIT counter; |
20 | _Py_CODEUNIT index; |
21 | _Py_CODEUNIT module_keys_version[2]; |
22 | _Py_CODEUNIT builtin_keys_version; |
23 | } _PyLoadGlobalCache; |
24 | |
25 | #define INLINE_CACHE_ENTRIES_LOAD_GLOBAL CACHE_ENTRIES(_PyLoadGlobalCache) |
26 | |
27 | typedef struct { |
28 | _Py_CODEUNIT counter; |
29 | } _PyBinaryOpCache; |
30 | |
31 | #define INLINE_CACHE_ENTRIES_BINARY_OP CACHE_ENTRIES(_PyBinaryOpCache) |
32 | |
33 | typedef struct { |
34 | _Py_CODEUNIT counter; |
35 | } _PyUnpackSequenceCache; |
36 | |
37 | #define INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE \ |
38 | CACHE_ENTRIES(_PyUnpackSequenceCache) |
39 | |
40 | typedef struct { |
41 | _Py_CODEUNIT counter; |
42 | _Py_CODEUNIT mask; |
43 | } _PyCompareOpCache; |
44 | |
45 | #define INLINE_CACHE_ENTRIES_COMPARE_OP CACHE_ENTRIES(_PyCompareOpCache) |
46 | |
47 | typedef struct { |
48 | _Py_CODEUNIT counter; |
49 | _Py_CODEUNIT type_version[2]; |
50 | _Py_CODEUNIT func_version; |
51 | } _PyBinarySubscrCache; |
52 | |
53 | #define INLINE_CACHE_ENTRIES_BINARY_SUBSCR CACHE_ENTRIES(_PyBinarySubscrCache) |
54 | |
55 | typedef struct { |
56 | _Py_CODEUNIT counter; |
57 | _Py_CODEUNIT version[2]; |
58 | _Py_CODEUNIT index; |
59 | } _PyAttrCache; |
60 | |
61 | typedef struct { |
62 | _Py_CODEUNIT counter; |
63 | _Py_CODEUNIT type_version[2]; |
64 | _Py_CODEUNIT keys_version[2]; |
65 | _Py_CODEUNIT descr[4]; |
66 | } _PyLoadMethodCache; |
67 | |
68 | |
69 | // MUST be the max(_PyAttrCache, _PyLoadMethodCache) |
70 | #define INLINE_CACHE_ENTRIES_LOAD_ATTR CACHE_ENTRIES(_PyLoadMethodCache) |
71 | |
72 | #define INLINE_CACHE_ENTRIES_STORE_ATTR CACHE_ENTRIES(_PyAttrCache) |
73 | |
74 | typedef struct { |
75 | _Py_CODEUNIT counter; |
76 | _Py_CODEUNIT func_version[2]; |
77 | _Py_CODEUNIT min_args; |
78 | } _PyCallCache; |
79 | |
80 | #define INLINE_CACHE_ENTRIES_CALL CACHE_ENTRIES(_PyCallCache) |
81 | |
82 | typedef struct { |
83 | _Py_CODEUNIT counter; |
84 | } _PyStoreSubscrCache; |
85 | |
86 | #define INLINE_CACHE_ENTRIES_STORE_SUBSCR CACHE_ENTRIES(_PyStoreSubscrCache) |
87 | |
88 | typedef struct { |
89 | _Py_CODEUNIT counter; |
90 | } _PyForIterCache; |
91 | |
92 | #define INLINE_CACHE_ENTRIES_FOR_ITER CACHE_ENTRIES(_PyForIterCache) |
93 | |
94 | #define QUICKENING_WARMUP_DELAY 8 |
95 | |
96 | /* We want to compare to zero for efficiency, so we offset values accordingly */ |
97 | #define QUICKENING_INITIAL_WARMUP_VALUE (-QUICKENING_WARMUP_DELAY) |
98 | |
99 | void _PyCode_Quicken(PyCodeObject *code); |
100 | |
101 | static inline void |
102 | _PyCode_Warmup(PyCodeObject *code) |
103 | { |
104 | if (code->co_warmup != 0) { Branch (104:9): [True: 465k, False: 2.49M]
|
105 | code->co_warmup++; |
106 | if (code->co_warmup == 0) { Branch (106:13): [True: 33.7k, False: 431k]
|
107 | _PyCode_Quicken(code); |
108 | } |
109 | } |
110 | } Unexecuted instantiation: myreadline.c:_PyCode_Warmup Unexecuted instantiation: tokenizer.c:_PyCode_Warmup Unexecuted instantiation: abstract.c:_PyCode_Warmup Unexecuted instantiation: boolobject.c:_PyCode_Warmup Unexecuted instantiation: bytearrayobject.c:_PyCode_Warmup Unexecuted instantiation: bytesobject.c:_PyCode_Warmup Unexecuted instantiation: call.c:_PyCode_Warmup Unexecuted instantiation: cellobject.c:_PyCode_Warmup Unexecuted instantiation: classobject.c:_PyCode_Warmup Unexecuted instantiation: codeobject.c:_PyCode_Warmup Unexecuted instantiation: complexobject.c:_PyCode_Warmup Unexecuted instantiation: descrobject.c:_PyCode_Warmup Unexecuted instantiation: enumobject.c:_PyCode_Warmup Unexecuted instantiation: exceptions.c:_PyCode_Warmup Unexecuted instantiation: genericaliasobject.c:_PyCode_Warmup Unexecuted instantiation: genobject.c:_PyCode_Warmup Unexecuted instantiation: fileobject.c:_PyCode_Warmup Unexecuted instantiation: floatobject.c:_PyCode_Warmup Unexecuted instantiation: frameobject.c:_PyCode_Warmup Unexecuted instantiation: funcobject.c:_PyCode_Warmup Unexecuted instantiation: interpreteridobject.c:_PyCode_Warmup Unexecuted instantiation: iterobject.c:_PyCode_Warmup Unexecuted instantiation: listobject.c:_PyCode_Warmup Unexecuted instantiation: longobject.c:_PyCode_Warmup Unexecuted instantiation: dictobject.c:_PyCode_Warmup Unexecuted instantiation: odictobject.c:_PyCode_Warmup Unexecuted instantiation: memoryobject.c:_PyCode_Warmup Unexecuted instantiation: methodobject.c:_PyCode_Warmup Unexecuted instantiation: moduleobject.c:_PyCode_Warmup Unexecuted instantiation: object.c:_PyCode_Warmup Unexecuted instantiation: obmalloc.c:_PyCode_Warmup Unexecuted instantiation: rangeobject.c:_PyCode_Warmup Unexecuted instantiation: setobject.c:_PyCode_Warmup Unexecuted instantiation: sliceobject.c:_PyCode_Warmup Unexecuted instantiation: structseq.c:_PyCode_Warmup Unexecuted instantiation: tupleobject.c:_PyCode_Warmup Unexecuted instantiation: typeobject.c:_PyCode_Warmup Unexecuted instantiation: unicodeobject.c:_PyCode_Warmup Unexecuted instantiation: unionobject.c:_PyCode_Warmup Unexecuted instantiation: weakrefobject.c:_PyCode_Warmup Unexecuted instantiation: _warnings.c:_PyCode_Warmup Unexecuted instantiation: Python-ast.c:_PyCode_Warmup Unexecuted instantiation: ast.c:_PyCode_Warmup Unexecuted instantiation: ast_opt.c:_PyCode_Warmup Unexecuted instantiation: ast_unparse.c:_PyCode_Warmup Unexecuted instantiation: bltinmodule.c:_PyCode_Warmup Line | Count | Source | 103 | { | 104 | if (code->co_warmup != 0) { Branch (104:9): [True: 465k, False: 2.49M]
| 105 | code->co_warmup++; | 106 | if (code->co_warmup == 0) { Branch (106:13): [True: 33.7k, False: 431k]
| 107 | _PyCode_Quicken(code); | 108 | } | 109 | } | 110 | } |
Unexecuted instantiation: codecs.c:_PyCode_Warmup Unexecuted instantiation: compile.c:_PyCode_Warmup Unexecuted instantiation: context.c:_PyCode_Warmup Unexecuted instantiation: errors.c:_PyCode_Warmup Unexecuted instantiation: frame.c:_PyCode_Warmup Unexecuted instantiation: frozenmain.c:_PyCode_Warmup Unexecuted instantiation: getargs.c:_PyCode_Warmup Unexecuted instantiation: hamt.c:_PyCode_Warmup Unexecuted instantiation: import.c:_PyCode_Warmup Unexecuted instantiation: importdl.c:_PyCode_Warmup Unexecuted instantiation: initconfig.c:_PyCode_Warmup Unexecuted instantiation: marshal.c:_PyCode_Warmup Unexecuted instantiation: mystrtoul.c:_PyCode_Warmup Unexecuted instantiation: preconfig.c:_PyCode_Warmup Unexecuted instantiation: pylifecycle.c:_PyCode_Warmup Unexecuted instantiation: pystate.c:_PyCode_Warmup Unexecuted instantiation: pythonrun.c:_PyCode_Warmup Unexecuted instantiation: specialize.c:_PyCode_Warmup Unexecuted instantiation: symtable.c:_PyCode_Warmup Unexecuted instantiation: sysmodule.c:_PyCode_Warmup Unexecuted instantiation: thread.c:_PyCode_Warmup Unexecuted instantiation: traceback.c:_PyCode_Warmup Unexecuted instantiation: formatter_unicode.c:_PyCode_Warmup Unexecuted instantiation: fileutils.c:_PyCode_Warmup Unexecuted instantiation: suggestions.c:_PyCode_Warmup Unexecuted instantiation: dynload_shlib.c:_PyCode_Warmup Unexecuted instantiation: main.c:_PyCode_Warmup Unexecuted instantiation: gcmodule.c:_PyCode_Warmup Unexecuted instantiation: atexitmodule.c:_PyCode_Warmup Unexecuted instantiation: faulthandler.c:_PyCode_Warmup Unexecuted instantiation: posixmodule.c:_PyCode_Warmup Unexecuted instantiation: signalmodule.c:_PyCode_Warmup Unexecuted instantiation: _tracemalloc.c:_PyCode_Warmup Unexecuted instantiation: _collectionsmodule.c:_PyCode_Warmup Unexecuted instantiation: _iomodule.c:_PyCode_Warmup Unexecuted instantiation: iobase.c:_PyCode_Warmup Unexecuted instantiation: fileio.c:_PyCode_Warmup Unexecuted instantiation: bytesio.c:_PyCode_Warmup Unexecuted instantiation: bufferedio.c:_PyCode_Warmup Unexecuted instantiation: textio.c:_PyCode_Warmup Unexecuted instantiation: stringio.c:_PyCode_Warmup Unexecuted instantiation: itertoolsmodule.c:_PyCode_Warmup Unexecuted instantiation: sre.c:_PyCode_Warmup Unexecuted instantiation: _threadmodule.c:_PyCode_Warmup Unexecuted instantiation: timemodule.c:_PyCode_Warmup Unexecuted instantiation: _weakref.c:_PyCode_Warmup Unexecuted instantiation: _abc.c:_PyCode_Warmup Unexecuted instantiation: _functoolsmodule.c:_PyCode_Warmup Unexecuted instantiation: _operator.c:_PyCode_Warmup Unexecuted instantiation: deepfreeze.c:_PyCode_Warmup |
111 | |
112 | extern uint8_t _PyOpcode_Adaptive[256]; |
113 | |
114 | extern Py_ssize_t _Py_QuickenedCount; |
115 | |
116 | // Borrowed references to common callables: |
117 | struct callable_cache { |
118 | PyObject *isinstance; |
119 | PyObject *len; |
120 | PyObject *list_append; |
121 | }; |
122 | |
123 | /* "Locals plus" for a code object is the set of locals + cell vars + |
124 | * free vars. This relates to variable names as well as offsets into |
125 | * the "fast locals" storage array of execution frames. The compiler |
126 | * builds the list of names, their offsets, and the corresponding |
127 | * kind of local. |
128 | * |
129 | * Those kinds represent the source of the initial value and the |
130 | * variable's scope (as related to closures). A "local" is an |
131 | * argument or other variable defined in the current scope. A "free" |
132 | * variable is one that is defined in an outer scope and comes from |
133 | * the function's closure. A "cell" variable is a local that escapes |
134 | * into an inner function as part of a closure, and thus must be |
135 | * wrapped in a cell. Any "local" can also be a "cell", but the |
136 | * "free" kind is mutually exclusive with both. |
137 | */ |
138 | |
139 | // Note that these all fit within a byte, as do combinations. |
140 | // Later, we will use the smaller numbers to differentiate the different |
141 | // kinds of locals (e.g. pos-only arg, varkwargs, local-only). |
142 | #define CO_FAST_LOCAL 0x20 |
143 | #define CO_FAST_CELL 0x40 |
144 | #define CO_FAST_FREE 0x80 |
145 | |
146 | typedef unsigned char _PyLocals_Kind; |
147 | |
148 | static inline _PyLocals_Kind |
149 | _PyLocals_GetKind(PyObject *kinds, int i) |
150 | { |
151 | assert(PyBytes_Check(kinds)); |
152 | assert(0 <= i && i < PyBytes_GET_SIZE(kinds)); |
153 | char *ptr = PyBytes_AS_STRING(kinds); |
154 | return (_PyLocals_Kind)(ptr[i]); |
155 | } Unexecuted instantiation: myreadline.c:_PyLocals_GetKind Unexecuted instantiation: tokenizer.c:_PyLocals_GetKind Unexecuted instantiation: abstract.c:_PyLocals_GetKind Unexecuted instantiation: boolobject.c:_PyLocals_GetKind Unexecuted instantiation: bytearrayobject.c:_PyLocals_GetKind Unexecuted instantiation: bytesobject.c:_PyLocals_GetKind Unexecuted instantiation: call.c:_PyLocals_GetKind Unexecuted instantiation: cellobject.c:_PyLocals_GetKind Unexecuted instantiation: classobject.c:_PyLocals_GetKind codeobject.c:_PyLocals_GetKind Line | Count | Source | 150 | { | 151 | assert(PyBytes_Check(kinds)); | 152 | assert(0 <= i && i < PyBytes_GET_SIZE(kinds)); | 153 | char *ptr = PyBytes_AS_STRING(kinds); | 154 | return (_PyLocals_Kind)(ptr[i]); | 155 | } |
Unexecuted instantiation: complexobject.c:_PyLocals_GetKind Unexecuted instantiation: descrobject.c:_PyLocals_GetKind Unexecuted instantiation: enumobject.c:_PyLocals_GetKind Unexecuted instantiation: exceptions.c:_PyLocals_GetKind Unexecuted instantiation: genericaliasobject.c:_PyLocals_GetKind Unexecuted instantiation: genobject.c:_PyLocals_GetKind Unexecuted instantiation: fileobject.c:_PyLocals_GetKind Unexecuted instantiation: floatobject.c:_PyLocals_GetKind frameobject.c:_PyLocals_GetKind Line | Count | Source | 150 | { | 151 | assert(PyBytes_Check(kinds)); | 152 | assert(0 <= i && i < PyBytes_GET_SIZE(kinds)); | 153 | char *ptr = PyBytes_AS_STRING(kinds); | 154 | return (_PyLocals_Kind)(ptr[i]); | 155 | } |
Unexecuted instantiation: funcobject.c:_PyLocals_GetKind Unexecuted instantiation: interpreteridobject.c:_PyLocals_GetKind Unexecuted instantiation: iterobject.c:_PyLocals_GetKind Unexecuted instantiation: listobject.c:_PyLocals_GetKind Unexecuted instantiation: longobject.c:_PyLocals_GetKind Unexecuted instantiation: dictobject.c:_PyLocals_GetKind Unexecuted instantiation: odictobject.c:_PyLocals_GetKind Unexecuted instantiation: memoryobject.c:_PyLocals_GetKind Unexecuted instantiation: methodobject.c:_PyLocals_GetKind Unexecuted instantiation: moduleobject.c:_PyLocals_GetKind Unexecuted instantiation: object.c:_PyLocals_GetKind Unexecuted instantiation: obmalloc.c:_PyLocals_GetKind Unexecuted instantiation: rangeobject.c:_PyLocals_GetKind Unexecuted instantiation: setobject.c:_PyLocals_GetKind Unexecuted instantiation: sliceobject.c:_PyLocals_GetKind Unexecuted instantiation: structseq.c:_PyLocals_GetKind Unexecuted instantiation: tupleobject.c:_PyLocals_GetKind typeobject.c:_PyLocals_GetKind Line | Count | Source | 150 | { | 151 | assert(PyBytes_Check(kinds)); | 152 | assert(0 <= i && i < PyBytes_GET_SIZE(kinds)); | 153 | char *ptr = PyBytes_AS_STRING(kinds); | 154 | return (_PyLocals_Kind)(ptr[i]); | 155 | } |
Unexecuted instantiation: unicodeobject.c:_PyLocals_GetKind Unexecuted instantiation: unionobject.c:_PyLocals_GetKind Unexecuted instantiation: weakrefobject.c:_PyLocals_GetKind Unexecuted instantiation: _warnings.c:_PyLocals_GetKind Unexecuted instantiation: Python-ast.c:_PyLocals_GetKind Unexecuted instantiation: ast.c:_PyLocals_GetKind Unexecuted instantiation: ast_opt.c:_PyLocals_GetKind Unexecuted instantiation: ast_unparse.c:_PyLocals_GetKind Unexecuted instantiation: bltinmodule.c:_PyLocals_GetKind Unexecuted instantiation: ceval.c:_PyLocals_GetKind Unexecuted instantiation: codecs.c:_PyLocals_GetKind Unexecuted instantiation: compile.c:_PyLocals_GetKind Unexecuted instantiation: context.c:_PyLocals_GetKind Unexecuted instantiation: errors.c:_PyLocals_GetKind Unexecuted instantiation: frame.c:_PyLocals_GetKind Unexecuted instantiation: frozenmain.c:_PyLocals_GetKind Unexecuted instantiation: getargs.c:_PyLocals_GetKind Unexecuted instantiation: hamt.c:_PyLocals_GetKind Unexecuted instantiation: import.c:_PyLocals_GetKind Unexecuted instantiation: importdl.c:_PyLocals_GetKind Unexecuted instantiation: initconfig.c:_PyLocals_GetKind Unexecuted instantiation: marshal.c:_PyLocals_GetKind Unexecuted instantiation: mystrtoul.c:_PyLocals_GetKind Unexecuted instantiation: preconfig.c:_PyLocals_GetKind Unexecuted instantiation: pylifecycle.c:_PyLocals_GetKind Unexecuted instantiation: pystate.c:_PyLocals_GetKind Unexecuted instantiation: pythonrun.c:_PyLocals_GetKind Unexecuted instantiation: specialize.c:_PyLocals_GetKind Unexecuted instantiation: symtable.c:_PyLocals_GetKind Unexecuted instantiation: sysmodule.c:_PyLocals_GetKind Unexecuted instantiation: thread.c:_PyLocals_GetKind Unexecuted instantiation: traceback.c:_PyLocals_GetKind Unexecuted instantiation: formatter_unicode.c:_PyLocals_GetKind Unexecuted instantiation: fileutils.c:_PyLocals_GetKind Unexecuted instantiation: suggestions.c:_PyLocals_GetKind Unexecuted instantiation: dynload_shlib.c:_PyLocals_GetKind Unexecuted instantiation: main.c:_PyLocals_GetKind Unexecuted instantiation: gcmodule.c:_PyLocals_GetKind Unexecuted instantiation: atexitmodule.c:_PyLocals_GetKind Unexecuted instantiation: faulthandler.c:_PyLocals_GetKind Unexecuted instantiation: posixmodule.c:_PyLocals_GetKind Unexecuted instantiation: signalmodule.c:_PyLocals_GetKind Unexecuted instantiation: _tracemalloc.c:_PyLocals_GetKind Unexecuted instantiation: _collectionsmodule.c:_PyLocals_GetKind Unexecuted instantiation: _iomodule.c:_PyLocals_GetKind Unexecuted instantiation: iobase.c:_PyLocals_GetKind Unexecuted instantiation: fileio.c:_PyLocals_GetKind Unexecuted instantiation: bytesio.c:_PyLocals_GetKind Unexecuted instantiation: bufferedio.c:_PyLocals_GetKind Unexecuted instantiation: textio.c:_PyLocals_GetKind Unexecuted instantiation: stringio.c:_PyLocals_GetKind Unexecuted instantiation: itertoolsmodule.c:_PyLocals_GetKind Unexecuted instantiation: sre.c:_PyLocals_GetKind Unexecuted instantiation: _threadmodule.c:_PyLocals_GetKind Unexecuted instantiation: timemodule.c:_PyLocals_GetKind Unexecuted instantiation: _weakref.c:_PyLocals_GetKind Unexecuted instantiation: _abc.c:_PyLocals_GetKind Unexecuted instantiation: _functoolsmodule.c:_PyLocals_GetKind Unexecuted instantiation: _operator.c:_PyLocals_GetKind Unexecuted instantiation: deepfreeze.c:_PyLocals_GetKind |
156 | |
157 | static inline void |
158 | _PyLocals_SetKind(PyObject *kinds, int i, _PyLocals_Kind kind) |
159 | { |
160 | assert(PyBytes_Check(kinds)); |
161 | assert(0 <= i && i < PyBytes_GET_SIZE(kinds)); |
162 | char *ptr = PyBytes_AS_STRING(kinds); |
163 | ptr[i] = (char) kind; |
164 | } Unexecuted instantiation: myreadline.c:_PyLocals_SetKind Unexecuted instantiation: tokenizer.c:_PyLocals_SetKind Unexecuted instantiation: abstract.c:_PyLocals_SetKind Unexecuted instantiation: boolobject.c:_PyLocals_SetKind Unexecuted instantiation: bytearrayobject.c:_PyLocals_SetKind Unexecuted instantiation: bytesobject.c:_PyLocals_SetKind Unexecuted instantiation: call.c:_PyLocals_SetKind Unexecuted instantiation: cellobject.c:_PyLocals_SetKind Unexecuted instantiation: classobject.c:_PyLocals_SetKind codeobject.c:_PyLocals_SetKind Line | Count | Source | 159 | { | 160 | assert(PyBytes_Check(kinds)); | 161 | assert(0 <= i && i < PyBytes_GET_SIZE(kinds)); | 162 | char *ptr = PyBytes_AS_STRING(kinds); | 163 | ptr[i] = (char) kind; | 164 | } |
Unexecuted instantiation: complexobject.c:_PyLocals_SetKind Unexecuted instantiation: descrobject.c:_PyLocals_SetKind Unexecuted instantiation: enumobject.c:_PyLocals_SetKind Unexecuted instantiation: exceptions.c:_PyLocals_SetKind Unexecuted instantiation: genericaliasobject.c:_PyLocals_SetKind Unexecuted instantiation: genobject.c:_PyLocals_SetKind Unexecuted instantiation: fileobject.c:_PyLocals_SetKind Unexecuted instantiation: floatobject.c:_PyLocals_SetKind Unexecuted instantiation: frameobject.c:_PyLocals_SetKind Unexecuted instantiation: funcobject.c:_PyLocals_SetKind Unexecuted instantiation: interpreteridobject.c:_PyLocals_SetKind Unexecuted instantiation: iterobject.c:_PyLocals_SetKind Unexecuted instantiation: listobject.c:_PyLocals_SetKind Unexecuted instantiation: longobject.c:_PyLocals_SetKind Unexecuted instantiation: dictobject.c:_PyLocals_SetKind Unexecuted instantiation: odictobject.c:_PyLocals_SetKind Unexecuted instantiation: memoryobject.c:_PyLocals_SetKind Unexecuted instantiation: methodobject.c:_PyLocals_SetKind Unexecuted instantiation: moduleobject.c:_PyLocals_SetKind Unexecuted instantiation: object.c:_PyLocals_SetKind Unexecuted instantiation: obmalloc.c:_PyLocals_SetKind Unexecuted instantiation: rangeobject.c:_PyLocals_SetKind Unexecuted instantiation: setobject.c:_PyLocals_SetKind Unexecuted instantiation: sliceobject.c:_PyLocals_SetKind Unexecuted instantiation: structseq.c:_PyLocals_SetKind Unexecuted instantiation: tupleobject.c:_PyLocals_SetKind Unexecuted instantiation: typeobject.c:_PyLocals_SetKind Unexecuted instantiation: unicodeobject.c:_PyLocals_SetKind Unexecuted instantiation: unionobject.c:_PyLocals_SetKind Unexecuted instantiation: weakrefobject.c:_PyLocals_SetKind Unexecuted instantiation: _warnings.c:_PyLocals_SetKind Unexecuted instantiation: Python-ast.c:_PyLocals_SetKind Unexecuted instantiation: ast.c:_PyLocals_SetKind Unexecuted instantiation: ast_opt.c:_PyLocals_SetKind Unexecuted instantiation: ast_unparse.c:_PyLocals_SetKind Unexecuted instantiation: bltinmodule.c:_PyLocals_SetKind Unexecuted instantiation: ceval.c:_PyLocals_SetKind Unexecuted instantiation: codecs.c:_PyLocals_SetKind Unexecuted instantiation: compile.c:_PyLocals_SetKind Unexecuted instantiation: context.c:_PyLocals_SetKind Unexecuted instantiation: errors.c:_PyLocals_SetKind Unexecuted instantiation: frame.c:_PyLocals_SetKind Unexecuted instantiation: frozenmain.c:_PyLocals_SetKind Unexecuted instantiation: getargs.c:_PyLocals_SetKind Unexecuted instantiation: hamt.c:_PyLocals_SetKind Unexecuted instantiation: import.c:_PyLocals_SetKind Unexecuted instantiation: importdl.c:_PyLocals_SetKind Unexecuted instantiation: initconfig.c:_PyLocals_SetKind Unexecuted instantiation: marshal.c:_PyLocals_SetKind Unexecuted instantiation: mystrtoul.c:_PyLocals_SetKind Unexecuted instantiation: preconfig.c:_PyLocals_SetKind Unexecuted instantiation: pylifecycle.c:_PyLocals_SetKind Unexecuted instantiation: pystate.c:_PyLocals_SetKind Unexecuted instantiation: pythonrun.c:_PyLocals_SetKind Unexecuted instantiation: specialize.c:_PyLocals_SetKind Unexecuted instantiation: symtable.c:_PyLocals_SetKind Unexecuted instantiation: sysmodule.c:_PyLocals_SetKind Unexecuted instantiation: thread.c:_PyLocals_SetKind Unexecuted instantiation: traceback.c:_PyLocals_SetKind Unexecuted instantiation: formatter_unicode.c:_PyLocals_SetKind Unexecuted instantiation: fileutils.c:_PyLocals_SetKind Unexecuted instantiation: suggestions.c:_PyLocals_SetKind Unexecuted instantiation: dynload_shlib.c:_PyLocals_SetKind Unexecuted instantiation: main.c:_PyLocals_SetKind Unexecuted instantiation: gcmodule.c:_PyLocals_SetKind Unexecuted instantiation: atexitmodule.c:_PyLocals_SetKind Unexecuted instantiation: faulthandler.c:_PyLocals_SetKind Unexecuted instantiation: posixmodule.c:_PyLocals_SetKind Unexecuted instantiation: signalmodule.c:_PyLocals_SetKind Unexecuted instantiation: _tracemalloc.c:_PyLocals_SetKind Unexecuted instantiation: _collectionsmodule.c:_PyLocals_SetKind Unexecuted instantiation: _iomodule.c:_PyLocals_SetKind Unexecuted instantiation: iobase.c:_PyLocals_SetKind Unexecuted instantiation: fileio.c:_PyLocals_SetKind Unexecuted instantiation: bytesio.c:_PyLocals_SetKind Unexecuted instantiation: bufferedio.c:_PyLocals_SetKind Unexecuted instantiation: textio.c:_PyLocals_SetKind Unexecuted instantiation: stringio.c:_PyLocals_SetKind Unexecuted instantiation: itertoolsmodule.c:_PyLocals_SetKind Unexecuted instantiation: sre.c:_PyLocals_SetKind Unexecuted instantiation: _threadmodule.c:_PyLocals_SetKind Unexecuted instantiation: timemodule.c:_PyLocals_SetKind Unexecuted instantiation: _weakref.c:_PyLocals_SetKind Unexecuted instantiation: _abc.c:_PyLocals_SetKind Unexecuted instantiation: _functoolsmodule.c:_PyLocals_SetKind Unexecuted instantiation: _operator.c:_PyLocals_SetKind Unexecuted instantiation: deepfreeze.c:_PyLocals_SetKind |
165 | |
166 | |
167 | struct _PyCodeConstructor { |
168 | /* metadata */ |
169 | PyObject *filename; |
170 | PyObject *name; |
171 | PyObject *qualname; |
172 | int flags; |
173 | |
174 | /* the code */ |
175 | PyObject *code; |
176 | int firstlineno; |
177 | PyObject *linetable; |
178 | |
179 | /* used by the code */ |
180 | PyObject *consts; |
181 | PyObject *names; |
182 | |
183 | /* mapping frame offsets to information */ |
184 | PyObject *localsplusnames; // Tuple of strings |
185 | PyObject *localspluskinds; // Bytes object, one byte per variable |
186 | |
187 | /* args (within varnames) */ |
188 | int argcount; |
189 | int posonlyargcount; |
190 | // XXX Replace argcount with posorkwargcount (argcount - posonlyargcount). |
191 | int kwonlyargcount; |
192 | |
193 | /* needed to create the frame */ |
194 | int stacksize; |
195 | |
196 | /* used by the eval loop */ |
197 | PyObject *exceptiontable; |
198 | }; |
199 | |
200 | // Using an "arguments struct" like this is helpful for maintainability |
201 | // in a case such as this with many parameters. It does bear a risk: |
202 | // if the struct changes and callers are not updated properly then the |
203 | // compiler will not catch problems (like a missing argument). This can |
204 | // cause hard-to-debug problems. The risk is mitigated by the use of |
205 | // check_code() in codeobject.c. However, we may decide to switch |
206 | // back to a regular function signature. Regardless, this approach |
207 | // wouldn't be appropriate if this weren't a strictly internal API. |
208 | // (See the comments in https://github.com/python/cpython/pull/26258.) |
209 | PyAPI_FUNC(int) _PyCode_Validate(struct _PyCodeConstructor *); |
210 | PyAPI_FUNC(PyCodeObject *) _PyCode_New(struct _PyCodeConstructor *); |
211 | |
212 | |
213 | /* Private API */ |
214 | |
215 | /* Getters for internal PyCodeObject data. */ |
216 | extern PyObject* _PyCode_GetVarnames(PyCodeObject *); |
217 | extern PyObject* _PyCode_GetCellvars(PyCodeObject *); |
218 | extern PyObject* _PyCode_GetFreevars(PyCodeObject *); |
219 | extern PyObject* _PyCode_GetCode(PyCodeObject *); |
220 | |
221 | /** API for initializing the line number tables. */ |
222 | extern int _PyCode_InitAddressRange(PyCodeObject* co, PyCodeAddressRange *bounds); |
223 | |
224 | /** Out of process API for initializing the location table. */ |
225 | extern void _PyLineTable_InitAddressRange( |
226 | const char *linetable, |
227 | Py_ssize_t length, |
228 | int firstlineno, |
229 | PyCodeAddressRange *range); |
230 | |
231 | /** API for traversing the line number table. */ |
232 | extern int _PyLineTable_NextAddressRange(PyCodeAddressRange *range); |
233 | extern int _PyLineTable_PreviousAddressRange(PyCodeAddressRange *range); |
234 | |
235 | /* Specialization functions */ |
236 | |
237 | extern int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, |
238 | PyObject *name); |
239 | extern int _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, |
240 | PyObject *name); |
241 | extern int _Py_Specialize_LoadGlobal(PyObject *globals, PyObject *builtins, _Py_CODEUNIT *instr, PyObject *name); |
242 | extern int _Py_Specialize_BinarySubscr(PyObject *sub, PyObject *container, _Py_CODEUNIT *instr); |
243 | extern int _Py_Specialize_StoreSubscr(PyObject *container, PyObject *sub, _Py_CODEUNIT *instr); |
244 | extern int _Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, |
245 | int nargs, PyObject *kwnames); |
246 | extern void _Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, |
247 | int oparg, PyObject **locals); |
248 | extern void _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, |
249 | _Py_CODEUNIT *instr, int oparg); |
250 | extern void _Py_Specialize_UnpackSequence(PyObject *seq, _Py_CODEUNIT *instr, |
251 | int oparg); |
252 | extern void _Py_Specialize_ForIter(PyObject *iter, _Py_CODEUNIT *instr); |
253 | |
254 | /* Deallocator function for static codeobjects used in deepfreeze.py */ |
255 | extern void _PyStaticCode_Dealloc(PyCodeObject *co); |
256 | /* Function to intern strings of codeobjects */ |
257 | extern int _PyStaticCode_InternStrings(PyCodeObject *co); |
258 | |
259 | #ifdef Py_STATS |
260 | |
261 | |
262 | #define STAT_INC(opname, name) do { if (_py_stats) _py_stats->opcode_stats[opname].specialization.name++; } while (0) |
263 | #define STAT_DEC(opname, name) do { if (_py_stats) _py_stats->opcode_stats[opname].specialization.name--; } while (0) |
264 | #define OPCODE_EXE_INC(opname) do { if (_py_stats) _py_stats->opcode_stats[opname].execution_count++; } while (0) |
265 | #define CALL_STAT_INC(name) do { if (_py_stats) _py_stats->call_stats.name++; } while (0) |
266 | #define OBJECT_STAT_INC(name) do { if (_py_stats) _py_stats->object_stats.name++; } while (0) |
267 | #define OBJECT_STAT_INC_COND(name, cond) \ |
268 | do { if (_py_stats && cond) _py_stats->object_stats.name++; } while (0) |
269 | #define EVAL_CALL_STAT_INC(name) do { if (_py_stats) _py_stats->call_stats.eval_calls[name]++; } while (0) |
270 | #define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) \ |
271 | do { if (_py_stats && PyFunction_Check(callable)) _py_stats->call_stats.eval_calls[name]++; } while (0) |
272 | |
273 | // Used by the _opcode extension which is built as a shared library |
274 | PyAPI_FUNC(PyObject*) _Py_GetSpecializationStats(void); |
275 | |
276 | #else |
277 | #define STAT_INC(opname, name) ((void)0) |
278 | #define STAT_DEC(opname, name) ((void)0) |
279 | #define OPCODE_EXE_INC(opname) ((void)0) |
280 | #define CALL_STAT_INC(name) ((void)0) |
281 | #define OBJECT_STAT_INC(name) ((void)0) |
282 | #define OBJECT_STAT_INC_COND(name, cond) ((void)0) |
283 | #define EVAL_CALL_STAT_INC(name) ((void)0) |
284 | #define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) ((void)0) |
285 | #endif // !Py_STATS |
286 | |
287 | // Cache values are only valid in memory, so use native endianness. |
288 | #ifdef WORDS_BIGENDIAN |
289 | |
290 | static inline void |
291 | write_u32(uint16_t *p, uint32_t val) |
292 | { |
293 | p[0] = (uint16_t)(val >> 16); |
294 | p[1] = (uint16_t)(val >> 0); |
295 | } |
296 | |
297 | static inline void |
298 | write_u64(uint16_t *p, uint64_t val) |
299 | { |
300 | p[0] = (uint16_t)(val >> 48); |
301 | p[1] = (uint16_t)(val >> 32); |
302 | p[2] = (uint16_t)(val >> 16); |
303 | p[3] = (uint16_t)(val >> 0); |
304 | } |
305 | |
306 | static inline uint32_t |
307 | read_u32(uint16_t *p) |
308 | { |
309 | uint32_t val = 0; |
310 | val |= (uint32_t)p[0] << 16; |
311 | val |= (uint32_t)p[1] << 0; |
312 | return val; |
313 | } |
314 | |
315 | static inline uint64_t |
316 | read_u64(uint16_t *p) |
317 | { |
318 | uint64_t val = 0; |
319 | val |= (uint64_t)p[0] << 48; |
320 | val |= (uint64_t)p[1] << 32; |
321 | val |= (uint64_t)p[2] << 16; |
322 | val |= (uint64_t)p[3] << 0; |
323 | return val; |
324 | } |
325 | |
326 | #else |
327 | |
328 | static inline void |
329 | write_u32(uint16_t *p, uint32_t val) |
330 | { |
331 | p[0] = (uint16_t)(val >> 0); |
332 | p[1] = (uint16_t)(val >> 16); |
333 | } Unexecuted instantiation: myreadline.c:write_u32 Unexecuted instantiation: tokenizer.c:write_u32 Unexecuted instantiation: abstract.c:write_u32 Unexecuted instantiation: boolobject.c:write_u32 Unexecuted instantiation: bytearrayobject.c:write_u32 Unexecuted instantiation: bytesobject.c:write_u32 Unexecuted instantiation: call.c:write_u32 Unexecuted instantiation: cellobject.c:write_u32 Unexecuted instantiation: classobject.c:write_u32 Unexecuted instantiation: codeobject.c:write_u32 Unexecuted instantiation: complexobject.c:write_u32 Unexecuted instantiation: descrobject.c:write_u32 Unexecuted instantiation: enumobject.c:write_u32 Unexecuted instantiation: exceptions.c:write_u32 Unexecuted instantiation: genericaliasobject.c:write_u32 Unexecuted instantiation: genobject.c:write_u32 Unexecuted instantiation: fileobject.c:write_u32 Unexecuted instantiation: floatobject.c:write_u32 Unexecuted instantiation: frameobject.c:write_u32 Unexecuted instantiation: funcobject.c:write_u32 Unexecuted instantiation: interpreteridobject.c:write_u32 Unexecuted instantiation: iterobject.c:write_u32 Unexecuted instantiation: listobject.c:write_u32 Unexecuted instantiation: longobject.c:write_u32 Unexecuted instantiation: dictobject.c:write_u32 Unexecuted instantiation: odictobject.c:write_u32 Unexecuted instantiation: memoryobject.c:write_u32 Unexecuted instantiation: methodobject.c:write_u32 Unexecuted instantiation: moduleobject.c:write_u32 Unexecuted instantiation: object.c:write_u32 Unexecuted instantiation: obmalloc.c:write_u32 Unexecuted instantiation: rangeobject.c:write_u32 Unexecuted instantiation: setobject.c:write_u32 Unexecuted instantiation: sliceobject.c:write_u32 Unexecuted instantiation: structseq.c:write_u32 Unexecuted instantiation: tupleobject.c:write_u32 Unexecuted instantiation: typeobject.c:write_u32 Unexecuted instantiation: unicodeobject.c:write_u32 Unexecuted instantiation: unionobject.c:write_u32 Unexecuted instantiation: weakrefobject.c:write_u32 Unexecuted instantiation: _warnings.c:write_u32 Unexecuted instantiation: Python-ast.c:write_u32 Unexecuted instantiation: ast.c:write_u32 Unexecuted instantiation: ast_opt.c:write_u32 Unexecuted instantiation: ast_unparse.c:write_u32 Unexecuted instantiation: bltinmodule.c:write_u32 Unexecuted instantiation: ceval.c:write_u32 Unexecuted instantiation: codecs.c:write_u32 Unexecuted instantiation: compile.c:write_u32 Unexecuted instantiation: context.c:write_u32 Unexecuted instantiation: errors.c:write_u32 Unexecuted instantiation: frame.c:write_u32 Unexecuted instantiation: frozenmain.c:write_u32 Unexecuted instantiation: getargs.c:write_u32 Unexecuted instantiation: hamt.c:write_u32 Unexecuted instantiation: import.c:write_u32 Unexecuted instantiation: importdl.c:write_u32 Unexecuted instantiation: initconfig.c:write_u32 Unexecuted instantiation: marshal.c:write_u32 Unexecuted instantiation: mystrtoul.c:write_u32 Unexecuted instantiation: preconfig.c:write_u32 Unexecuted instantiation: pylifecycle.c:write_u32 Unexecuted instantiation: pystate.c:write_u32 Unexecuted instantiation: pythonrun.c:write_u32 Line | Count | Source | 330 | { | 331 | p[0] = (uint16_t)(val >> 0); | 332 | p[1] = (uint16_t)(val >> 16); | 333 | } |
Unexecuted instantiation: symtable.c:write_u32 Unexecuted instantiation: sysmodule.c:write_u32 Unexecuted instantiation: thread.c:write_u32 Unexecuted instantiation: traceback.c:write_u32 Unexecuted instantiation: formatter_unicode.c:write_u32 Unexecuted instantiation: fileutils.c:write_u32 Unexecuted instantiation: suggestions.c:write_u32 Unexecuted instantiation: dynload_shlib.c:write_u32 Unexecuted instantiation: main.c:write_u32 Unexecuted instantiation: gcmodule.c:write_u32 Unexecuted instantiation: atexitmodule.c:write_u32 Unexecuted instantiation: faulthandler.c:write_u32 Unexecuted instantiation: posixmodule.c:write_u32 Unexecuted instantiation: signalmodule.c:write_u32 Unexecuted instantiation: _tracemalloc.c:write_u32 Unexecuted instantiation: _collectionsmodule.c:write_u32 Unexecuted instantiation: _iomodule.c:write_u32 Unexecuted instantiation: iobase.c:write_u32 Unexecuted instantiation: fileio.c:write_u32 Unexecuted instantiation: bytesio.c:write_u32 Unexecuted instantiation: bufferedio.c:write_u32 Unexecuted instantiation: textio.c:write_u32 Unexecuted instantiation: stringio.c:write_u32 Unexecuted instantiation: itertoolsmodule.c:write_u32 Unexecuted instantiation: sre.c:write_u32 Unexecuted instantiation: _threadmodule.c:write_u32 Unexecuted instantiation: timemodule.c:write_u32 Unexecuted instantiation: _weakref.c:write_u32 Unexecuted instantiation: _abc.c:write_u32 Unexecuted instantiation: _functoolsmodule.c:write_u32 Unexecuted instantiation: _operator.c:write_u32 Unexecuted instantiation: deepfreeze.c:write_u32 |
334 | |
335 | static inline void |
336 | write_u64(uint16_t *p, uint64_t val) |
337 | { |
338 | p[0] = (uint16_t)(val >> 0); |
339 | p[1] = (uint16_t)(val >> 16); |
340 | p[2] = (uint16_t)(val >> 32); |
341 | p[3] = (uint16_t)(val >> 48); |
342 | } Unexecuted instantiation: myreadline.c:write_u64 Unexecuted instantiation: tokenizer.c:write_u64 Unexecuted instantiation: abstract.c:write_u64 Unexecuted instantiation: boolobject.c:write_u64 Unexecuted instantiation: bytearrayobject.c:write_u64 Unexecuted instantiation: bytesobject.c:write_u64 Unexecuted instantiation: call.c:write_u64 Unexecuted instantiation: cellobject.c:write_u64 Unexecuted instantiation: classobject.c:write_u64 Unexecuted instantiation: codeobject.c:write_u64 Unexecuted instantiation: complexobject.c:write_u64 Unexecuted instantiation: descrobject.c:write_u64 Unexecuted instantiation: enumobject.c:write_u64 Unexecuted instantiation: exceptions.c:write_u64 Unexecuted instantiation: genericaliasobject.c:write_u64 Unexecuted instantiation: genobject.c:write_u64 Unexecuted instantiation: fileobject.c:write_u64 Unexecuted instantiation: floatobject.c:write_u64 Unexecuted instantiation: frameobject.c:write_u64 Unexecuted instantiation: funcobject.c:write_u64 Unexecuted instantiation: interpreteridobject.c:write_u64 Unexecuted instantiation: iterobject.c:write_u64 Unexecuted instantiation: listobject.c:write_u64 Unexecuted instantiation: longobject.c:write_u64 Unexecuted instantiation: dictobject.c:write_u64 Unexecuted instantiation: odictobject.c:write_u64 Unexecuted instantiation: memoryobject.c:write_u64 Unexecuted instantiation: methodobject.c:write_u64 Unexecuted instantiation: moduleobject.c:write_u64 Unexecuted instantiation: object.c:write_u64 Unexecuted instantiation: obmalloc.c:write_u64 Unexecuted instantiation: rangeobject.c:write_u64 Unexecuted instantiation: setobject.c:write_u64 Unexecuted instantiation: sliceobject.c:write_u64 Unexecuted instantiation: structseq.c:write_u64 Unexecuted instantiation: tupleobject.c:write_u64 Unexecuted instantiation: typeobject.c:write_u64 Unexecuted instantiation: unicodeobject.c:write_u64 Unexecuted instantiation: unionobject.c:write_u64 Unexecuted instantiation: weakrefobject.c:write_u64 Unexecuted instantiation: _warnings.c:write_u64 Unexecuted instantiation: Python-ast.c:write_u64 Unexecuted instantiation: ast.c:write_u64 Unexecuted instantiation: ast_opt.c:write_u64 Unexecuted instantiation: ast_unparse.c:write_u64 Unexecuted instantiation: bltinmodule.c:write_u64 Unexecuted instantiation: ceval.c:write_u64 Unexecuted instantiation: codecs.c:write_u64 Unexecuted instantiation: compile.c:write_u64 Unexecuted instantiation: context.c:write_u64 Unexecuted instantiation: errors.c:write_u64 Unexecuted instantiation: frame.c:write_u64 Unexecuted instantiation: frozenmain.c:write_u64 Unexecuted instantiation: getargs.c:write_u64 Unexecuted instantiation: hamt.c:write_u64 Unexecuted instantiation: import.c:write_u64 Unexecuted instantiation: importdl.c:write_u64 Unexecuted instantiation: initconfig.c:write_u64 Unexecuted instantiation: marshal.c:write_u64 Unexecuted instantiation: mystrtoul.c:write_u64 Unexecuted instantiation: preconfig.c:write_u64 Unexecuted instantiation: pylifecycle.c:write_u64 Unexecuted instantiation: pystate.c:write_u64 Unexecuted instantiation: pythonrun.c:write_u64 Line | Count | Source | 337 | { | 338 | p[0] = (uint16_t)(val >> 0); | 339 | p[1] = (uint16_t)(val >> 16); | 340 | p[2] = (uint16_t)(val >> 32); | 341 | p[3] = (uint16_t)(val >> 48); | 342 | } |
Unexecuted instantiation: symtable.c:write_u64 Unexecuted instantiation: sysmodule.c:write_u64 Unexecuted instantiation: thread.c:write_u64 Unexecuted instantiation: traceback.c:write_u64 Unexecuted instantiation: formatter_unicode.c:write_u64 Unexecuted instantiation: fileutils.c:write_u64 Unexecuted instantiation: suggestions.c:write_u64 Unexecuted instantiation: dynload_shlib.c:write_u64 Unexecuted instantiation: main.c:write_u64 Unexecuted instantiation: gcmodule.c:write_u64 Unexecuted instantiation: atexitmodule.c:write_u64 Unexecuted instantiation: faulthandler.c:write_u64 Unexecuted instantiation: posixmodule.c:write_u64 Unexecuted instantiation: signalmodule.c:write_u64 Unexecuted instantiation: _tracemalloc.c:write_u64 Unexecuted instantiation: _collectionsmodule.c:write_u64 Unexecuted instantiation: _iomodule.c:write_u64 Unexecuted instantiation: iobase.c:write_u64 Unexecuted instantiation: fileio.c:write_u64 Unexecuted instantiation: bytesio.c:write_u64 Unexecuted instantiation: bufferedio.c:write_u64 Unexecuted instantiation: textio.c:write_u64 Unexecuted instantiation: stringio.c:write_u64 Unexecuted instantiation: itertoolsmodule.c:write_u64 Unexecuted instantiation: sre.c:write_u64 Unexecuted instantiation: _threadmodule.c:write_u64 Unexecuted instantiation: timemodule.c:write_u64 Unexecuted instantiation: _weakref.c:write_u64 Unexecuted instantiation: _abc.c:write_u64 Unexecuted instantiation: _functoolsmodule.c:write_u64 Unexecuted instantiation: _operator.c:write_u64 Unexecuted instantiation: deepfreeze.c:write_u64 |
343 | |
344 | static inline uint32_t |
345 | read_u32(uint16_t *p) |
346 | { |
347 | uint32_t val = 0; |
348 | val |= (uint32_t)p[0] << 0; |
349 | val |= (uint32_t)p[1] << 16; |
350 | return val; |
351 | } Unexecuted instantiation: myreadline.c:read_u32 Unexecuted instantiation: tokenizer.c:read_u32 Unexecuted instantiation: abstract.c:read_u32 Unexecuted instantiation: boolobject.c:read_u32 Unexecuted instantiation: bytearrayobject.c:read_u32 Unexecuted instantiation: bytesobject.c:read_u32 Unexecuted instantiation: call.c:read_u32 Unexecuted instantiation: cellobject.c:read_u32 Unexecuted instantiation: classobject.c:read_u32 Unexecuted instantiation: codeobject.c:read_u32 Unexecuted instantiation: complexobject.c:read_u32 Unexecuted instantiation: descrobject.c:read_u32 Unexecuted instantiation: enumobject.c:read_u32 Unexecuted instantiation: exceptions.c:read_u32 Unexecuted instantiation: genericaliasobject.c:read_u32 Unexecuted instantiation: genobject.c:read_u32 Unexecuted instantiation: fileobject.c:read_u32 Unexecuted instantiation: floatobject.c:read_u32 Unexecuted instantiation: frameobject.c:read_u32 Unexecuted instantiation: funcobject.c:read_u32 Unexecuted instantiation: interpreteridobject.c:read_u32 Unexecuted instantiation: iterobject.c:read_u32 Unexecuted instantiation: listobject.c:read_u32 Unexecuted instantiation: longobject.c:read_u32 Unexecuted instantiation: dictobject.c:read_u32 Unexecuted instantiation: odictobject.c:read_u32 Unexecuted instantiation: memoryobject.c:read_u32 Unexecuted instantiation: methodobject.c:read_u32 Unexecuted instantiation: moduleobject.c:read_u32 Unexecuted instantiation: object.c:read_u32 Unexecuted instantiation: obmalloc.c:read_u32 Unexecuted instantiation: rangeobject.c:read_u32 Unexecuted instantiation: setobject.c:read_u32 Unexecuted instantiation: sliceobject.c:read_u32 Unexecuted instantiation: structseq.c:read_u32 Unexecuted instantiation: tupleobject.c:read_u32 Unexecuted instantiation: typeobject.c:read_u32 Unexecuted instantiation: unicodeobject.c:read_u32 Unexecuted instantiation: unionobject.c:read_u32 Unexecuted instantiation: weakrefobject.c:read_u32 Unexecuted instantiation: _warnings.c:read_u32 Unexecuted instantiation: Python-ast.c:read_u32 Unexecuted instantiation: ast.c:read_u32 Unexecuted instantiation: ast_opt.c:read_u32 Unexecuted instantiation: ast_unparse.c:read_u32 Unexecuted instantiation: bltinmodule.c:read_u32 Line | Count | Source | 346 | { | 347 | uint32_t val = 0; | 348 | val |= (uint32_t)p[0] << 0; | 349 | val |= (uint32_t)p[1] << 16; | 350 | return val; | 351 | } |
Unexecuted instantiation: codecs.c:read_u32 Unexecuted instantiation: compile.c:read_u32 Unexecuted instantiation: context.c:read_u32 Unexecuted instantiation: errors.c:read_u32 Unexecuted instantiation: frame.c:read_u32 Unexecuted instantiation: frozenmain.c:read_u32 Unexecuted instantiation: getargs.c:read_u32 Unexecuted instantiation: hamt.c:read_u32 Unexecuted instantiation: import.c:read_u32 Unexecuted instantiation: importdl.c:read_u32 Unexecuted instantiation: initconfig.c:read_u32 Unexecuted instantiation: marshal.c:read_u32 Unexecuted instantiation: mystrtoul.c:read_u32 Unexecuted instantiation: preconfig.c:read_u32 Unexecuted instantiation: pylifecycle.c:read_u32 Unexecuted instantiation: pystate.c:read_u32 Unexecuted instantiation: pythonrun.c:read_u32 Unexecuted instantiation: specialize.c:read_u32 Unexecuted instantiation: symtable.c:read_u32 Unexecuted instantiation: sysmodule.c:read_u32 Unexecuted instantiation: thread.c:read_u32 Unexecuted instantiation: traceback.c:read_u32 Unexecuted instantiation: formatter_unicode.c:read_u32 Unexecuted instantiation: fileutils.c:read_u32 Unexecuted instantiation: suggestions.c:read_u32 Unexecuted instantiation: dynload_shlib.c:read_u32 Unexecuted instantiation: main.c:read_u32 Unexecuted instantiation: gcmodule.c:read_u32 Unexecuted instantiation: atexitmodule.c:read_u32 Unexecuted instantiation: faulthandler.c:read_u32 Unexecuted instantiation: posixmodule.c:read_u32 Unexecuted instantiation: signalmodule.c:read_u32 Unexecuted instantiation: _tracemalloc.c:read_u32 Unexecuted instantiation: _collectionsmodule.c:read_u32 Unexecuted instantiation: _iomodule.c:read_u32 Unexecuted instantiation: iobase.c:read_u32 Unexecuted instantiation: fileio.c:read_u32 Unexecuted instantiation: bytesio.c:read_u32 Unexecuted instantiation: bufferedio.c:read_u32 Unexecuted instantiation: textio.c:read_u32 Unexecuted instantiation: stringio.c:read_u32 Unexecuted instantiation: itertoolsmodule.c:read_u32 Unexecuted instantiation: sre.c:read_u32 Unexecuted instantiation: _threadmodule.c:read_u32 Unexecuted instantiation: timemodule.c:read_u32 Unexecuted instantiation: _weakref.c:read_u32 Unexecuted instantiation: _abc.c:read_u32 Unexecuted instantiation: _functoolsmodule.c:read_u32 Unexecuted instantiation: _operator.c:read_u32 Unexecuted instantiation: deepfreeze.c:read_u32 |
352 | |
353 | static inline uint64_t |
354 | read_u64(uint16_t *p) |
355 | { |
356 | uint64_t val = 0; |
357 | val |= (uint64_t)p[0] << 0; |
358 | val |= (uint64_t)p[1] << 16; |
359 | val |= (uint64_t)p[2] << 32; |
360 | val |= (uint64_t)p[3] << 48; |
361 | return val; |
362 | } Unexecuted instantiation: myreadline.c:read_u64 Unexecuted instantiation: tokenizer.c:read_u64 Unexecuted instantiation: abstract.c:read_u64 Unexecuted instantiation: boolobject.c:read_u64 Unexecuted instantiation: bytearrayobject.c:read_u64 Unexecuted instantiation: bytesobject.c:read_u64 Unexecuted instantiation: call.c:read_u64 Unexecuted instantiation: cellobject.c:read_u64 Unexecuted instantiation: classobject.c:read_u64 Unexecuted instantiation: codeobject.c:read_u64 Unexecuted instantiation: complexobject.c:read_u64 Unexecuted instantiation: descrobject.c:read_u64 Unexecuted instantiation: enumobject.c:read_u64 Unexecuted instantiation: exceptions.c:read_u64 Unexecuted instantiation: genericaliasobject.c:read_u64 Unexecuted instantiation: genobject.c:read_u64 Unexecuted instantiation: fileobject.c:read_u64 Unexecuted instantiation: floatobject.c:read_u64 Unexecuted instantiation: frameobject.c:read_u64 Unexecuted instantiation: funcobject.c:read_u64 Unexecuted instantiation: interpreteridobject.c:read_u64 Unexecuted instantiation: iterobject.c:read_u64 Unexecuted instantiation: listobject.c:read_u64 Unexecuted instantiation: longobject.c:read_u64 Unexecuted instantiation: dictobject.c:read_u64 Unexecuted instantiation: odictobject.c:read_u64 Unexecuted instantiation: memoryobject.c:read_u64 Unexecuted instantiation: methodobject.c:read_u64 Unexecuted instantiation: moduleobject.c:read_u64 Unexecuted instantiation: object.c:read_u64 Unexecuted instantiation: obmalloc.c:read_u64 Unexecuted instantiation: rangeobject.c:read_u64 Unexecuted instantiation: setobject.c:read_u64 Unexecuted instantiation: sliceobject.c:read_u64 Unexecuted instantiation: structseq.c:read_u64 Unexecuted instantiation: tupleobject.c:read_u64 Unexecuted instantiation: typeobject.c:read_u64 Unexecuted instantiation: unicodeobject.c:read_u64 Unexecuted instantiation: unionobject.c:read_u64 Unexecuted instantiation: weakrefobject.c:read_u64 Unexecuted instantiation: _warnings.c:read_u64 Unexecuted instantiation: Python-ast.c:read_u64 Unexecuted instantiation: ast.c:read_u64 Unexecuted instantiation: ast_opt.c:read_u64 Unexecuted instantiation: ast_unparse.c:read_u64 Unexecuted instantiation: bltinmodule.c:read_u64 Line | Count | Source | 355 | { | 356 | uint64_t val = 0; | 357 | val |= (uint64_t)p[0] << 0; | 358 | val |= (uint64_t)p[1] << 16; | 359 | val |= (uint64_t)p[2] << 32; | 360 | val |= (uint64_t)p[3] << 48; | 361 | return val; | 362 | } |
Unexecuted instantiation: codecs.c:read_u64 Unexecuted instantiation: compile.c:read_u64 Unexecuted instantiation: context.c:read_u64 Unexecuted instantiation: errors.c:read_u64 Unexecuted instantiation: frame.c:read_u64 Unexecuted instantiation: frozenmain.c:read_u64 Unexecuted instantiation: getargs.c:read_u64 Unexecuted instantiation: hamt.c:read_u64 Unexecuted instantiation: import.c:read_u64 Unexecuted instantiation: importdl.c:read_u64 Unexecuted instantiation: initconfig.c:read_u64 Unexecuted instantiation: marshal.c:read_u64 Unexecuted instantiation: mystrtoul.c:read_u64 Unexecuted instantiation: preconfig.c:read_u64 Unexecuted instantiation: pylifecycle.c:read_u64 Unexecuted instantiation: pystate.c:read_u64 Unexecuted instantiation: pythonrun.c:read_u64 Unexecuted instantiation: specialize.c:read_u64 Unexecuted instantiation: symtable.c:read_u64 Unexecuted instantiation: sysmodule.c:read_u64 Unexecuted instantiation: thread.c:read_u64 Unexecuted instantiation: traceback.c:read_u64 Unexecuted instantiation: formatter_unicode.c:read_u64 Unexecuted instantiation: fileutils.c:read_u64 Unexecuted instantiation: suggestions.c:read_u64 Unexecuted instantiation: dynload_shlib.c:read_u64 Unexecuted instantiation: main.c:read_u64 Unexecuted instantiation: gcmodule.c:read_u64 Unexecuted instantiation: atexitmodule.c:read_u64 Unexecuted instantiation: faulthandler.c:read_u64 Unexecuted instantiation: posixmodule.c:read_u64 Unexecuted instantiation: signalmodule.c:read_u64 Unexecuted instantiation: _tracemalloc.c:read_u64 Unexecuted instantiation: _collectionsmodule.c:read_u64 Unexecuted instantiation: _iomodule.c:read_u64 Unexecuted instantiation: iobase.c:read_u64 Unexecuted instantiation: fileio.c:read_u64 Unexecuted instantiation: bytesio.c:read_u64 Unexecuted instantiation: bufferedio.c:read_u64 Unexecuted instantiation: textio.c:read_u64 Unexecuted instantiation: stringio.c:read_u64 Unexecuted instantiation: itertoolsmodule.c:read_u64 Unexecuted instantiation: sre.c:read_u64 Unexecuted instantiation: _threadmodule.c:read_u64 Unexecuted instantiation: timemodule.c:read_u64 Unexecuted instantiation: _weakref.c:read_u64 Unexecuted instantiation: _abc.c:read_u64 Unexecuted instantiation: _functoolsmodule.c:read_u64 Unexecuted instantiation: _operator.c:read_u64 Unexecuted instantiation: deepfreeze.c:read_u64 |
363 | |
364 | #endif |
365 | |
366 | static inline void |
367 | write_obj(uint16_t *p, PyObject *obj) |
368 | { |
369 | uintptr_t val = (uintptr_t)obj; |
370 | #if SIZEOF_VOID_P == 8 |
371 | write_u64(p, val); |
372 | #elif SIZEOF_VOID_P == 4 |
373 | write_u32(p, val); |
374 | #else |
375 | #error "SIZEOF_VOID_P must be 4 or 8" |
376 | #endif |
377 | } Unexecuted instantiation: myreadline.c:write_obj Unexecuted instantiation: tokenizer.c:write_obj Unexecuted instantiation: abstract.c:write_obj Unexecuted instantiation: boolobject.c:write_obj Unexecuted instantiation: bytearrayobject.c:write_obj Unexecuted instantiation: bytesobject.c:write_obj Unexecuted instantiation: call.c:write_obj Unexecuted instantiation: cellobject.c:write_obj Unexecuted instantiation: classobject.c:write_obj Unexecuted instantiation: codeobject.c:write_obj Unexecuted instantiation: complexobject.c:write_obj Unexecuted instantiation: descrobject.c:write_obj Unexecuted instantiation: enumobject.c:write_obj Unexecuted instantiation: exceptions.c:write_obj Unexecuted instantiation: genericaliasobject.c:write_obj Unexecuted instantiation: genobject.c:write_obj Unexecuted instantiation: fileobject.c:write_obj Unexecuted instantiation: floatobject.c:write_obj Unexecuted instantiation: frameobject.c:write_obj Unexecuted instantiation: funcobject.c:write_obj Unexecuted instantiation: interpreteridobject.c:write_obj Unexecuted instantiation: iterobject.c:write_obj Unexecuted instantiation: listobject.c:write_obj Unexecuted instantiation: longobject.c:write_obj Unexecuted instantiation: dictobject.c:write_obj Unexecuted instantiation: odictobject.c:write_obj Unexecuted instantiation: memoryobject.c:write_obj Unexecuted instantiation: methodobject.c:write_obj Unexecuted instantiation: moduleobject.c:write_obj Unexecuted instantiation: object.c:write_obj Unexecuted instantiation: obmalloc.c:write_obj Unexecuted instantiation: rangeobject.c:write_obj Unexecuted instantiation: setobject.c:write_obj Unexecuted instantiation: sliceobject.c:write_obj Unexecuted instantiation: structseq.c:write_obj Unexecuted instantiation: tupleobject.c:write_obj Unexecuted instantiation: typeobject.c:write_obj Unexecuted instantiation: unicodeobject.c:write_obj Unexecuted instantiation: unionobject.c:write_obj Unexecuted instantiation: weakrefobject.c:write_obj Unexecuted instantiation: _warnings.c:write_obj Unexecuted instantiation: Python-ast.c:write_obj Unexecuted instantiation: ast.c:write_obj Unexecuted instantiation: ast_opt.c:write_obj Unexecuted instantiation: ast_unparse.c:write_obj Unexecuted instantiation: bltinmodule.c:write_obj Unexecuted instantiation: ceval.c:write_obj Unexecuted instantiation: codecs.c:write_obj Unexecuted instantiation: compile.c:write_obj Unexecuted instantiation: context.c:write_obj Unexecuted instantiation: errors.c:write_obj Unexecuted instantiation: frame.c:write_obj Unexecuted instantiation: frozenmain.c:write_obj Unexecuted instantiation: getargs.c:write_obj Unexecuted instantiation: hamt.c:write_obj Unexecuted instantiation: import.c:write_obj Unexecuted instantiation: importdl.c:write_obj Unexecuted instantiation: initconfig.c:write_obj Unexecuted instantiation: marshal.c:write_obj Unexecuted instantiation: mystrtoul.c:write_obj Unexecuted instantiation: preconfig.c:write_obj Unexecuted instantiation: pylifecycle.c:write_obj Unexecuted instantiation: pystate.c:write_obj Unexecuted instantiation: pythonrun.c:write_obj Line | Count | Source | 368 | { | 369 | uintptr_t val = (uintptr_t)obj; | 370 | #if SIZEOF_VOID_P == 8 | 371 | write_u64(p, val); | 372 | #elif SIZEOF_VOID_P == 4 | 373 | write_u32(p, val); | 374 | #else | 375 | #error "SIZEOF_VOID_P must be 4 or 8" | 376 | #endif | 377 | } |
Unexecuted instantiation: symtable.c:write_obj Unexecuted instantiation: sysmodule.c:write_obj Unexecuted instantiation: thread.c:write_obj Unexecuted instantiation: traceback.c:write_obj Unexecuted instantiation: formatter_unicode.c:write_obj Unexecuted instantiation: fileutils.c:write_obj Unexecuted instantiation: suggestions.c:write_obj Unexecuted instantiation: dynload_shlib.c:write_obj Unexecuted instantiation: main.c:write_obj Unexecuted instantiation: gcmodule.c:write_obj Unexecuted instantiation: atexitmodule.c:write_obj Unexecuted instantiation: faulthandler.c:write_obj Unexecuted instantiation: posixmodule.c:write_obj Unexecuted instantiation: signalmodule.c:write_obj Unexecuted instantiation: _tracemalloc.c:write_obj Unexecuted instantiation: _collectionsmodule.c:write_obj Unexecuted instantiation: _iomodule.c:write_obj Unexecuted instantiation: iobase.c:write_obj Unexecuted instantiation: fileio.c:write_obj Unexecuted instantiation: bytesio.c:write_obj Unexecuted instantiation: bufferedio.c:write_obj Unexecuted instantiation: textio.c:write_obj Unexecuted instantiation: stringio.c:write_obj Unexecuted instantiation: itertoolsmodule.c:write_obj Unexecuted instantiation: sre.c:write_obj Unexecuted instantiation: _threadmodule.c:write_obj Unexecuted instantiation: timemodule.c:write_obj Unexecuted instantiation: _weakref.c:write_obj Unexecuted instantiation: _abc.c:write_obj Unexecuted instantiation: _functoolsmodule.c:write_obj Unexecuted instantiation: _operator.c:write_obj Unexecuted instantiation: deepfreeze.c:write_obj |
378 | |
379 | static inline PyObject * |
380 | read_obj(uint16_t *p) |
381 | { |
382 | uintptr_t val; |
383 | #if SIZEOF_VOID_P == 8 |
384 | val = read_u64(p); |
385 | #elif SIZEOF_VOID_P == 4 |
386 | val = read_u32(p); |
387 | #else |
388 | #error "SIZEOF_VOID_P must be 4 or 8" |
389 | #endif |
390 | return (PyObject *)val; |
391 | } Unexecuted instantiation: myreadline.c:read_obj Unexecuted instantiation: tokenizer.c:read_obj Unexecuted instantiation: abstract.c:read_obj Unexecuted instantiation: boolobject.c:read_obj Unexecuted instantiation: bytearrayobject.c:read_obj Unexecuted instantiation: bytesobject.c:read_obj Unexecuted instantiation: call.c:read_obj Unexecuted instantiation: cellobject.c:read_obj Unexecuted instantiation: classobject.c:read_obj Unexecuted instantiation: codeobject.c:read_obj Unexecuted instantiation: complexobject.c:read_obj Unexecuted instantiation: descrobject.c:read_obj Unexecuted instantiation: enumobject.c:read_obj Unexecuted instantiation: exceptions.c:read_obj Unexecuted instantiation: genericaliasobject.c:read_obj Unexecuted instantiation: genobject.c:read_obj Unexecuted instantiation: fileobject.c:read_obj Unexecuted instantiation: floatobject.c:read_obj Unexecuted instantiation: frameobject.c:read_obj Unexecuted instantiation: funcobject.c:read_obj Unexecuted instantiation: interpreteridobject.c:read_obj Unexecuted instantiation: iterobject.c:read_obj Unexecuted instantiation: listobject.c:read_obj Unexecuted instantiation: longobject.c:read_obj Unexecuted instantiation: dictobject.c:read_obj Unexecuted instantiation: odictobject.c:read_obj Unexecuted instantiation: memoryobject.c:read_obj Unexecuted instantiation: methodobject.c:read_obj Unexecuted instantiation: moduleobject.c:read_obj Unexecuted instantiation: object.c:read_obj Unexecuted instantiation: obmalloc.c:read_obj Unexecuted instantiation: rangeobject.c:read_obj Unexecuted instantiation: setobject.c:read_obj Unexecuted instantiation: sliceobject.c:read_obj Unexecuted instantiation: structseq.c:read_obj Unexecuted instantiation: tupleobject.c:read_obj Unexecuted instantiation: typeobject.c:read_obj Unexecuted instantiation: unicodeobject.c:read_obj Unexecuted instantiation: unionobject.c:read_obj Unexecuted instantiation: weakrefobject.c:read_obj Unexecuted instantiation: _warnings.c:read_obj Unexecuted instantiation: Python-ast.c:read_obj Unexecuted instantiation: ast.c:read_obj Unexecuted instantiation: ast_opt.c:read_obj Unexecuted instantiation: ast_unparse.c:read_obj Unexecuted instantiation: bltinmodule.c:read_obj Line | Count | Source | 381 | { | 382 | uintptr_t val; | 383 | #if SIZEOF_VOID_P == 8 | 384 | val = read_u64(p); | 385 | #elif SIZEOF_VOID_P == 4 | 386 | val = read_u32(p); | 387 | #else | 388 | #error "SIZEOF_VOID_P must be 4 or 8" | 389 | #endif | 390 | return (PyObject *)val; | 391 | } |
Unexecuted instantiation: codecs.c:read_obj Unexecuted instantiation: compile.c:read_obj Unexecuted instantiation: context.c:read_obj Unexecuted instantiation: errors.c:read_obj Unexecuted instantiation: frame.c:read_obj Unexecuted instantiation: frozenmain.c:read_obj Unexecuted instantiation: getargs.c:read_obj Unexecuted instantiation: hamt.c:read_obj Unexecuted instantiation: import.c:read_obj Unexecuted instantiation: importdl.c:read_obj Unexecuted instantiation: initconfig.c:read_obj Unexecuted instantiation: marshal.c:read_obj Unexecuted instantiation: mystrtoul.c:read_obj Unexecuted instantiation: preconfig.c:read_obj Unexecuted instantiation: pylifecycle.c:read_obj Unexecuted instantiation: pystate.c:read_obj Unexecuted instantiation: pythonrun.c:read_obj Unexecuted instantiation: specialize.c:read_obj Unexecuted instantiation: symtable.c:read_obj Unexecuted instantiation: sysmodule.c:read_obj Unexecuted instantiation: thread.c:read_obj Unexecuted instantiation: traceback.c:read_obj Unexecuted instantiation: formatter_unicode.c:read_obj Unexecuted instantiation: fileutils.c:read_obj Unexecuted instantiation: suggestions.c:read_obj Unexecuted instantiation: dynload_shlib.c:read_obj Unexecuted instantiation: main.c:read_obj Unexecuted instantiation: gcmodule.c:read_obj Unexecuted instantiation: atexitmodule.c:read_obj Unexecuted instantiation: faulthandler.c:read_obj Unexecuted instantiation: posixmodule.c:read_obj Unexecuted instantiation: signalmodule.c:read_obj Unexecuted instantiation: _tracemalloc.c:read_obj Unexecuted instantiation: _collectionsmodule.c:read_obj Unexecuted instantiation: _iomodule.c:read_obj Unexecuted instantiation: iobase.c:read_obj Unexecuted instantiation: fileio.c:read_obj Unexecuted instantiation: bytesio.c:read_obj Unexecuted instantiation: bufferedio.c:read_obj Unexecuted instantiation: textio.c:read_obj Unexecuted instantiation: stringio.c:read_obj Unexecuted instantiation: itertoolsmodule.c:read_obj Unexecuted instantiation: sre.c:read_obj Unexecuted instantiation: _threadmodule.c:read_obj Unexecuted instantiation: timemodule.c:read_obj Unexecuted instantiation: _weakref.c:read_obj Unexecuted instantiation: _abc.c:read_obj Unexecuted instantiation: _functoolsmodule.c:read_obj Unexecuted instantiation: _operator.c:read_obj Unexecuted instantiation: deepfreeze.c:read_obj |
392 | |
393 | static inline int |
394 | write_varint(uint8_t *ptr, unsigned int val) |
395 | { |
396 | int written = 1; |
397 | while (val >= 64) { Branch (397:12): [True: 2.46k, False: 112k]
Branch (397:12): [True: 2.02M, False: 3.67M]
|
398 | *ptr++ = 64 | (val & 63); |
399 | val >>= 6; |
400 | written++; |
401 | } |
402 | *ptr = val; |
403 | return written; |
404 | } Unexecuted instantiation: myreadline.c:write_varint Unexecuted instantiation: tokenizer.c:write_varint Unexecuted instantiation: abstract.c:write_varint Unexecuted instantiation: boolobject.c:write_varint Unexecuted instantiation: bytearrayobject.c:write_varint Unexecuted instantiation: bytesobject.c:write_varint Unexecuted instantiation: call.c:write_varint Unexecuted instantiation: cellobject.c:write_varint Unexecuted instantiation: classobject.c:write_varint codeobject.c:write_varint Line | Count | Source | 395 | { | 396 | int written = 1; | 397 | while (val >= 64) { Branch (397:12): [True: 2.46k, False: 112k]
| 398 | *ptr++ = 64 | (val & 63); | 399 | val >>= 6; | 400 | written++; | 401 | } | 402 | *ptr = val; | 403 | return written; | 404 | } |
Unexecuted instantiation: complexobject.c:write_varint Unexecuted instantiation: descrobject.c:write_varint Unexecuted instantiation: enumobject.c:write_varint Unexecuted instantiation: exceptions.c:write_varint Unexecuted instantiation: genericaliasobject.c:write_varint Unexecuted instantiation: genobject.c:write_varint Unexecuted instantiation: fileobject.c:write_varint Unexecuted instantiation: floatobject.c:write_varint Unexecuted instantiation: frameobject.c:write_varint Unexecuted instantiation: funcobject.c:write_varint Unexecuted instantiation: interpreteridobject.c:write_varint Unexecuted instantiation: iterobject.c:write_varint Unexecuted instantiation: listobject.c:write_varint Unexecuted instantiation: longobject.c:write_varint Unexecuted instantiation: dictobject.c:write_varint Unexecuted instantiation: odictobject.c:write_varint Unexecuted instantiation: memoryobject.c:write_varint Unexecuted instantiation: methodobject.c:write_varint Unexecuted instantiation: moduleobject.c:write_varint Unexecuted instantiation: object.c:write_varint Unexecuted instantiation: obmalloc.c:write_varint Unexecuted instantiation: rangeobject.c:write_varint Unexecuted instantiation: setobject.c:write_varint Unexecuted instantiation: sliceobject.c:write_varint Unexecuted instantiation: structseq.c:write_varint Unexecuted instantiation: tupleobject.c:write_varint Unexecuted instantiation: typeobject.c:write_varint Unexecuted instantiation: unicodeobject.c:write_varint Unexecuted instantiation: unionobject.c:write_varint Unexecuted instantiation: weakrefobject.c:write_varint Unexecuted instantiation: _warnings.c:write_varint Unexecuted instantiation: Python-ast.c:write_varint Unexecuted instantiation: ast.c:write_varint Unexecuted instantiation: ast_opt.c:write_varint Unexecuted instantiation: ast_unparse.c:write_varint Unexecuted instantiation: bltinmodule.c:write_varint Unexecuted instantiation: ceval.c:write_varint Unexecuted instantiation: codecs.c:write_varint Line | Count | Source | 395 | { | 396 | int written = 1; | 397 | while (val >= 64) { Branch (397:12): [True: 2.02M, False: 3.67M]
| 398 | *ptr++ = 64 | (val & 63); | 399 | val >>= 6; | 400 | written++; | 401 | } | 402 | *ptr = val; | 403 | return written; | 404 | } |
Unexecuted instantiation: context.c:write_varint Unexecuted instantiation: errors.c:write_varint Unexecuted instantiation: frame.c:write_varint Unexecuted instantiation: frozenmain.c:write_varint Unexecuted instantiation: getargs.c:write_varint Unexecuted instantiation: hamt.c:write_varint Unexecuted instantiation: import.c:write_varint Unexecuted instantiation: importdl.c:write_varint Unexecuted instantiation: initconfig.c:write_varint Unexecuted instantiation: marshal.c:write_varint Unexecuted instantiation: mystrtoul.c:write_varint Unexecuted instantiation: preconfig.c:write_varint Unexecuted instantiation: pylifecycle.c:write_varint Unexecuted instantiation: pystate.c:write_varint Unexecuted instantiation: pythonrun.c:write_varint Unexecuted instantiation: specialize.c:write_varint Unexecuted instantiation: symtable.c:write_varint Unexecuted instantiation: sysmodule.c:write_varint Unexecuted instantiation: thread.c:write_varint Unexecuted instantiation: traceback.c:write_varint Unexecuted instantiation: formatter_unicode.c:write_varint Unexecuted instantiation: fileutils.c:write_varint Unexecuted instantiation: suggestions.c:write_varint Unexecuted instantiation: dynload_shlib.c:write_varint Unexecuted instantiation: main.c:write_varint Unexecuted instantiation: gcmodule.c:write_varint Unexecuted instantiation: atexitmodule.c:write_varint Unexecuted instantiation: faulthandler.c:write_varint Unexecuted instantiation: posixmodule.c:write_varint Unexecuted instantiation: signalmodule.c:write_varint Unexecuted instantiation: _tracemalloc.c:write_varint Unexecuted instantiation: _collectionsmodule.c:write_varint Unexecuted instantiation: _iomodule.c:write_varint Unexecuted instantiation: iobase.c:write_varint Unexecuted instantiation: fileio.c:write_varint Unexecuted instantiation: bytesio.c:write_varint Unexecuted instantiation: bufferedio.c:write_varint Unexecuted instantiation: textio.c:write_varint Unexecuted instantiation: stringio.c:write_varint Unexecuted instantiation: itertoolsmodule.c:write_varint Unexecuted instantiation: sre.c:write_varint Unexecuted instantiation: _threadmodule.c:write_varint Unexecuted instantiation: timemodule.c:write_varint Unexecuted instantiation: _weakref.c:write_varint Unexecuted instantiation: _abc.c:write_varint Unexecuted instantiation: _functoolsmodule.c:write_varint Unexecuted instantiation: _operator.c:write_varint Unexecuted instantiation: deepfreeze.c:write_varint |
405 | |
406 | static inline int |
407 | write_signed_varint(uint8_t *ptr, int val) |
408 | { |
409 | if (val < 0) { Branch (409:9): [True: 3.15k, False: 109k]
Branch (409:9): [True: 67.9k, False: 852k]
|
410 | val = ((-val)<<1) | 1; |
411 | } |
412 | else { |
413 | val = val << 1; |
414 | } |
415 | return write_varint(ptr, val); |
416 | } Unexecuted instantiation: myreadline.c:write_signed_varint Unexecuted instantiation: tokenizer.c:write_signed_varint Unexecuted instantiation: abstract.c:write_signed_varint Unexecuted instantiation: boolobject.c:write_signed_varint Unexecuted instantiation: bytearrayobject.c:write_signed_varint Unexecuted instantiation: bytesobject.c:write_signed_varint Unexecuted instantiation: call.c:write_signed_varint Unexecuted instantiation: cellobject.c:write_signed_varint Unexecuted instantiation: classobject.c:write_signed_varint codeobject.c:write_signed_varint Line | Count | Source | 408 | { | 409 | if (val < 0) { Branch (409:9): [True: 3.15k, False: 109k]
| 410 | val = ((-val)<<1) | 1; | 411 | } | 412 | else { | 413 | val = val << 1; | 414 | } | 415 | return write_varint(ptr, val); | 416 | } |
Unexecuted instantiation: complexobject.c:write_signed_varint Unexecuted instantiation: descrobject.c:write_signed_varint Unexecuted instantiation: enumobject.c:write_signed_varint Unexecuted instantiation: exceptions.c:write_signed_varint Unexecuted instantiation: genericaliasobject.c:write_signed_varint Unexecuted instantiation: genobject.c:write_signed_varint Unexecuted instantiation: fileobject.c:write_signed_varint Unexecuted instantiation: floatobject.c:write_signed_varint Unexecuted instantiation: frameobject.c:write_signed_varint Unexecuted instantiation: funcobject.c:write_signed_varint Unexecuted instantiation: interpreteridobject.c:write_signed_varint Unexecuted instantiation: iterobject.c:write_signed_varint Unexecuted instantiation: listobject.c:write_signed_varint Unexecuted instantiation: longobject.c:write_signed_varint Unexecuted instantiation: dictobject.c:write_signed_varint Unexecuted instantiation: odictobject.c:write_signed_varint Unexecuted instantiation: memoryobject.c:write_signed_varint Unexecuted instantiation: methodobject.c:write_signed_varint Unexecuted instantiation: moduleobject.c:write_signed_varint Unexecuted instantiation: object.c:write_signed_varint Unexecuted instantiation: obmalloc.c:write_signed_varint Unexecuted instantiation: rangeobject.c:write_signed_varint Unexecuted instantiation: setobject.c:write_signed_varint Unexecuted instantiation: sliceobject.c:write_signed_varint Unexecuted instantiation: structseq.c:write_signed_varint Unexecuted instantiation: tupleobject.c:write_signed_varint Unexecuted instantiation: typeobject.c:write_signed_varint Unexecuted instantiation: unicodeobject.c:write_signed_varint Unexecuted instantiation: unionobject.c:write_signed_varint Unexecuted instantiation: weakrefobject.c:write_signed_varint Unexecuted instantiation: _warnings.c:write_signed_varint Unexecuted instantiation: Python-ast.c:write_signed_varint Unexecuted instantiation: ast.c:write_signed_varint Unexecuted instantiation: ast_opt.c:write_signed_varint Unexecuted instantiation: ast_unparse.c:write_signed_varint Unexecuted instantiation: bltinmodule.c:write_signed_varint Unexecuted instantiation: ceval.c:write_signed_varint Unexecuted instantiation: codecs.c:write_signed_varint compile.c:write_signed_varint Line | Count | Source | 408 | { | 409 | if (val < 0) { Branch (409:9): [True: 67.9k, False: 852k]
| 410 | val = ((-val)<<1) | 1; | 411 | } | 412 | else { | 413 | val = val << 1; | 414 | } | 415 | return write_varint(ptr, val); | 416 | } |
Unexecuted instantiation: context.c:write_signed_varint Unexecuted instantiation: errors.c:write_signed_varint Unexecuted instantiation: frame.c:write_signed_varint Unexecuted instantiation: frozenmain.c:write_signed_varint Unexecuted instantiation: getargs.c:write_signed_varint Unexecuted instantiation: hamt.c:write_signed_varint Unexecuted instantiation: import.c:write_signed_varint Unexecuted instantiation: importdl.c:write_signed_varint Unexecuted instantiation: initconfig.c:write_signed_varint Unexecuted instantiation: marshal.c:write_signed_varint Unexecuted instantiation: mystrtoul.c:write_signed_varint Unexecuted instantiation: preconfig.c:write_signed_varint Unexecuted instantiation: pylifecycle.c:write_signed_varint Unexecuted instantiation: pystate.c:write_signed_varint Unexecuted instantiation: pythonrun.c:write_signed_varint Unexecuted instantiation: specialize.c:write_signed_varint Unexecuted instantiation: symtable.c:write_signed_varint Unexecuted instantiation: sysmodule.c:write_signed_varint Unexecuted instantiation: thread.c:write_signed_varint Unexecuted instantiation: traceback.c:write_signed_varint Unexecuted instantiation: formatter_unicode.c:write_signed_varint Unexecuted instantiation: fileutils.c:write_signed_varint Unexecuted instantiation: suggestions.c:write_signed_varint Unexecuted instantiation: dynload_shlib.c:write_signed_varint Unexecuted instantiation: main.c:write_signed_varint Unexecuted instantiation: gcmodule.c:write_signed_varint Unexecuted instantiation: atexitmodule.c:write_signed_varint Unexecuted instantiation: faulthandler.c:write_signed_varint Unexecuted instantiation: posixmodule.c:write_signed_varint Unexecuted instantiation: signalmodule.c:write_signed_varint Unexecuted instantiation: _tracemalloc.c:write_signed_varint Unexecuted instantiation: _collectionsmodule.c:write_signed_varint Unexecuted instantiation: _iomodule.c:write_signed_varint Unexecuted instantiation: iobase.c:write_signed_varint Unexecuted instantiation: fileio.c:write_signed_varint Unexecuted instantiation: bytesio.c:write_signed_varint Unexecuted instantiation: bufferedio.c:write_signed_varint Unexecuted instantiation: textio.c:write_signed_varint Unexecuted instantiation: stringio.c:write_signed_varint Unexecuted instantiation: itertoolsmodule.c:write_signed_varint Unexecuted instantiation: sre.c:write_signed_varint Unexecuted instantiation: _threadmodule.c:write_signed_varint Unexecuted instantiation: timemodule.c:write_signed_varint Unexecuted instantiation: _weakref.c:write_signed_varint Unexecuted instantiation: _abc.c:write_signed_varint Unexecuted instantiation: _functoolsmodule.c:write_signed_varint Unexecuted instantiation: _operator.c:write_signed_varint Unexecuted instantiation: deepfreeze.c:write_signed_varint |
417 | |
418 | static inline int |
419 | write_location_entry_start(uint8_t *ptr, int code, int length) |
420 | { |
421 | assert((code & 15) == code); |
422 | *ptr = 128 | (code << 3) | (length - 1); |
423 | return 1; |
424 | } Unexecuted instantiation: myreadline.c:write_location_entry_start Unexecuted instantiation: tokenizer.c:write_location_entry_start Unexecuted instantiation: abstract.c:write_location_entry_start Unexecuted instantiation: boolobject.c:write_location_entry_start Unexecuted instantiation: bytearrayobject.c:write_location_entry_start Unexecuted instantiation: bytesobject.c:write_location_entry_start Unexecuted instantiation: call.c:write_location_entry_start Unexecuted instantiation: cellobject.c:write_location_entry_start Unexecuted instantiation: classobject.c:write_location_entry_start codeobject.c:write_location_entry_start Line | Count | Source | 420 | { | 421 | assert((code & 15) == code); | 422 | *ptr = 128 | (code << 3) | (length - 1); | 423 | return 1; | 424 | } |
Unexecuted instantiation: complexobject.c:write_location_entry_start Unexecuted instantiation: descrobject.c:write_location_entry_start Unexecuted instantiation: enumobject.c:write_location_entry_start Unexecuted instantiation: exceptions.c:write_location_entry_start Unexecuted instantiation: genericaliasobject.c:write_location_entry_start Unexecuted instantiation: genobject.c:write_location_entry_start Unexecuted instantiation: fileobject.c:write_location_entry_start Unexecuted instantiation: floatobject.c:write_location_entry_start Unexecuted instantiation: frameobject.c:write_location_entry_start Unexecuted instantiation: funcobject.c:write_location_entry_start Unexecuted instantiation: interpreteridobject.c:write_location_entry_start Unexecuted instantiation: iterobject.c:write_location_entry_start Unexecuted instantiation: listobject.c:write_location_entry_start Unexecuted instantiation: longobject.c:write_location_entry_start Unexecuted instantiation: dictobject.c:write_location_entry_start Unexecuted instantiation: odictobject.c:write_location_entry_start Unexecuted instantiation: memoryobject.c:write_location_entry_start Unexecuted instantiation: methodobject.c:write_location_entry_start Unexecuted instantiation: moduleobject.c:write_location_entry_start Unexecuted instantiation: object.c:write_location_entry_start Unexecuted instantiation: obmalloc.c:write_location_entry_start Unexecuted instantiation: rangeobject.c:write_location_entry_start Unexecuted instantiation: setobject.c:write_location_entry_start Unexecuted instantiation: sliceobject.c:write_location_entry_start Unexecuted instantiation: structseq.c:write_location_entry_start Unexecuted instantiation: tupleobject.c:write_location_entry_start Unexecuted instantiation: typeobject.c:write_location_entry_start Unexecuted instantiation: unicodeobject.c:write_location_entry_start Unexecuted instantiation: unionobject.c:write_location_entry_start Unexecuted instantiation: weakrefobject.c:write_location_entry_start Unexecuted instantiation: _warnings.c:write_location_entry_start Unexecuted instantiation: Python-ast.c:write_location_entry_start Unexecuted instantiation: ast.c:write_location_entry_start Unexecuted instantiation: ast_opt.c:write_location_entry_start Unexecuted instantiation: ast_unparse.c:write_location_entry_start Unexecuted instantiation: bltinmodule.c:write_location_entry_start Unexecuted instantiation: ceval.c:write_location_entry_start Unexecuted instantiation: codecs.c:write_location_entry_start compile.c:write_location_entry_start Line | Count | Source | 420 | { | 421 | assert((code & 15) == code); | 422 | *ptr = 128 | (code << 3) | (length - 1); | 423 | return 1; | 424 | } |
Unexecuted instantiation: context.c:write_location_entry_start Unexecuted instantiation: errors.c:write_location_entry_start Unexecuted instantiation: frame.c:write_location_entry_start Unexecuted instantiation: frozenmain.c:write_location_entry_start Unexecuted instantiation: getargs.c:write_location_entry_start Unexecuted instantiation: hamt.c:write_location_entry_start Unexecuted instantiation: import.c:write_location_entry_start Unexecuted instantiation: importdl.c:write_location_entry_start Unexecuted instantiation: initconfig.c:write_location_entry_start Unexecuted instantiation: marshal.c:write_location_entry_start Unexecuted instantiation: mystrtoul.c:write_location_entry_start Unexecuted instantiation: preconfig.c:write_location_entry_start Unexecuted instantiation: pylifecycle.c:write_location_entry_start Unexecuted instantiation: pystate.c:write_location_entry_start Unexecuted instantiation: pythonrun.c:write_location_entry_start Unexecuted instantiation: specialize.c:write_location_entry_start Unexecuted instantiation: symtable.c:write_location_entry_start Unexecuted instantiation: sysmodule.c:write_location_entry_start Unexecuted instantiation: thread.c:write_location_entry_start Unexecuted instantiation: traceback.c:write_location_entry_start Unexecuted instantiation: formatter_unicode.c:write_location_entry_start Unexecuted instantiation: fileutils.c:write_location_entry_start Unexecuted instantiation: suggestions.c:write_location_entry_start Unexecuted instantiation: dynload_shlib.c:write_location_entry_start Unexecuted instantiation: main.c:write_location_entry_start Unexecuted instantiation: gcmodule.c:write_location_entry_start Unexecuted instantiation: atexitmodule.c:write_location_entry_start Unexecuted instantiation: faulthandler.c:write_location_entry_start Unexecuted instantiation: posixmodule.c:write_location_entry_start Unexecuted instantiation: signalmodule.c:write_location_entry_start Unexecuted instantiation: _tracemalloc.c:write_location_entry_start Unexecuted instantiation: _collectionsmodule.c:write_location_entry_start Unexecuted instantiation: _iomodule.c:write_location_entry_start Unexecuted instantiation: iobase.c:write_location_entry_start Unexecuted instantiation: fileio.c:write_location_entry_start Unexecuted instantiation: bytesio.c:write_location_entry_start Unexecuted instantiation: bufferedio.c:write_location_entry_start Unexecuted instantiation: textio.c:write_location_entry_start Unexecuted instantiation: stringio.c:write_location_entry_start Unexecuted instantiation: itertoolsmodule.c:write_location_entry_start Unexecuted instantiation: sre.c:write_location_entry_start Unexecuted instantiation: _threadmodule.c:write_location_entry_start Unexecuted instantiation: timemodule.c:write_location_entry_start Unexecuted instantiation: _weakref.c:write_location_entry_start Unexecuted instantiation: _abc.c:write_location_entry_start Unexecuted instantiation: _functoolsmodule.c:write_location_entry_start Unexecuted instantiation: _operator.c:write_location_entry_start Unexecuted instantiation: deepfreeze.c:write_location_entry_start |
425 | |
426 | |
427 | /** Counters |
428 | * The first 16-bit value in each inline cache is a counter. |
429 | * When counting misses, the counter is treated as a simple unsigned value. |
430 | * |
431 | * When counting executions until the next specialization attempt, |
432 | * exponential backoff is used to reduce the number of specialization failures. |
433 | * The high 12 bits store the counter, the low 4 bits store the backoff exponent. |
434 | * On a specialization failure, the backoff exponent is incremented and the |
435 | * counter set to (2**backoff - 1). |
436 | * Backoff == 6 -> starting counter == 63, backoff == 10 -> starting counter == 1023. |
437 | */ |
438 | |
439 | /* With a 16-bit counter, we have 12 bits for the counter value, and 4 bits for the backoff */ |
440 | #define ADAPTIVE_BACKOFF_BITS 4 |
441 | /* The initial counter value is 31 == 2**ADAPTIVE_BACKOFF_START - 1 */ |
442 | #define ADAPTIVE_BACKOFF_START 5 |
443 | |
444 | #define MAX_BACKOFF_VALUE (16 - ADAPTIVE_BACKOFF_BITS) |
445 | |
446 | |
447 | static inline uint16_t |
448 | adaptive_counter_bits(int value, int backoff) { |
449 | return (value << ADAPTIVE_BACKOFF_BITS) | |
450 | (backoff & ((1<<ADAPTIVE_BACKOFF_BITS)-1)); |
451 | } Unexecuted instantiation: myreadline.c:adaptive_counter_bits Unexecuted instantiation: tokenizer.c:adaptive_counter_bits Unexecuted instantiation: abstract.c:adaptive_counter_bits Unexecuted instantiation: boolobject.c:adaptive_counter_bits Unexecuted instantiation: bytearrayobject.c:adaptive_counter_bits Unexecuted instantiation: bytesobject.c:adaptive_counter_bits Unexecuted instantiation: call.c:adaptive_counter_bits Unexecuted instantiation: cellobject.c:adaptive_counter_bits Unexecuted instantiation: classobject.c:adaptive_counter_bits Unexecuted instantiation: codeobject.c:adaptive_counter_bits Unexecuted instantiation: complexobject.c:adaptive_counter_bits Unexecuted instantiation: descrobject.c:adaptive_counter_bits Unexecuted instantiation: enumobject.c:adaptive_counter_bits Unexecuted instantiation: exceptions.c:adaptive_counter_bits Unexecuted instantiation: genericaliasobject.c:adaptive_counter_bits Unexecuted instantiation: genobject.c:adaptive_counter_bits Unexecuted instantiation: fileobject.c:adaptive_counter_bits Unexecuted instantiation: floatobject.c:adaptive_counter_bits Unexecuted instantiation: frameobject.c:adaptive_counter_bits Unexecuted instantiation: funcobject.c:adaptive_counter_bits Unexecuted instantiation: interpreteridobject.c:adaptive_counter_bits Unexecuted instantiation: iterobject.c:adaptive_counter_bits Unexecuted instantiation: listobject.c:adaptive_counter_bits Unexecuted instantiation: longobject.c:adaptive_counter_bits Unexecuted instantiation: dictobject.c:adaptive_counter_bits Unexecuted instantiation: odictobject.c:adaptive_counter_bits Unexecuted instantiation: memoryobject.c:adaptive_counter_bits Unexecuted instantiation: methodobject.c:adaptive_counter_bits Unexecuted instantiation: moduleobject.c:adaptive_counter_bits Unexecuted instantiation: object.c:adaptive_counter_bits Unexecuted instantiation: obmalloc.c:adaptive_counter_bits Unexecuted instantiation: rangeobject.c:adaptive_counter_bits Unexecuted instantiation: setobject.c:adaptive_counter_bits Unexecuted instantiation: sliceobject.c:adaptive_counter_bits Unexecuted instantiation: structseq.c:adaptive_counter_bits Unexecuted instantiation: tupleobject.c:adaptive_counter_bits Unexecuted instantiation: typeobject.c:adaptive_counter_bits Unexecuted instantiation: unicodeobject.c:adaptive_counter_bits Unexecuted instantiation: unionobject.c:adaptive_counter_bits Unexecuted instantiation: weakrefobject.c:adaptive_counter_bits Unexecuted instantiation: _warnings.c:adaptive_counter_bits Unexecuted instantiation: Python-ast.c:adaptive_counter_bits Unexecuted instantiation: ast.c:adaptive_counter_bits Unexecuted instantiation: ast_opt.c:adaptive_counter_bits Unexecuted instantiation: ast_unparse.c:adaptive_counter_bits Unexecuted instantiation: bltinmodule.c:adaptive_counter_bits ceval.c:adaptive_counter_bits Line | Count | Source | 448 | adaptive_counter_bits(int value, int backoff) { | 449 | return (value << ADAPTIVE_BACKOFF_BITS) | | 450 | (backoff & ((1<<ADAPTIVE_BACKOFF_BITS)-1)); | 451 | } |
Unexecuted instantiation: codecs.c:adaptive_counter_bits Unexecuted instantiation: compile.c:adaptive_counter_bits Unexecuted instantiation: context.c:adaptive_counter_bits Unexecuted instantiation: errors.c:adaptive_counter_bits Unexecuted instantiation: frame.c:adaptive_counter_bits Unexecuted instantiation: frozenmain.c:adaptive_counter_bits Unexecuted instantiation: getargs.c:adaptive_counter_bits Unexecuted instantiation: hamt.c:adaptive_counter_bits Unexecuted instantiation: import.c:adaptive_counter_bits Unexecuted instantiation: importdl.c:adaptive_counter_bits Unexecuted instantiation: initconfig.c:adaptive_counter_bits Unexecuted instantiation: marshal.c:adaptive_counter_bits Unexecuted instantiation: mystrtoul.c:adaptive_counter_bits Unexecuted instantiation: preconfig.c:adaptive_counter_bits Unexecuted instantiation: pylifecycle.c:adaptive_counter_bits Unexecuted instantiation: pystate.c:adaptive_counter_bits Unexecuted instantiation: pythonrun.c:adaptive_counter_bits specialize.c:adaptive_counter_bits Line | Count | Source | 448 | adaptive_counter_bits(int value, int backoff) { | 449 | return (value << ADAPTIVE_BACKOFF_BITS) | | 450 | (backoff & ((1<<ADAPTIVE_BACKOFF_BITS)-1)); | 451 | } |
Unexecuted instantiation: symtable.c:adaptive_counter_bits Unexecuted instantiation: sysmodule.c:adaptive_counter_bits Unexecuted instantiation: thread.c:adaptive_counter_bits Unexecuted instantiation: traceback.c:adaptive_counter_bits Unexecuted instantiation: formatter_unicode.c:adaptive_counter_bits Unexecuted instantiation: fileutils.c:adaptive_counter_bits Unexecuted instantiation: suggestions.c:adaptive_counter_bits Unexecuted instantiation: dynload_shlib.c:adaptive_counter_bits Unexecuted instantiation: main.c:adaptive_counter_bits Unexecuted instantiation: gcmodule.c:adaptive_counter_bits Unexecuted instantiation: atexitmodule.c:adaptive_counter_bits Unexecuted instantiation: faulthandler.c:adaptive_counter_bits Unexecuted instantiation: posixmodule.c:adaptive_counter_bits Unexecuted instantiation: signalmodule.c:adaptive_counter_bits Unexecuted instantiation: _tracemalloc.c:adaptive_counter_bits Unexecuted instantiation: _collectionsmodule.c:adaptive_counter_bits Unexecuted instantiation: _iomodule.c:adaptive_counter_bits Unexecuted instantiation: iobase.c:adaptive_counter_bits Unexecuted instantiation: fileio.c:adaptive_counter_bits Unexecuted instantiation: bytesio.c:adaptive_counter_bits Unexecuted instantiation: bufferedio.c:adaptive_counter_bits Unexecuted instantiation: textio.c:adaptive_counter_bits Unexecuted instantiation: stringio.c:adaptive_counter_bits Unexecuted instantiation: itertoolsmodule.c:adaptive_counter_bits Unexecuted instantiation: sre.c:adaptive_counter_bits Unexecuted instantiation: _threadmodule.c:adaptive_counter_bits Unexecuted instantiation: timemodule.c:adaptive_counter_bits Unexecuted instantiation: _weakref.c:adaptive_counter_bits Unexecuted instantiation: _abc.c:adaptive_counter_bits Unexecuted instantiation: _functoolsmodule.c:adaptive_counter_bits Unexecuted instantiation: _operator.c:adaptive_counter_bits Unexecuted instantiation: deepfreeze.c:adaptive_counter_bits |
452 | |
453 | static inline uint16_t |
454 | adaptive_counter_start(void) { |
455 | unsigned int value = (1 << ADAPTIVE_BACKOFF_START) - 1; |
456 | return adaptive_counter_bits(value, ADAPTIVE_BACKOFF_START); |
457 | } Unexecuted instantiation: myreadline.c:adaptive_counter_start Unexecuted instantiation: tokenizer.c:adaptive_counter_start Unexecuted instantiation: abstract.c:adaptive_counter_start Unexecuted instantiation: boolobject.c:adaptive_counter_start Unexecuted instantiation: bytearrayobject.c:adaptive_counter_start Unexecuted instantiation: bytesobject.c:adaptive_counter_start Unexecuted instantiation: call.c:adaptive_counter_start Unexecuted instantiation: cellobject.c:adaptive_counter_start Unexecuted instantiation: classobject.c:adaptive_counter_start Unexecuted instantiation: codeobject.c:adaptive_counter_start Unexecuted instantiation: complexobject.c:adaptive_counter_start Unexecuted instantiation: descrobject.c:adaptive_counter_start Unexecuted instantiation: enumobject.c:adaptive_counter_start Unexecuted instantiation: exceptions.c:adaptive_counter_start Unexecuted instantiation: genericaliasobject.c:adaptive_counter_start Unexecuted instantiation: genobject.c:adaptive_counter_start Unexecuted instantiation: fileobject.c:adaptive_counter_start Unexecuted instantiation: floatobject.c:adaptive_counter_start Unexecuted instantiation: frameobject.c:adaptive_counter_start Unexecuted instantiation: funcobject.c:adaptive_counter_start Unexecuted instantiation: interpreteridobject.c:adaptive_counter_start Unexecuted instantiation: iterobject.c:adaptive_counter_start Unexecuted instantiation: listobject.c:adaptive_counter_start Unexecuted instantiation: longobject.c:adaptive_counter_start Unexecuted instantiation: dictobject.c:adaptive_counter_start Unexecuted instantiation: odictobject.c:adaptive_counter_start Unexecuted instantiation: memoryobject.c:adaptive_counter_start Unexecuted instantiation: methodobject.c:adaptive_counter_start Unexecuted instantiation: moduleobject.c:adaptive_counter_start Unexecuted instantiation: object.c:adaptive_counter_start Unexecuted instantiation: obmalloc.c:adaptive_counter_start Unexecuted instantiation: rangeobject.c:adaptive_counter_start Unexecuted instantiation: setobject.c:adaptive_counter_start Unexecuted instantiation: sliceobject.c:adaptive_counter_start Unexecuted instantiation: structseq.c:adaptive_counter_start Unexecuted instantiation: tupleobject.c:adaptive_counter_start Unexecuted instantiation: typeobject.c:adaptive_counter_start Unexecuted instantiation: unicodeobject.c:adaptive_counter_start Unexecuted instantiation: unionobject.c:adaptive_counter_start Unexecuted instantiation: weakrefobject.c:adaptive_counter_start Unexecuted instantiation: _warnings.c:adaptive_counter_start Unexecuted instantiation: Python-ast.c:adaptive_counter_start Unexecuted instantiation: ast.c:adaptive_counter_start Unexecuted instantiation: ast_opt.c:adaptive_counter_start Unexecuted instantiation: ast_unparse.c:adaptive_counter_start Unexecuted instantiation: bltinmodule.c:adaptive_counter_start ceval.c:adaptive_counter_start Line | Count | Source | 454 | adaptive_counter_start(void) { | 455 | unsigned int value = (1 << ADAPTIVE_BACKOFF_START) - 1; | 456 | return adaptive_counter_bits(value, ADAPTIVE_BACKOFF_START); | 457 | } |
Unexecuted instantiation: codecs.c:adaptive_counter_start Unexecuted instantiation: compile.c:adaptive_counter_start Unexecuted instantiation: context.c:adaptive_counter_start Unexecuted instantiation: errors.c:adaptive_counter_start Unexecuted instantiation: frame.c:adaptive_counter_start Unexecuted instantiation: frozenmain.c:adaptive_counter_start Unexecuted instantiation: getargs.c:adaptive_counter_start Unexecuted instantiation: hamt.c:adaptive_counter_start Unexecuted instantiation: import.c:adaptive_counter_start Unexecuted instantiation: importdl.c:adaptive_counter_start Unexecuted instantiation: initconfig.c:adaptive_counter_start Unexecuted instantiation: marshal.c:adaptive_counter_start Unexecuted instantiation: mystrtoul.c:adaptive_counter_start Unexecuted instantiation: preconfig.c:adaptive_counter_start Unexecuted instantiation: pylifecycle.c:adaptive_counter_start Unexecuted instantiation: pystate.c:adaptive_counter_start Unexecuted instantiation: pythonrun.c:adaptive_counter_start Unexecuted instantiation: specialize.c:adaptive_counter_start Unexecuted instantiation: symtable.c:adaptive_counter_start Unexecuted instantiation: sysmodule.c:adaptive_counter_start Unexecuted instantiation: thread.c:adaptive_counter_start Unexecuted instantiation: traceback.c:adaptive_counter_start Unexecuted instantiation: formatter_unicode.c:adaptive_counter_start Unexecuted instantiation: fileutils.c:adaptive_counter_start Unexecuted instantiation: suggestions.c:adaptive_counter_start Unexecuted instantiation: dynload_shlib.c:adaptive_counter_start Unexecuted instantiation: main.c:adaptive_counter_start Unexecuted instantiation: gcmodule.c:adaptive_counter_start Unexecuted instantiation: atexitmodule.c:adaptive_counter_start Unexecuted instantiation: faulthandler.c:adaptive_counter_start Unexecuted instantiation: posixmodule.c:adaptive_counter_start Unexecuted instantiation: signalmodule.c:adaptive_counter_start Unexecuted instantiation: _tracemalloc.c:adaptive_counter_start Unexecuted instantiation: _collectionsmodule.c:adaptive_counter_start Unexecuted instantiation: _iomodule.c:adaptive_counter_start Unexecuted instantiation: iobase.c:adaptive_counter_start Unexecuted instantiation: fileio.c:adaptive_counter_start Unexecuted instantiation: bytesio.c:adaptive_counter_start Unexecuted instantiation: bufferedio.c:adaptive_counter_start Unexecuted instantiation: textio.c:adaptive_counter_start Unexecuted instantiation: stringio.c:adaptive_counter_start Unexecuted instantiation: itertoolsmodule.c:adaptive_counter_start Unexecuted instantiation: sre.c:adaptive_counter_start Unexecuted instantiation: _threadmodule.c:adaptive_counter_start Unexecuted instantiation: timemodule.c:adaptive_counter_start Unexecuted instantiation: _weakref.c:adaptive_counter_start Unexecuted instantiation: _abc.c:adaptive_counter_start Unexecuted instantiation: _functoolsmodule.c:adaptive_counter_start Unexecuted instantiation: _operator.c:adaptive_counter_start Unexecuted instantiation: deepfreeze.c:adaptive_counter_start |
458 | |
459 | static inline uint16_t |
460 | adaptive_counter_backoff(uint16_t counter) { |
461 | unsigned int backoff = counter & ((1<<ADAPTIVE_BACKOFF_BITS)-1); |
462 | backoff++; |
463 | if (backoff > MAX_BACKOFF_VALUE) { Branch (463:9): [True: 53.6k, False: 350k]
|
464 | backoff = MAX_BACKOFF_VALUE; |
465 | } |
466 | unsigned int value = (1 << backoff) - 1; |
467 | return adaptive_counter_bits(value, backoff); |
468 | } Unexecuted instantiation: myreadline.c:adaptive_counter_backoff Unexecuted instantiation: tokenizer.c:adaptive_counter_backoff Unexecuted instantiation: abstract.c:adaptive_counter_backoff Unexecuted instantiation: boolobject.c:adaptive_counter_backoff Unexecuted instantiation: bytearrayobject.c:adaptive_counter_backoff Unexecuted instantiation: bytesobject.c:adaptive_counter_backoff Unexecuted instantiation: call.c:adaptive_counter_backoff Unexecuted instantiation: cellobject.c:adaptive_counter_backoff Unexecuted instantiation: classobject.c:adaptive_counter_backoff Unexecuted instantiation: codeobject.c:adaptive_counter_backoff Unexecuted instantiation: complexobject.c:adaptive_counter_backoff Unexecuted instantiation: descrobject.c:adaptive_counter_backoff Unexecuted instantiation: enumobject.c:adaptive_counter_backoff Unexecuted instantiation: exceptions.c:adaptive_counter_backoff Unexecuted instantiation: genericaliasobject.c:adaptive_counter_backoff Unexecuted instantiation: genobject.c:adaptive_counter_backoff Unexecuted instantiation: fileobject.c:adaptive_counter_backoff Unexecuted instantiation: floatobject.c:adaptive_counter_backoff Unexecuted instantiation: frameobject.c:adaptive_counter_backoff Unexecuted instantiation: funcobject.c:adaptive_counter_backoff Unexecuted instantiation: interpreteridobject.c:adaptive_counter_backoff Unexecuted instantiation: iterobject.c:adaptive_counter_backoff Unexecuted instantiation: listobject.c:adaptive_counter_backoff Unexecuted instantiation: longobject.c:adaptive_counter_backoff Unexecuted instantiation: dictobject.c:adaptive_counter_backoff Unexecuted instantiation: odictobject.c:adaptive_counter_backoff Unexecuted instantiation: memoryobject.c:adaptive_counter_backoff Unexecuted instantiation: methodobject.c:adaptive_counter_backoff Unexecuted instantiation: moduleobject.c:adaptive_counter_backoff Unexecuted instantiation: object.c:adaptive_counter_backoff Unexecuted instantiation: obmalloc.c:adaptive_counter_backoff Unexecuted instantiation: rangeobject.c:adaptive_counter_backoff Unexecuted instantiation: setobject.c:adaptive_counter_backoff Unexecuted instantiation: sliceobject.c:adaptive_counter_backoff Unexecuted instantiation: structseq.c:adaptive_counter_backoff Unexecuted instantiation: tupleobject.c:adaptive_counter_backoff Unexecuted instantiation: typeobject.c:adaptive_counter_backoff Unexecuted instantiation: unicodeobject.c:adaptive_counter_backoff Unexecuted instantiation: unionobject.c:adaptive_counter_backoff Unexecuted instantiation: weakrefobject.c:adaptive_counter_backoff Unexecuted instantiation: _warnings.c:adaptive_counter_backoff Unexecuted instantiation: Python-ast.c:adaptive_counter_backoff Unexecuted instantiation: ast.c:adaptive_counter_backoff Unexecuted instantiation: ast_opt.c:adaptive_counter_backoff Unexecuted instantiation: ast_unparse.c:adaptive_counter_backoff Unexecuted instantiation: bltinmodule.c:adaptive_counter_backoff Unexecuted instantiation: ceval.c:adaptive_counter_backoff Unexecuted instantiation: codecs.c:adaptive_counter_backoff Unexecuted instantiation: compile.c:adaptive_counter_backoff Unexecuted instantiation: context.c:adaptive_counter_backoff Unexecuted instantiation: errors.c:adaptive_counter_backoff Unexecuted instantiation: frame.c:adaptive_counter_backoff Unexecuted instantiation: frozenmain.c:adaptive_counter_backoff Unexecuted instantiation: getargs.c:adaptive_counter_backoff Unexecuted instantiation: hamt.c:adaptive_counter_backoff Unexecuted instantiation: import.c:adaptive_counter_backoff Unexecuted instantiation: importdl.c:adaptive_counter_backoff Unexecuted instantiation: initconfig.c:adaptive_counter_backoff Unexecuted instantiation: marshal.c:adaptive_counter_backoff Unexecuted instantiation: mystrtoul.c:adaptive_counter_backoff Unexecuted instantiation: preconfig.c:adaptive_counter_backoff Unexecuted instantiation: pylifecycle.c:adaptive_counter_backoff Unexecuted instantiation: pystate.c:adaptive_counter_backoff Unexecuted instantiation: pythonrun.c:adaptive_counter_backoff specialize.c:adaptive_counter_backoff Line | Count | Source | 460 | adaptive_counter_backoff(uint16_t counter) { | 461 | unsigned int backoff = counter & ((1<<ADAPTIVE_BACKOFF_BITS)-1); | 462 | backoff++; | 463 | if (backoff > MAX_BACKOFF_VALUE) { Branch (463:9): [True: 53.6k, False: 350k]
| 464 | backoff = MAX_BACKOFF_VALUE; | 465 | } | 466 | unsigned int value = (1 << backoff) - 1; | 467 | return adaptive_counter_bits(value, backoff); | 468 | } |
Unexecuted instantiation: symtable.c:adaptive_counter_backoff Unexecuted instantiation: sysmodule.c:adaptive_counter_backoff Unexecuted instantiation: thread.c:adaptive_counter_backoff Unexecuted instantiation: traceback.c:adaptive_counter_backoff Unexecuted instantiation: formatter_unicode.c:adaptive_counter_backoff Unexecuted instantiation: fileutils.c:adaptive_counter_backoff Unexecuted instantiation: suggestions.c:adaptive_counter_backoff Unexecuted instantiation: dynload_shlib.c:adaptive_counter_backoff Unexecuted instantiation: main.c:adaptive_counter_backoff Unexecuted instantiation: gcmodule.c:adaptive_counter_backoff Unexecuted instantiation: atexitmodule.c:adaptive_counter_backoff Unexecuted instantiation: faulthandler.c:adaptive_counter_backoff Unexecuted instantiation: posixmodule.c:adaptive_counter_backoff Unexecuted instantiation: signalmodule.c:adaptive_counter_backoff Unexecuted instantiation: _tracemalloc.c:adaptive_counter_backoff Unexecuted instantiation: _collectionsmodule.c:adaptive_counter_backoff Unexecuted instantiation: _iomodule.c:adaptive_counter_backoff Unexecuted instantiation: iobase.c:adaptive_counter_backoff Unexecuted instantiation: fileio.c:adaptive_counter_backoff Unexecuted instantiation: bytesio.c:adaptive_counter_backoff Unexecuted instantiation: bufferedio.c:adaptive_counter_backoff Unexecuted instantiation: textio.c:adaptive_counter_backoff Unexecuted instantiation: stringio.c:adaptive_counter_backoff Unexecuted instantiation: itertoolsmodule.c:adaptive_counter_backoff Unexecuted instantiation: sre.c:adaptive_counter_backoff Unexecuted instantiation: _threadmodule.c:adaptive_counter_backoff Unexecuted instantiation: timemodule.c:adaptive_counter_backoff Unexecuted instantiation: _weakref.c:adaptive_counter_backoff Unexecuted instantiation: _abc.c:adaptive_counter_backoff Unexecuted instantiation: _functoolsmodule.c:adaptive_counter_backoff Unexecuted instantiation: _operator.c:adaptive_counter_backoff Unexecuted instantiation: deepfreeze.c:adaptive_counter_backoff |
469 | |
470 | |
471 | /* Line array cache for tracing */ |
472 | |
473 | extern int _PyCode_CreateLineArray(PyCodeObject *co); |
474 | |
475 | static inline int |
476 | _PyCode_InitLineArray(PyCodeObject *co) |
477 | { |
478 | if (co->_co_linearray) { Branch (478:9): [True: 7.42M, False: 1.71k]
|
479 | return 0; |
480 | } |
481 | return _PyCode_CreateLineArray(co); |
482 | } Unexecuted instantiation: myreadline.c:_PyCode_InitLineArray Unexecuted instantiation: tokenizer.c:_PyCode_InitLineArray Unexecuted instantiation: abstract.c:_PyCode_InitLineArray Unexecuted instantiation: boolobject.c:_PyCode_InitLineArray Unexecuted instantiation: bytearrayobject.c:_PyCode_InitLineArray Unexecuted instantiation: bytesobject.c:_PyCode_InitLineArray Unexecuted instantiation: call.c:_PyCode_InitLineArray Unexecuted instantiation: cellobject.c:_PyCode_InitLineArray Unexecuted instantiation: classobject.c:_PyCode_InitLineArray Unexecuted instantiation: codeobject.c:_PyCode_InitLineArray Unexecuted instantiation: complexobject.c:_PyCode_InitLineArray Unexecuted instantiation: descrobject.c:_PyCode_InitLineArray Unexecuted instantiation: enumobject.c:_PyCode_InitLineArray Unexecuted instantiation: exceptions.c:_PyCode_InitLineArray Unexecuted instantiation: genericaliasobject.c:_PyCode_InitLineArray Unexecuted instantiation: genobject.c:_PyCode_InitLineArray Unexecuted instantiation: fileobject.c:_PyCode_InitLineArray Unexecuted instantiation: floatobject.c:_PyCode_InitLineArray Unexecuted instantiation: frameobject.c:_PyCode_InitLineArray Unexecuted instantiation: funcobject.c:_PyCode_InitLineArray Unexecuted instantiation: interpreteridobject.c:_PyCode_InitLineArray Unexecuted instantiation: iterobject.c:_PyCode_InitLineArray Unexecuted instantiation: listobject.c:_PyCode_InitLineArray Unexecuted instantiation: longobject.c:_PyCode_InitLineArray Unexecuted instantiation: dictobject.c:_PyCode_InitLineArray Unexecuted instantiation: odictobject.c:_PyCode_InitLineArray Unexecuted instantiation: memoryobject.c:_PyCode_InitLineArray Unexecuted instantiation: methodobject.c:_PyCode_InitLineArray Unexecuted instantiation: moduleobject.c:_PyCode_InitLineArray Unexecuted instantiation: object.c:_PyCode_InitLineArray Unexecuted instantiation: obmalloc.c:_PyCode_InitLineArray Unexecuted instantiation: rangeobject.c:_PyCode_InitLineArray Unexecuted instantiation: setobject.c:_PyCode_InitLineArray Unexecuted instantiation: sliceobject.c:_PyCode_InitLineArray Unexecuted instantiation: structseq.c:_PyCode_InitLineArray Unexecuted instantiation: tupleobject.c:_PyCode_InitLineArray Unexecuted instantiation: typeobject.c:_PyCode_InitLineArray Unexecuted instantiation: unicodeobject.c:_PyCode_InitLineArray Unexecuted instantiation: unionobject.c:_PyCode_InitLineArray Unexecuted instantiation: weakrefobject.c:_PyCode_InitLineArray Unexecuted instantiation: _warnings.c:_PyCode_InitLineArray Unexecuted instantiation: Python-ast.c:_PyCode_InitLineArray Unexecuted instantiation: ast.c:_PyCode_InitLineArray Unexecuted instantiation: ast_opt.c:_PyCode_InitLineArray Unexecuted instantiation: ast_unparse.c:_PyCode_InitLineArray Unexecuted instantiation: bltinmodule.c:_PyCode_InitLineArray ceval.c:_PyCode_InitLineArray Line | Count | Source | 477 | { | 478 | if (co->_co_linearray) { Branch (478:9): [True: 7.42M, False: 1.71k]
| 479 | return 0; | 480 | } | 481 | return _PyCode_CreateLineArray(co); | 482 | } |
Unexecuted instantiation: codecs.c:_PyCode_InitLineArray Unexecuted instantiation: compile.c:_PyCode_InitLineArray Unexecuted instantiation: context.c:_PyCode_InitLineArray Unexecuted instantiation: errors.c:_PyCode_InitLineArray Unexecuted instantiation: frame.c:_PyCode_InitLineArray Unexecuted instantiation: frozenmain.c:_PyCode_InitLineArray Unexecuted instantiation: getargs.c:_PyCode_InitLineArray Unexecuted instantiation: hamt.c:_PyCode_InitLineArray Unexecuted instantiation: import.c:_PyCode_InitLineArray Unexecuted instantiation: importdl.c:_PyCode_InitLineArray Unexecuted instantiation: initconfig.c:_PyCode_InitLineArray Unexecuted instantiation: marshal.c:_PyCode_InitLineArray Unexecuted instantiation: mystrtoul.c:_PyCode_InitLineArray Unexecuted instantiation: preconfig.c:_PyCode_InitLineArray Unexecuted instantiation: pylifecycle.c:_PyCode_InitLineArray Unexecuted instantiation: pystate.c:_PyCode_InitLineArray Unexecuted instantiation: pythonrun.c:_PyCode_InitLineArray Unexecuted instantiation: specialize.c:_PyCode_InitLineArray Unexecuted instantiation: symtable.c:_PyCode_InitLineArray Unexecuted instantiation: sysmodule.c:_PyCode_InitLineArray Unexecuted instantiation: thread.c:_PyCode_InitLineArray Unexecuted instantiation: traceback.c:_PyCode_InitLineArray Unexecuted instantiation: formatter_unicode.c:_PyCode_InitLineArray Unexecuted instantiation: fileutils.c:_PyCode_InitLineArray Unexecuted instantiation: suggestions.c:_PyCode_InitLineArray Unexecuted instantiation: dynload_shlib.c:_PyCode_InitLineArray Unexecuted instantiation: main.c:_PyCode_InitLineArray Unexecuted instantiation: gcmodule.c:_PyCode_InitLineArray Unexecuted instantiation: atexitmodule.c:_PyCode_InitLineArray Unexecuted instantiation: faulthandler.c:_PyCode_InitLineArray Unexecuted instantiation: posixmodule.c:_PyCode_InitLineArray Unexecuted instantiation: signalmodule.c:_PyCode_InitLineArray Unexecuted instantiation: _tracemalloc.c:_PyCode_InitLineArray Unexecuted instantiation: _collectionsmodule.c:_PyCode_InitLineArray Unexecuted instantiation: _iomodule.c:_PyCode_InitLineArray Unexecuted instantiation: iobase.c:_PyCode_InitLineArray Unexecuted instantiation: fileio.c:_PyCode_InitLineArray Unexecuted instantiation: bytesio.c:_PyCode_InitLineArray Unexecuted instantiation: bufferedio.c:_PyCode_InitLineArray Unexecuted instantiation: textio.c:_PyCode_InitLineArray Unexecuted instantiation: stringio.c:_PyCode_InitLineArray Unexecuted instantiation: itertoolsmodule.c:_PyCode_InitLineArray Unexecuted instantiation: sre.c:_PyCode_InitLineArray Unexecuted instantiation: _threadmodule.c:_PyCode_InitLineArray Unexecuted instantiation: timemodule.c:_PyCode_InitLineArray Unexecuted instantiation: _weakref.c:_PyCode_InitLineArray Unexecuted instantiation: _abc.c:_PyCode_InitLineArray Unexecuted instantiation: _functoolsmodule.c:_PyCode_InitLineArray Unexecuted instantiation: _operator.c:_PyCode_InitLineArray Unexecuted instantiation: deepfreeze.c:_PyCode_InitLineArray |
483 | |
484 | static inline int |
485 | _PyCode_LineNumberFromArray(PyCodeObject *co, int index) |
486 | { |
487 | assert(co->_co_linearray != NULL); |
488 | assert(index >= 0); |
489 | assert(index < Py_SIZE(co)); |
490 | if (co->_co_linearray_entry_size == 2) { Branch (490:9): [True: 914k, False: 0]
Branch (490:9): [True: 13.1M, False: 0]
|
491 | return ((int16_t *)co->_co_linearray)[index]; |
492 | } |
493 | else { |
494 | assert(co->_co_linearray_entry_size == 4); |
495 | return ((int32_t *)co->_co_linearray)[index]; |
496 | } |
497 | } Unexecuted instantiation: myreadline.c:_PyCode_LineNumberFromArray Unexecuted instantiation: tokenizer.c:_PyCode_LineNumberFromArray Unexecuted instantiation: abstract.c:_PyCode_LineNumberFromArray Unexecuted instantiation: boolobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: bytearrayobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: bytesobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: call.c:_PyCode_LineNumberFromArray Unexecuted instantiation: cellobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: classobject.c:_PyCode_LineNumberFromArray codeobject.c:_PyCode_LineNumberFromArray Line | Count | Source | 486 | { | 487 | assert(co->_co_linearray != NULL); | 488 | assert(index >= 0); | 489 | assert(index < Py_SIZE(co)); | 490 | if (co->_co_linearray_entry_size == 2) { Branch (490:9): [True: 914k, False: 0]
| 491 | return ((int16_t *)co->_co_linearray)[index]; | 492 | } | 493 | else { | 494 | assert(co->_co_linearray_entry_size == 4); | 495 | return ((int32_t *)co->_co_linearray)[index]; | 496 | } | 497 | } |
Unexecuted instantiation: complexobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: descrobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: enumobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: exceptions.c:_PyCode_LineNumberFromArray Unexecuted instantiation: genericaliasobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: genobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: fileobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: floatobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: frameobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: funcobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: interpreteridobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: iterobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: listobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: longobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: dictobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: odictobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: memoryobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: methodobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: moduleobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: object.c:_PyCode_LineNumberFromArray Unexecuted instantiation: obmalloc.c:_PyCode_LineNumberFromArray Unexecuted instantiation: rangeobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: setobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: sliceobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: structseq.c:_PyCode_LineNumberFromArray Unexecuted instantiation: tupleobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: typeobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: unicodeobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: unionobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: weakrefobject.c:_PyCode_LineNumberFromArray Unexecuted instantiation: _warnings.c:_PyCode_LineNumberFromArray Unexecuted instantiation: Python-ast.c:_PyCode_LineNumberFromArray Unexecuted instantiation: ast.c:_PyCode_LineNumberFromArray Unexecuted instantiation: ast_opt.c:_PyCode_LineNumberFromArray Unexecuted instantiation: ast_unparse.c:_PyCode_LineNumberFromArray Unexecuted instantiation: bltinmodule.c:_PyCode_LineNumberFromArray ceval.c:_PyCode_LineNumberFromArray Line | Count | Source | 486 | { | 487 | assert(co->_co_linearray != NULL); | 488 | assert(index >= 0); | 489 | assert(index < Py_SIZE(co)); | 490 | if (co->_co_linearray_entry_size == 2) { Branch (490:9): [True: 13.1M, False: 0]
| 491 | return ((int16_t *)co->_co_linearray)[index]; | 492 | } | 493 | else { | 494 | assert(co->_co_linearray_entry_size == 4); | 495 | return ((int32_t *)co->_co_linearray)[index]; | 496 | } | 497 | } |
Unexecuted instantiation: codecs.c:_PyCode_LineNumberFromArray Unexecuted instantiation: compile.c:_PyCode_LineNumberFromArray Unexecuted instantiation: context.c:_PyCode_LineNumberFromArray Unexecuted instantiation: errors.c:_PyCode_LineNumberFromArray Unexecuted instantiation: frame.c:_PyCode_LineNumberFromArray Unexecuted instantiation: frozenmain.c:_PyCode_LineNumberFromArray Unexecuted instantiation: getargs.c:_PyCode_LineNumberFromArray Unexecuted instantiation: hamt.c:_PyCode_LineNumberFromArray Unexecuted instantiation: import.c:_PyCode_LineNumberFromArray Unexecuted instantiation: importdl.c:_PyCode_LineNumberFromArray Unexecuted instantiation: initconfig.c:_PyCode_LineNumberFromArray Unexecuted instantiation: marshal.c:_PyCode_LineNumberFromArray Unexecuted instantiation: mystrtoul.c:_PyCode_LineNumberFromArray Unexecuted instantiation: preconfig.c:_PyCode_LineNumberFromArray Unexecuted instantiation: pylifecycle.c:_PyCode_LineNumberFromArray Unexecuted instantiation: pystate.c:_PyCode_LineNumberFromArray Unexecuted instantiation: pythonrun.c:_PyCode_LineNumberFromArray Unexecuted instantiation: specialize.c:_PyCode_LineNumberFromArray Unexecuted instantiation: symtable.c:_PyCode_LineNumberFromArray Unexecuted instantiation: sysmodule.c:_PyCode_LineNumberFromArray Unexecuted instantiation: thread.c:_PyCode_LineNumberFromArray Unexecuted instantiation: traceback.c:_PyCode_LineNumberFromArray Unexecuted instantiation: formatter_unicode.c:_PyCode_LineNumberFromArray Unexecuted instantiation: fileutils.c:_PyCode_LineNumberFromArray Unexecuted instantiation: suggestions.c:_PyCode_LineNumberFromArray Unexecuted instantiation: dynload_shlib.c:_PyCode_LineNumberFromArray Unexecuted instantiation: main.c:_PyCode_LineNumberFromArray Unexecuted instantiation: gcmodule.c:_PyCode_LineNumberFromArray Unexecuted instantiation: atexitmodule.c:_PyCode_LineNumberFromArray Unexecuted instantiation: faulthandler.c:_PyCode_LineNumberFromArray Unexecuted instantiation: posixmodule.c:_PyCode_LineNumberFromArray Unexecuted instantiation: signalmodule.c:_PyCode_LineNumberFromArray Unexecuted instantiation: _tracemalloc.c:_PyCode_LineNumberFromArray Unexecuted instantiation: _collectionsmodule.c:_PyCode_LineNumberFromArray Unexecuted instantiation: _iomodule.c:_PyCode_LineNumberFromArray Unexecuted instantiation: iobase.c:_PyCode_LineNumberFromArray Unexecuted instantiation: fileio.c:_PyCode_LineNumberFromArray Unexecuted instantiation: bytesio.c:_PyCode_LineNumberFromArray Unexecuted instantiation: bufferedio.c:_PyCode_LineNumberFromArray Unexecuted instantiation: textio.c:_PyCode_LineNumberFromArray Unexecuted instantiation: stringio.c:_PyCode_LineNumberFromArray Unexecuted instantiation: itertoolsmodule.c:_PyCode_LineNumberFromArray Unexecuted instantiation: sre.c:_PyCode_LineNumberFromArray Unexecuted instantiation: _threadmodule.c:_PyCode_LineNumberFromArray Unexecuted instantiation: timemodule.c:_PyCode_LineNumberFromArray Unexecuted instantiation: _weakref.c:_PyCode_LineNumberFromArray Unexecuted instantiation: _abc.c:_PyCode_LineNumberFromArray Unexecuted instantiation: _functoolsmodule.c:_PyCode_LineNumberFromArray Unexecuted instantiation: _operator.c:_PyCode_LineNumberFromArray Unexecuted instantiation: deepfreeze.c:_PyCode_LineNumberFromArray |
498 | |
499 | |
500 | #ifdef __cplusplus |
501 | } |
502 | #endif |
503 | #endif /* !Py_INTERNAL_CODE_H */ |