Lines Matching refs:block

110 static int get_const_switch_target(zend_cfg *cfg, zend_op_array *op_array, zend_basic_block *block,…  in get_const_switch_target()  argument
116 return block->successors[block->successors_count - 1]; in get_const_switch_target()
120 return block->successors[block->successors_count - 1]; in get_const_switch_target()
130 return block->successors[block->successors_count - (opline->opcode == ZEND_MATCH ? 1 : 2)]; in get_const_switch_target()
135 static void zend_optimize_block(zend_basic_block *block, zend_op_array *op_array, zend_bitset used_… in zend_optimize_block() argument
140 if (block->len == 0) { in zend_optimize_block()
144 if (op_array->opcodes[block->start].opcode == ZEND_NOP) { in zend_optimize_block()
146 strip_leading_nops(op_array, block); in zend_optimize_block()
149 opline = op_array->opcodes + block->start; in zend_optimize_block()
150 end = opline + block->len; in zend_optimize_block()
326 if(sv >= block->start_opline && sv->opcode == ZEND_SEND_VAL && in zend_optimize_block()
384 int target = get_const_switch_target(cfg, op_array, block, opline, &ZEND_OP1_LITERAL(opline)); in zend_optimize_block()
390 block->successors_count = 1; in zend_optimize_block()
391 block->successors[0] = target; in zend_optimize_block()
572 block->successors_count = 1; in zend_optimize_block()
577 block->successors[0] = block->successors[1]; in zend_optimize_block()
578 block->len--; in zend_optimize_block()
579 cfg->blocks[block->successors[0]].flags |= ZEND_BB_FOLLOW; in zend_optimize_block()
582 zend_basic_block *next = cfg->blocks + block->successors[1]; in zend_optimize_block()
625 block->successors[0] = block->successors[1]; in zend_optimize_block()
630 block->successors_count = 1; in zend_optimize_block()
645 tmp = block->successors[0]; in zend_optimize_block()
646 block->successors[0] = block->successors[1]; in zend_optimize_block()
647 block->successors[1] = tmp; in zend_optimize_block()
677 block->successors_count = 1; in zend_optimize_block()
678 block->successors[0] = block->successors[1]; in zend_optimize_block()
679 cfg->blocks[block->successors[0]].flags |= ZEND_BB_FOLLOW; in zend_optimize_block()
1149 …zend_basic_block *get_target_block(const zend_cfg *cfg, zend_basic_block *block, int n, uint32_t *… in get_target_block() argument
1152 zend_basic_block *target_block = cfg->blocks + block->successors[n]; in get_target_block()
1159 block->successors[n] = b; in get_target_block()
1165 …zend_basic_block *get_follow_block(const zend_cfg *cfg, zend_basic_block *block, int n, uint32_t *… in get_follow_block() argument
1168 zend_basic_block *target_block = cfg->blocks + block->successors[n]; in get_follow_block()
1175 block->successors[n] = b; in get_follow_block()
1181 …c zend_always_inline zend_basic_block *get_next_block(const zend_cfg *cfg, zend_basic_block *block) in get_next_block() argument
1183 zend_basic_block *next_block = block + 1; in get_next_block()
1221 static void zend_jmp_optimization(zend_basic_block *block, zend_op_array *op_array, const zend_cfg … in zend_jmp_optimization() argument
1228 if (block->len == 0) { in zend_jmp_optimization()
1232 last_op = op_array->opcodes + block->start + block->len - 1; in zend_jmp_optimization()
1237 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1247 block->successors[0] = next; in zend_jmp_optimization()
1249 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1252 next_block = get_next_block(cfg, block); in zend_jmp_optimization()
1257 block->len--; in zend_jmp_optimization()
1268 block->successors_count = 2; in zend_jmp_optimization()
1269 block->successors[0] = target_block->successors[0]; in zend_jmp_optimization()
1270 block->successors[1] = target_block->successors[1]; in zend_jmp_optimization()
1285 block->successors_count = 0; in zend_jmp_optimization()
1296 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1304 block->successors[0] = next; in zend_jmp_optimization()
1309 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1317 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1340 block->successors[0] = next; in zend_jmp_optimization()
1342 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1345 follow_block = get_follow_block(cfg, block, 1, opt_count); in zend_jmp_optimization()
1356 block->len--; in zend_jmp_optimization()
1358 block->successors_count = 1; in zend_jmp_optimization()
1363 if (block->successors[0] == follow_block->successors[0]) { in zend_jmp_optimization()
1373 block->len--; in zend_jmp_optimization()
1375 block->successors[0] = follow_block - cfg->blocks; in zend_jmp_optimization()
1376 block->successors_count = 1; in zend_jmp_optimization()
1387 block->successors[0] = follow_block->successors[0]; in zend_jmp_optimization()
1388 block->successors[1] = next_block - cfg->blocks; in zend_jmp_optimization()
1402 block->successors[1] = follow_block->successors[0]; in zend_jmp_optimization()
1404 block->successors[1] = block->successors[0]; in zend_jmp_optimization()
1405 block->successors[0] = follow_block->successors[0]; in zend_jmp_optimization()
1417 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1471 block->successors[0] = next; in zend_jmp_optimization()
1473 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1476 follow_block = get_follow_block(cfg, block, 1, opt_count); in zend_jmp_optimization()
1481 block->successors_count = 1; in zend_jmp_optimization()
1490 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1509 block->successors[0] = next; in zend_jmp_optimization()
1511 target_block = get_target_block(cfg, block, 0, opt_count); in zend_jmp_optimization()
1515 follow_block = get_target_block(cfg, block, 1, opt_count); in zend_jmp_optimization()
1534 block->successors[1] = next; in zend_jmp_optimization()
1536 follow_block = get_target_block(cfg, block, 1, opt_count); in zend_jmp_optimization()
1539 next_block = get_next_block(cfg, block); in zend_jmp_optimization()
1547 block->successors_count = 1; in zend_jmp_optimization()
1552 int tmp = block->successors[0]; in zend_jmp_optimization()
1554 block->successors[0] = block->successors[1]; in zend_jmp_optimization()
1555 block->successors[1] = tmp; in zend_jmp_optimization()
1575 zend_basic_block *block, *next_block; in zend_t_usage() local
1595 block = cfg->blocks + n; in zend_t_usage()
1597 if (!(block->flags & ZEND_BB_REACHABLE)) { in zend_t_usage()
1601 opline = op_array->opcodes + block->start; in zend_t_usage()
1602 end = opline + block->len; in zend_t_usage()
1603 if (!(block->flags & ZEND_BB_FOLLOW) || in zend_t_usage()
1604 (block->flags & ZEND_BB_TARGET)) { in zend_t_usage()
1676 block = cfg->blocks + (--n); in zend_t_usage()
1678 if (!(block->flags & ZEND_BB_REACHABLE) || block->len == 0) { in zend_t_usage()
1682 end = op_array->opcodes + block->start; in zend_t_usage()
1683 opline = end + block->len - 1; in zend_t_usage()
1689 } else if (block->successors_count > 1) { in zend_t_usage()
1692 next_block = block; in zend_t_usage()