Lines Matching refs:block

109 static int get_const_switch_target(zend_cfg *cfg, zend_op_array *op_array, zend_basic_block *block,…  in get_const_switch_target()  argument
115 return block->successors[block->successors_count - 1]; in get_const_switch_target()
119 return block->successors[block->successors_count - 1]; in get_const_switch_target()
129 return block->successors[block->successors_count - (opline->opcode == ZEND_MATCH ? 1 : 2)]; in get_const_switch_target()
134 static void zend_optimize_block(zend_basic_block *block, zend_op_array *op_array, zend_bitset used_… in zend_optimize_block() argument
139 if (block->len == 0) { in zend_optimize_block()
143 if (op_array->opcodes[block->start].opcode == ZEND_NOP) { in zend_optimize_block()
145 strip_leading_nops(op_array, block); in zend_optimize_block()
148 opline = op_array->opcodes + block->start; in zend_optimize_block()
149 end = opline + block->len; in zend_optimize_block()
304 if (src < op_array->opcodes + block->start) { in zend_optimize_block()
319 if (src >= op_array->opcodes + block->start && in zend_optimize_block()
352 if(sv >= block->start_opline && sv->opcode == ZEND_SEND_VAL && in zend_optimize_block()
410 int target = get_const_switch_target(cfg, op_array, block, opline, &ZEND_OP1_LITERAL(opline)); in zend_optimize_block()
416 block->successors_count = 1; in zend_optimize_block()
417 block->successors[0] = target; in zend_optimize_block()
598 block->successors_count = 1; in zend_optimize_block()
603 block->successors[0] = block->successors[1]; in zend_optimize_block()
604 block->len--; in zend_optimize_block()
605 cfg->blocks[block->successors[0]].flags |= ZEND_BB_FOLLOW; in zend_optimize_block()
608 zend_basic_block *next = cfg->blocks + block->successors[1]; in zend_optimize_block()
656 block->successors_count = 1; in zend_optimize_block()
657 block->successors[0] = block->successors[1]; in zend_optimize_block()
658 cfg->blocks[block->successors[0]].flags |= ZEND_BB_FOLLOW; in zend_optimize_block()
1110 …zend_basic_block *get_target_block(const zend_cfg *cfg, zend_basic_block *block, int n, uint32_t *… in get_target_block() argument
1113 zend_basic_block *target_block = cfg->blocks + block->successors[n]; in get_target_block()
1120 block->successors[n] = b; in get_target_block()
1126 …zend_basic_block *get_follow_block(const zend_cfg *cfg, zend_basic_block *block, int n, uint32_t *… in get_follow_block() argument
1129 zend_basic_block *target_block = cfg->blocks + block->successors[n]; in get_follow_block()
1136 block->successors[n] = b; in get_follow_block()
1142 …c zend_always_inline zend_basic_block *get_next_block(const zend_cfg *cfg, zend_basic_block *block) in get_next_block() argument
1144 zend_basic_block *next_block = block + 1; in get_next_block()
1182 static void zend_jmp_optimization(zend_basic_block *block, zend_op_array *op_array, const zend_cfg … in zend_jmp_optimization() argument
1189 if (block->len == 0) { in zend_jmp_optimization()
1193 last_op = op_array->opcodes + block->start + block->len - 1; in zend_jmp_optimization()
1198 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1208 block->successors[0] = next; in zend_jmp_optimization()
1210 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1213 next_block = get_next_block(cfg, block); in zend_jmp_optimization()
1218 block->len--; in zend_jmp_optimization()
1233 block->successors_count = 0; in zend_jmp_optimization()
1244 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1252 block->successors[0] = next; in zend_jmp_optimization()
1257 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1265 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1284 block->successors[0] = next; in zend_jmp_optimization()
1286 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1289 follow_block = get_follow_block(cfg, block, 1, opt_count); in zend_jmp_optimization()
1294 block->len--; in zend_jmp_optimization()
1296 block->successors_count = 1; in zend_jmp_optimization()
1301 if (block->successors[0] == follow_block->successors[0]) { in zend_jmp_optimization()
1305 block->len--; in zend_jmp_optimization()
1307 block->successors[0] = follow_block - cfg->blocks; in zend_jmp_optimization()
1308 block->successors_count = 1; in zend_jmp_optimization()
1319 block->successors[0] = follow_block->successors[0]; in zend_jmp_optimization()
1320 block->successors[1] = next_block - cfg->blocks; in zend_jmp_optimization()
1339 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1388 block->successors[0] = next; in zend_jmp_optimization()
1390 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1393 follow_block = get_follow_block(cfg, block, 1, opt_count); in zend_jmp_optimization()
1398 block->successors_count = 1; in zend_jmp_optimization()
1413 zend_basic_block *block, *next_block; in zend_t_usage() local
1433 block = cfg->blocks + n; in zend_t_usage()
1435 if (!(block->flags & ZEND_BB_REACHABLE)) { in zend_t_usage()
1439 opline = op_array->opcodes + block->start; in zend_t_usage()
1440 end = opline + block->len; in zend_t_usage()
1441 if (!(block->flags & ZEND_BB_FOLLOW) || in zend_t_usage()
1442 (block->flags & ZEND_BB_TARGET)) { in zend_t_usage()
1514 block = cfg->blocks + (--n); in zend_t_usage()
1516 if (!(block->flags & ZEND_BB_REACHABLE) || block->len == 0) { in zend_t_usage()
1520 end = op_array->opcodes + block->start; in zend_t_usage()
1521 opline = end + block->len - 1; in zend_t_usage()
1527 } else if (block->successors_count > 1) { in zend_t_usage()
1530 next_block = block; in zend_t_usage()