Lines Matching refs:b

65 static void strip_leading_nops(zend_op_array *op_array, zend_basic_block *b)  in strip_leading_nops()  argument
70 b->start++; in strip_leading_nops()
71 b->len--; in strip_leading_nops()
72 } while (b->len > 0 && opcodes[b->start].opcode == ZEND_NOP); in strip_leading_nops()
75 static void strip_nops(zend_op_array *op_array, zend_basic_block *b) in strip_nops() argument
79 if (b->len == 0) { in strip_nops()
83 if (op_array->opcodes[b->start].opcode == ZEND_NOP) { in strip_nops()
84 strip_leading_nops(op_array, b); in strip_nops()
87 if (b->len == 0) { in strip_nops()
92 i = j = b->start + 1; in strip_nops()
93 while (i < b->start + b->len) { in strip_nops()
102 b->len = j - b->start; in strip_nops()
940 zend_basic_block *b; in assemble_code_blocks() local
945 for (b = blocks; b < end; b++) { in assemble_code_blocks()
946 if (b->len == 0) { in assemble_code_blocks()
949 if (b->flags & (ZEND_BB_REACHABLE|ZEND_BB_UNREACHABLE_FREE)) { in assemble_code_blocks()
950 opline = op_array->opcodes + b->start + b->len - 1; in assemble_code_blocks()
952 zend_basic_block *next = b + 1; in assemble_code_blocks()
957 if (next < end && next == blocks + b->successors[0]) { in assemble_code_blocks()
960 b->len--; in assemble_code_blocks()
962 } else if (b->len == 1 && opline->opcode == ZEND_NOP) { in assemble_code_blocks()
964 b->len--; in assemble_code_blocks()
966 len += b->len; in assemble_code_blocks()
969 zend_op *op = op_array->opcodes + b->start; in assemble_code_blocks()
970 zend_op *end = op + b->len; in assemble_code_blocks()
986 for (b = blocks; b < end; b++) { in assemble_code_blocks()
987 if (b->flags & (ZEND_BB_REACHABLE|ZEND_BB_UNREACHABLE_FREE)) { in assemble_code_blocks()
988 memcpy(opline, op_array->opcodes + b->start, b->len * sizeof(zend_op)); in assemble_code_blocks()
989 b->start = opline - new_opcodes; in assemble_code_blocks()
990 opline += b->len; in assemble_code_blocks()
999 for (b = blocks; b < end; b++) { in assemble_code_blocks()
1000 if (!(b->flags & ZEND_BB_REACHABLE) || b->len == 0) { in assemble_code_blocks()
1003 opline = op_array->opcodes + b->start + b->len - 1; in assemble_code_blocks()
1007 ZEND_SET_OP_JMP_ADDR(opline, opline->op1, new_opcodes + blocks[b->successors[0]].start); in assemble_code_blocks()
1021 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, new_opcodes + blocks[b->successors[0]].start); in assemble_code_blocks()
1025 ZEND_SET_OP_JMP_ADDR(opline, opline->op2, new_opcodes + blocks[b->successors[0]].start); in assemble_code_blocks()
1030 …opline->extended_value = ZEND_OPLINE_TO_OFFSET(opline, new_opcodes + blocks[b->successors[0]].star… in assemble_code_blocks()
1039 …ZEND_ASSERT(b->successors_count == (opline->opcode == ZEND_MATCH ? 1 : 2) + zend_hash_num_elements… in assemble_code_blocks()
1042 Z_LVAL_P(zv) = ZEND_OPLINE_TO_OFFSET(opline, new_opcodes + blocks[b->successors[s++]].start); in assemble_code_blocks()
1044 …opline->extended_value = ZEND_OPLINE_TO_OFFSET(opline, new_opcodes + blocks[b->successors[s++]].st… in assemble_code_blocks()
1113 int b; in get_target_block() local
1118 b = target_block->successors[0]; in get_target_block()
1119 target_block = cfg->blocks + b; in get_target_block()
1121 block->successors[n] = b; in get_target_block()
1129 int b; in get_follow_block() local
1134 b = target_block->successors[0]; in get_follow_block()
1135 target_block = cfg->blocks + b; in get_follow_block()
1137 block->successors[n] = b; in get_follow_block()
1618 zend_basic_block *b, *bb; in zend_merge_blocks() local
1622 b = cfg->blocks + i; in zend_merge_blocks()
1623 if (b->flags & ZEND_BB_REACHABLE) { in zend_merge_blocks()
1624 if ((b->flags & ZEND_BB_FOLLOW) && in zend_merge_blocks()
1625 !(b->flags & (ZEND_BB_TARGET | ZEND_BB_PROTECTED)) && in zend_merge_blocks()
1633 for (bb = prev + 1; bb != b; bb++) { in zend_merge_blocks()
1651 prev->flags |= (b->flags & ZEND_BB_EXIT); in zend_merge_blocks()
1652 prev->len = b->start + b->len - prev->start; in zend_merge_blocks()
1653 prev->successors_count = b->successors_count; in zend_merge_blocks()
1654 if (b->successors != b->successors_storage) { in zend_merge_blocks()
1655 prev->successors = b->successors; in zend_merge_blocks()
1656 b->successors = b->successors_storage; in zend_merge_blocks()
1658 memcpy(prev->successors, b->successors, b->successors_count * sizeof(int)); in zend_merge_blocks()
1662 b->flags = 0; in zend_merge_blocks()
1663 b->len = 0; in zend_merge_blocks()
1664 b->successors_count = 0; in zend_merge_blocks()
1667 prev = b; in zend_merge_blocks()
1678 zend_basic_block *blocks, *end, *b; in zend_optimize_cfg() local
1715 for (b = blocks; b < end; b++) { in zend_optimize_cfg()
1716 if (!(b->flags & ZEND_BB_REACHABLE)) { in zend_optimize_cfg()
1720 if (!(b->flags & ZEND_BB_FOLLOW) || in zend_optimize_cfg()
1721 (b->flags & ZEND_BB_TARGET)) { in zend_optimize_cfg()
1725 zend_optimize_block(b, op_array, usage, &cfg, Tsource, &opt_count); in zend_optimize_cfg()
1729 for (b = blocks; b < end; b++) { in zend_optimize_cfg()
1730 if (b->flags & ZEND_BB_UNREACHABLE_FREE) { in zend_optimize_cfg()
1732 for (uint32_t i = b->start; i < b->start + b->len; i++) { in zend_optimize_cfg()
1739 if (b->flags & (ZEND_BB_REACHABLE|ZEND_BB_UNREACHABLE_FREE)) { in zend_optimize_cfg()
1740 strip_nops(op_array, b); in zend_optimize_cfg()
1747 for (b = blocks; b < end; b++) { in zend_optimize_cfg()
1748 if (b->flags & ZEND_BB_REACHABLE) { in zend_optimize_cfg()
1749 zend_jmp_optimization(b, op_array, &cfg, jmp_hitlist, &opt_count); in zend_optimize_cfg()