Lines Matching refs:cfg

205 	if (ssa->cfg.blocks[ssa->cfg.map[use]].loop_header > 0  in zend_ssa_is_last_use()
206 || (ssa->cfg.blocks[ssa->cfg.map[use]].flags & ZEND_BB_LOOP_HEADER)) { in zend_ssa_is_last_use()
207 int b = ssa->cfg.map[use]; in zend_ssa_is_last_use()
211 if (b != ssa->cfg.map[prev_use] in zend_ssa_is_last_use()
212 && dominates(ssa->cfg.blocks, b, ssa->cfg.map[prev_use]) in zend_ssa_is_last_use()
460 if (end - op_array->opcodes >= ssa->cfg.blocks[b].start + ssa->cfg.blocks[b].len) { in zend_jit_needs_call_chain()
475 if (!end || end - op_array->opcodes >= ssa->cfg.blocks[b].start + ssa->cfg.blocks[b].len) { in zend_jit_needs_call_chain()
560 for (j = 0; j < ssa->cfg.blocks_count; j++) { in zend_ssa_cv_info()
561 if ((ssa->cfg.blocks[j].flags & ZEND_BB_REACHABLE) && in zend_ssa_cv_info()
562 ssa->cfg.blocks[j].len > 0) { in zend_ssa_cv_info()
563 … const zend_op *opline = op_array->opcodes + ssa->cfg.blocks[j].start + ssa->cfg.blocks[j].len - 1; in zend_ssa_cv_info()
933 if (rt_opline && ssa && ssa->cfg.map) { in dasm_link_and_encode()
937 int b = ssa->cfg.map[rt_opline - op_array->opcodes]; in dasm_link_and_encode()
942 if (!(ssa->cfg.blocks[b].flags & (ZEND_BB_START|ZEND_BB_ENTRY|ZEND_BB_RECV_ENTRY))) { in dasm_link_and_encode()
944 zend_jit_label(dasm_state, ssa->cfg.blocks_count + b); in dasm_link_and_encode()
1021 for (b = 0; b < ssa->cfg.blocks_count; b++) { in dasm_link_and_encode()
1025 if (ssa->cfg.blocks[b].flags & (ZEND_BB_START|ZEND_BB_ENTRY|ZEND_BB_RECV_ENTRY)) { in dasm_link_and_encode()
1027 zend_op *opline = op_array->opcodes + ssa->cfg.blocks[b].start; in dasm_link_and_encode()
1028 int offset = dasm_getpclabel(dasm_state, ssa->cfg.blocks_count + b); in dasm_link_and_encode()
1035 if (rt_opline && ssa && ssa->cfg.map) { in dasm_link_and_encode()
1036 int b = ssa->cfg.map[rt_opline - op_array->opcodes]; in dasm_link_and_encode()
1038 int offset = dasm_getpclabel(dasm_state, ssa->cfg.blocks_count + b); in dasm_link_and_encode()
1061 &ssa->cfg, in dasm_link_and_encode()
1073 ssa ? &ssa->cfg : NULL, in dasm_link_and_encode()
1301 static int zend_jit_build_cfg(const zend_op_array *op_array, zend_cfg *cfg) in zend_jit_build_cfg() argument
1307 zend_build_cfg(&CG(arena), op_array, flags, cfg); in zend_jit_build_cfg()
1312 if (cfg->blocks_count > 100000) { in zend_jit_build_cfg()
1316 zend_cfg_build_predecessors(&CG(arena), cfg); in zend_jit_build_cfg()
1319 zend_cfg_compute_dominators_tree(op_array, cfg); in zend_jit_build_cfg()
1322 zend_cfg_identify_loops(op_array, cfg); in zend_jit_build_cfg()
1329 if (zend_jit_build_cfg(op_array, &ssa->cfg) != SUCCESS) { in zend_jit_op_array_analyze1()
1335 if ((ssa->cfg.flags & ZEND_FUNC_HAS_EXTENDED_INFO)) { in zend_jit_op_array_analyze1()
1342 ssa->cfg.flags |= ZEND_FUNC_INDIRECT_VAR_ACCESS; in zend_jit_op_array_analyze1()
1346 && ssa->cfg.blocks in zend_jit_op_array_analyze1()
1349 && !(ssa->cfg.flags & ZEND_FUNC_INDIRECT_VAR_ACCESS)) { in zend_jit_op_array_analyze1()
1367 && ssa->cfg.blocks in zend_jit_op_array_analyze2()
1370 && !(ssa->cfg.flags & ZEND_FUNC_INDIRECT_VAR_ACCESS)) { in zend_jit_op_array_analyze2()
1623 zend_basic_block *b = ssa->cfg.blocks + n; in zend_jit_compute_block_order_int()
1631 b = ssa->cfg.blocks + n; in zend_jit_compute_block_order_int()
1655 b = ssa->cfg.blocks + b->loop_header; in zend_jit_in_loop()
1662 zend_basic_block *b = ssa->cfg.blocks + n; in zend_jit_compute_loop_body()
1674 b = ssa->cfg.blocks + n; in zend_jit_compute_loop_body()
1722 ZEND_MM_ALIGNED_SIZE((set_size * ssa->cfg.blocks_count) * ZEND_BITSET_ELM_SIZE) + in zend_jit_compute_liveness()
1726 ZEND_MM_ALIGNED_SIZE(ssa->cfg.blocks_count * sizeof(int)); in zend_jit_compute_liveness()
1734 …live = (zend_bitset)((char*)live_in + ZEND_MM_ALIGNED_SIZE((set_size * ssa->cfg.blocks_count) * ZE… in zend_jit_compute_liveness()
1740 zend_bitset_clear(live_in, set_size * ssa->cfg.blocks_count); in zend_jit_compute_liveness()
1750 b = ssa->cfg.blocks + i; in zend_jit_compute_liveness()
1771 for (k = 0; k < ssa->cfg.blocks[succ].predecessors_count; k++) { in zend_jit_compute_liveness()
1772 if (ssa->cfg.predecessors[ssa->cfg.blocks[succ].predecessor_offset + k] == i) { in zend_jit_compute_liveness()
1868 for (i = ssa->cfg.blocks_count - 1; i >= 0; i--) { in zend_jit_compute_liveness()
1869 zend_basic_block *b = ssa->cfg.blocks + i; in zend_jit_compute_liveness()
1916 for (k = 0; k < ssa->cfg.blocks[phi->block].predecessors_count; k++) { in zend_jit_compute_liveness()
2551 for (k = 0; k < ssa->cfg.blocks[phi->block].predecessors_count; k++) { in zend_jit_allocate_registers()
2575 for (k = 0; k < ssa->cfg.blocks[phi->block].predecessors_count; k++) { in zend_jit_allocate_registers()
2742 for (b = 0; b < ssa->cfg.blocks_count; b++) { in zend_jit()
2743 if (ssa->cfg.blocks[b].flags & ZEND_BB_REACHABLE && in zend_jit()
2744 ssa->cfg.blocks[b].len > 1) { in zend_jit()
2746 opline = op_array->opcodes + ssa->cfg.blocks[b].start + ssa->cfg.blocks[b].len - 1; in zend_jit()
2749 ssa->cfg.blocks[ssa->cfg.blocks[b].successors[0]].flags |= ZEND_BB_TARGET; in zend_jit()
2758 dasm_growpc(&dasm_state, ssa->cfg.blocks_count * 2 + 1); in zend_jit()
2761 for (b = 0; b < ssa->cfg.blocks_count; b++) { in zend_jit()
2762 if ((ssa->cfg.blocks[b].flags & ZEND_BB_REACHABLE) == 0) { in zend_jit()
2766 if (ssa->cfg.blocks[b].flags & ZEND_BB_ENTRY) { in zend_jit()
2767 if (ssa->cfg.blocks[b].flags & ZEND_BB_TARGET) { in zend_jit()
2770 ssa->cfg.blocks[b].len == 1 && in zend_jit()
2771 (ssa->cfg.blocks[b].flags & ZEND_BB_EXIT) && in zend_jit()
2772 op_array->opcodes[ssa->cfg.blocks[b].start].opcode != ZEND_JMP) { in zend_jit()
2776 if (ssa->cfg.blocks[b].flags & ZEND_BB_FOLLOW) { in zend_jit()
2781 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2785 if (ssa->cfg.blocks[b].flags & (ZEND_BB_START|ZEND_BB_RECV_ENTRY)) { in zend_jit()
2786 opline = op_array->opcodes + ssa->cfg.blocks[b].start; in zend_jit()
2787 if (ssa->cfg.flags & ZEND_CFG_RECV_ENTRY) { in zend_jit()
2794 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2796 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b + i); in zend_jit()
2807 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2824 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2832 ssa->cfg.blocks[b].len == 1 && in zend_jit()
2833 (ssa->cfg.blocks[b].flags & ZEND_BB_EXIT)) { in zend_jit()
2842 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2847 ssa->cfg.blocks[b].len == 1 && in zend_jit()
2848 (ssa->cfg.blocks[b].flags & ZEND_BB_EXIT)) { in zend_jit()
2857 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2866 if ((ssa->cfg.blocks[b].flags & ZEND_BB_FOLLOW) in zend_jit()
2867 && ssa->cfg.blocks[b].start != 0 in zend_jit()
2868 && (op_array->opcodes[ssa->cfg.blocks[b].start - 1].opcode == ZEND_NOP in zend_jit()
2869 || op_array->opcodes[ssa->cfg.blocks[b].start - 1].opcode == ZEND_SWITCH_LONG in zend_jit()
2870 || op_array->opcodes[ssa->cfg.blocks[b].start - 1].opcode == ZEND_SWITCH_STRING in zend_jit()
2871 || op_array->opcodes[ssa->cfg.blocks[b].start - 1].opcode == ZEND_MATCH)) { in zend_jit()
2873 if (!zend_jit_set_ip(&dasm_state, op_array->opcodes + ssa->cfg.blocks[b].start)) { in zend_jit()
2877 zend_jit_set_last_valid_opline(op_array->opcodes + ssa->cfg.blocks[b].start); in zend_jit()
2879 } else if (ssa->cfg.blocks[b].flags & ZEND_BB_TARGET) { in zend_jit()
2881 } else if (ssa->cfg.blocks[b].flags & (ZEND_BB_START|ZEND_BB_RECV_ENTRY|ZEND_BB_ENTRY)) { in zend_jit()
2882 zend_jit_set_last_valid_opline(op_array->opcodes + ssa->cfg.blocks[b].start); in zend_jit()
2884 if (ssa->cfg.blocks[b].flags & ZEND_BB_LOOP_HEADER) { in zend_jit()
2885 if (!zend_jit_check_timeout(&dasm_state, op_array->opcodes + ssa->cfg.blocks[b].start, NULL)) { in zend_jit()
2889 if (!ssa->cfg.blocks[b].len) { in zend_jit()
2916 end = ssa->cfg.blocks[b].start + ssa->cfg.blocks[b].len - 1; in zend_jit()
2917 for (i = ssa->cfg.blocks[b].start; i <= end; i++) { in zend_jit()
3472 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3473 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3505 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3506 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3530 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3531 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3553 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3554 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3588 jit_return_label = ssa->cfg.blocks_count * 2; in zend_jit()
3617 NULL, NULL, (ssa->cfg.flags & ZEND_FUNC_INDIRECT_VAR_ACCESS) != 0, 1)) { in zend_jit()
3634 if (opline > op_array->opcodes + ssa->cfg.blocks[b].start && in zend_jit()
3637 if (!zend_jit_cond_jmp(&dasm_state, opline + 1, ssa->cfg.blocks[b].successors[0])) { in zend_jit()
3652 ssa->cfg.blocks[b].successors[0], ssa->cfg.blocks[b].successors[1], in zend_jit()
3671 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3672 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3700 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3701 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3756 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3757 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3916 ssa->cfg.blocks[b].successors[0], opline->opcode, NULL)) { in zend_jit()
4011 if (!zend_jit_jmp(&dasm_state, ssa->cfg.blocks[b].successors[0])) { in zend_jit()
4045 if (opline > op_array->opcodes + ssa->cfg.blocks[b].start && in zend_jit()
4048 if (!zend_jit_cond_jmp(&dasm_state, opline + 1, ssa->cfg.blocks[b].successors[0])) { in zend_jit()
4067 !zend_jit_cond_jmp(&dasm_state, opline + 1, ssa->cfg.blocks[b].successors[0])) { in zend_jit()
4100 zend_jit_cond_jmp(&dasm_state, next_opline, ssa->cfg.blocks[b].successors[0]); in zend_jit()
4121 if (!zend_jit_cond_jmp(&dasm_state, opline + 2, ssa->cfg.blocks[b+1].successors[0])) { in zend_jit()
4124 if (!zend_jit_jmp(&dasm_state, ssa->cfg.blocks[b+1].successors[1])) { in zend_jit()
4382 static void zend_jit_setup_hot_counters_ex(zend_op_array *op_array, zend_cfg *cfg) in zend_jit_setup_hot_counters_ex() argument
4399 for (i = 0; i < cfg->blocks_count; i++) { in zend_jit_setup_hot_counters_ex()
4400 if ((cfg->blocks[i].flags & ZEND_BB_REACHABLE) && in zend_jit_setup_hot_counters_ex()
4401 (cfg->blocks[i].flags & ZEND_BB_LOOP_HEADER)) { in zend_jit_setup_hot_counters_ex()
4402 op_array->opcodes[cfg->blocks[i].start].handler = in zend_jit_setup_hot_counters_ex()
4412 zend_cfg cfg; in zend_jit_restart_hot_counters() local
4420 if (zend_jit_build_cfg(op_array, &cfg) != SUCCESS) { in zend_jit_restart_hot_counters()
4424 zend_jit_setup_hot_counters_ex(op_array, &cfg); in zend_jit_restart_hot_counters()
4432 zend_cfg cfg; in zend_jit_setup_hot_counters() local
4438 if (zend_jit_build_cfg(op_array, &cfg) != SUCCESS) { in zend_jit_setup_hot_counters()
4454 zend_jit_setup_hot_counters_ex(op_array, &cfg); in zend_jit_setup_hot_counters()
4573 info->flags = info->ssa.cfg.flags; in zend_jit_script()
4593 info->flags = info->ssa.cfg.flags; in zend_jit_script()