@@ -233,19 +233,23 @@ typedef struct basicblock_ {
233
233
reverse order that the block are allocated. b_list points to the next
234
234
block, not to be confused with b_next, which is next by control flow. */
235
235
struct basicblock_ * b_list ;
236
- /* number of instructions used */
237
- int b_iused ;
238
- /* length of instruction array (b_instr) */
239
- int b_ialloc ;
236
+ /* Exception stack at start of block, used by assembler to create the exception handling table */
237
+ ExceptStack * b_exceptstack ;
240
238
/* pointer to an array of instructions, initially NULL */
241
239
struct instr * b_instr ;
242
240
/* If b_next is non-NULL, it is a pointer to the next
243
241
block reached by normal control flow. */
244
242
struct basicblock_ * b_next ;
245
- /* b_return is true if a RETURN_VALUE opcode is inserted. */
246
- unsigned b_return : 1 ;
243
+ /* number of instructions used */
244
+ int b_iused ;
245
+ /* length of instruction array (b_instr) */
246
+ int b_ialloc ;
247
247
/* Number of predecssors that a block has. */
248
248
int b_predecessors ;
249
+ /* depth of stack upon entry of block, computed by stackdepth() */
250
+ int b_startdepth ;
251
+ /* instruction offset for block, computed by assemble_jump_offsets() */
252
+ int b_offset ;
249
253
/* Basic block has no fall through (it ends with a return, raise or jump) */
250
254
unsigned b_nofallthrough : 1 ;
251
255
/* Basic block is an exception handler that preserves lasti */
@@ -254,12 +258,8 @@ typedef struct basicblock_ {
254
258
unsigned b_visited : 1 ;
255
259
/* Basic block exits scope (it ends with a return or raise) */
256
260
unsigned b_exit : 1 ;
257
- /* depth of stack upon entry of block, computed by stackdepth() */
258
- int b_startdepth ;
259
- /* instruction offset for block, computed by assemble_jump_offsets() */
260
- int b_offset ;
261
- /* Exception stack at start of block, used by assembler to create the exception handling table */
262
- ExceptStack * b_exceptstack ;
261
+ /* b_return is true if a RETURN_VALUE opcode is inserted. */
262
+ unsigned b_return : 1 ;
263
263
} basicblock ;
264
264
265
265
/* fblockinfo tracks the current frame block.
@@ -7051,23 +7051,23 @@ compiler_match(struct compiler *c, stmt_ty s)
7051
7051
7052
7052
struct assembler {
7053
7053
PyObject * a_bytecode ; /* bytes containing bytecode */
7054
+ PyObject * a_lnotab ; /* bytes containing lnotab */
7055
+ PyObject * a_enotab ; /* bytes containing enotab */
7056
+ PyObject * a_cnotab ; /* bytes containing cnotab */
7057
+ PyObject * a_except_table ; /* bytes containing exception table */
7058
+ basicblock * a_entry ;
7054
7059
int a_offset ; /* offset into bytecode */
7055
7060
int a_nblocks ; /* number of reachable blocks */
7056
- PyObject * a_lnotab ; /* bytes containing lnotab */
7057
- PyObject * a_enotab ; /* bytes containing enotab */
7058
- PyObject * a_cnotab ; /* bytes containing cnotab */
7061
+ int a_except_table_off ; /* offset into exception table */
7059
7062
int a_lnotab_off ; /* offset into lnotab */
7060
7063
int a_enotab_off ; /* offset into enotab */
7061
7064
int a_cnotab_off ; /* offset into cnotab */
7062
- PyObject * a_except_table ; /* bytes containing exception table */
7063
- int a_except_table_off ; /* offset into exception table */
7064
7065
int a_prevlineno ; /* lineno of last emitted line in line table */
7065
7066
int a_prev_end_lineno ; /* end_lineno of last emitted line in line table */
7066
7067
int a_lineno ; /* lineno of last emitted instruction */
7067
7068
int a_end_lineno ; /* end_lineno of last emitted instruction */
7068
7069
int a_lineno_start ; /* bytecode start offset of current lineno */
7069
7070
int a_end_lineno_start ; /* bytecode start offset of current end_lineno */
7070
- basicblock * a_entry ;
7071
7071
};
7072
7072
7073
7073
Py_LOCAL_INLINE (void )
0 commit comments