Lines Matching refs:cfg

173 	if (ssa->cfg.blocks[ssa->cfg.map[use]].loop_header > 0  in zend_ssa_is_last_use()
174 || (ssa->cfg.blocks[ssa->cfg.map[use]].flags & ZEND_BB_LOOP_HEADER)) { in zend_ssa_is_last_use()
175 int b = ssa->cfg.map[use]; in zend_ssa_is_last_use()
179 if (b != ssa->cfg.map[prev_use] in zend_ssa_is_last_use()
180 && dominates(ssa->cfg.blocks, b, ssa->cfg.map[prev_use]) in zend_ssa_is_last_use()
428 if (end - op_array->opcodes >= ssa->cfg.blocks[b].start + ssa->cfg.blocks[b].len) { in zend_jit_needs_call_chain()
443 if (!end || end - op_array->opcodes >= ssa->cfg.blocks[b].start + ssa->cfg.blocks[b].len) { in zend_jit_needs_call_chain()
528 for (j = 0; j < ssa->cfg.blocks_count; j++) { in zend_ssa_cv_info()
529 if ((ssa->cfg.blocks[j].flags & ZEND_BB_REACHABLE) && in zend_ssa_cv_info()
530 ssa->cfg.blocks[j].len > 0) { in zend_ssa_cv_info()
531 … const zend_op *opline = op_array->opcodes + ssa->cfg.blocks[j].start + ssa->cfg.blocks[j].len - 1; in zend_ssa_cv_info()
904 if (rt_opline && ssa && ssa->cfg.map) { in dasm_link_and_encode()
908 int b = ssa->cfg.map[rt_opline - op_array->opcodes]; in dasm_link_and_encode()
913 if (!(ssa->cfg.blocks[b].flags & (ZEND_BB_START|ZEND_BB_ENTRY|ZEND_BB_RECV_ENTRY))) { in dasm_link_and_encode()
915 zend_jit_label(dasm_state, ssa->cfg.blocks_count + b); in dasm_link_and_encode()
986 for (b = 0; b < ssa->cfg.blocks_count; b++) { in dasm_link_and_encode()
990 if (ssa->cfg.blocks[b].flags & (ZEND_BB_START|ZEND_BB_ENTRY|ZEND_BB_RECV_ENTRY)) { in dasm_link_and_encode()
992 zend_op *opline = op_array->opcodes + ssa->cfg.blocks[b].start; in dasm_link_and_encode()
993 int offset = dasm_getpclabel(dasm_state, ssa->cfg.blocks_count + b); in dasm_link_and_encode()
1000 if (rt_opline && ssa && ssa->cfg.map) { in dasm_link_and_encode()
1001 int b = ssa->cfg.map[rt_opline - op_array->opcodes]; in dasm_link_and_encode()
1003 int offset = dasm_getpclabel(dasm_state, ssa->cfg.blocks_count + b); in dasm_link_and_encode()
1026 &ssa->cfg, in dasm_link_and_encode()
1038 ssa ? &ssa->cfg : NULL, in dasm_link_and_encode()
1274 static int zend_jit_build_cfg(const zend_op_array *op_array, zend_cfg *cfg) in zend_jit_build_cfg() argument
1280 if (zend_build_cfg(&CG(arena), op_array, flags, cfg) != SUCCESS) { in zend_jit_build_cfg()
1287 if (cfg->blocks_count > 100000) { in zend_jit_build_cfg()
1291 if (zend_cfg_build_predecessors(&CG(arena), cfg) != SUCCESS) { in zend_jit_build_cfg()
1296 if (zend_cfg_compute_dominators_tree(op_array, cfg) != SUCCESS) { in zend_jit_build_cfg()
1301 if (zend_cfg_identify_loops(op_array, cfg) != SUCCESS) { in zend_jit_build_cfg()
1310 if (zend_jit_build_cfg(op_array, &ssa->cfg) != SUCCESS) { in zend_jit_op_array_analyze1()
1316 if ((ssa->cfg.flags & ZEND_FUNC_HAS_EXTENDED_INFO)) { in zend_jit_op_array_analyze1()
1323 ssa->cfg.flags |= ZEND_FUNC_INDIRECT_VAR_ACCESS; in zend_jit_op_array_analyze1()
1327 && ssa->cfg.blocks in zend_jit_op_array_analyze1()
1330 && !(ssa->cfg.flags & ZEND_FUNC_INDIRECT_VAR_ACCESS)) { in zend_jit_op_array_analyze1()
1354 && ssa->cfg.blocks in zend_jit_op_array_analyze2()
1357 && !(ssa->cfg.flags & ZEND_FUNC_INDIRECT_VAR_ACCESS)) { in zend_jit_op_array_analyze2()
1610 zend_basic_block *b = ssa->cfg.blocks + n; in zend_jit_compute_block_order_int()
1618 b = ssa->cfg.blocks + n; in zend_jit_compute_block_order_int()
1642 b = ssa->cfg.blocks + b->loop_header; in zend_jit_in_loop()
1649 zend_basic_block *b = ssa->cfg.blocks + n; in zend_jit_compute_loop_body()
1661 b = ssa->cfg.blocks + n; in zend_jit_compute_loop_body()
1709 ZEND_MM_ALIGNED_SIZE((set_size * ssa->cfg.blocks_count) * ZEND_BITSET_ELM_SIZE) + in zend_jit_compute_liveness()
1713 ZEND_MM_ALIGNED_SIZE(ssa->cfg.blocks_count * sizeof(int)); in zend_jit_compute_liveness()
1721 …live = (zend_bitset)((char*)live_in + ZEND_MM_ALIGNED_SIZE((set_size * ssa->cfg.blocks_count) * ZE… in zend_jit_compute_liveness()
1727 zend_bitset_clear(live_in, set_size * ssa->cfg.blocks_count); in zend_jit_compute_liveness()
1737 b = ssa->cfg.blocks + i; in zend_jit_compute_liveness()
1758 for (k = 0; k < ssa->cfg.blocks[succ].predecessors_count; k++) { in zend_jit_compute_liveness()
1759 if (ssa->cfg.predecessors[ssa->cfg.blocks[succ].predecessor_offset + k] == i) { in zend_jit_compute_liveness()
1855 for (i = ssa->cfg.blocks_count - 1; i >= 0; i--) { in zend_jit_compute_liveness()
1856 zend_basic_block *b = ssa->cfg.blocks + i; in zend_jit_compute_liveness()
1903 for (k = 0; k < ssa->cfg.blocks[phi->block].predecessors_count; k++) { in zend_jit_compute_liveness()
2538 for (k = 0; k < ssa->cfg.blocks[phi->block].predecessors_count; k++) { in zend_jit_allocate_registers()
2562 for (k = 0; k < ssa->cfg.blocks[phi->block].predecessors_count; k++) { in zend_jit_allocate_registers()
2729 for (b = 0; b < ssa->cfg.blocks_count; b++) { in zend_jit()
2730 if (ssa->cfg.blocks[b].flags & ZEND_BB_REACHABLE && in zend_jit()
2731 ssa->cfg.blocks[b].len > 1) { in zend_jit()
2733 opline = op_array->opcodes + ssa->cfg.blocks[b].start + ssa->cfg.blocks[b].len - 1; in zend_jit()
2736 ssa->cfg.blocks[ssa->cfg.blocks[b].successors[0]].flags |= ZEND_BB_TARGET; in zend_jit()
2745 dasm_growpc(&dasm_state, ssa->cfg.blocks_count * 2 + 1); in zend_jit()
2748 for (b = 0; b < ssa->cfg.blocks_count; b++) { in zend_jit()
2749 if ((ssa->cfg.blocks[b].flags & ZEND_BB_REACHABLE) == 0) { in zend_jit()
2753 if (ssa->cfg.blocks[b].flags & ZEND_BB_ENTRY) { in zend_jit()
2754 if (ssa->cfg.blocks[b].flags & ZEND_BB_TARGET) { in zend_jit()
2757 ssa->cfg.blocks[b].len == 1 && in zend_jit()
2758 (ssa->cfg.blocks[b].flags & ZEND_BB_EXIT) && in zend_jit()
2759 op_array->opcodes[ssa->cfg.blocks[b].start].opcode != ZEND_JMP) { in zend_jit()
2763 if (ssa->cfg.blocks[b].flags & ZEND_BB_FOLLOW) { in zend_jit()
2768 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2772 if (ssa->cfg.blocks[b].flags & (ZEND_BB_START|ZEND_BB_RECV_ENTRY)) { in zend_jit()
2773 opline = op_array->opcodes + ssa->cfg.blocks[b].start; in zend_jit()
2774 if (ssa->cfg.flags & ZEND_CFG_RECV_ENTRY) { in zend_jit()
2781 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2783 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b + i); in zend_jit()
2794 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2811 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2819 ssa->cfg.blocks[b].len == 1 && in zend_jit()
2820 (ssa->cfg.blocks[b].flags & ZEND_BB_EXIT)) { in zend_jit()
2829 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2834 ssa->cfg.blocks[b].len == 1 && in zend_jit()
2835 (ssa->cfg.blocks[b].flags & ZEND_BB_EXIT)) { in zend_jit()
2844 zend_jit_label(&dasm_state, ssa->cfg.blocks_count + b); in zend_jit()
2853 if ((ssa->cfg.blocks[b].flags & ZEND_BB_FOLLOW) in zend_jit()
2854 && ssa->cfg.blocks[b].start != 0 in zend_jit()
2855 && (op_array->opcodes[ssa->cfg.blocks[b].start - 1].opcode == ZEND_NOP in zend_jit()
2856 || op_array->opcodes[ssa->cfg.blocks[b].start - 1].opcode == ZEND_SWITCH_LONG in zend_jit()
2857 || op_array->opcodes[ssa->cfg.blocks[b].start - 1].opcode == ZEND_SWITCH_STRING in zend_jit()
2858 || op_array->opcodes[ssa->cfg.blocks[b].start - 1].opcode == ZEND_MATCH)) { in zend_jit()
2860 if (!zend_jit_set_ip(&dasm_state, op_array->opcodes + ssa->cfg.blocks[b].start)) { in zend_jit()
2864 zend_jit_set_last_valid_opline(op_array->opcodes + ssa->cfg.blocks[b].start); in zend_jit()
2866 } else if (ssa->cfg.blocks[b].flags & ZEND_BB_TARGET) { in zend_jit()
2868 } else if (ssa->cfg.blocks[b].flags & (ZEND_BB_START|ZEND_BB_RECV_ENTRY|ZEND_BB_ENTRY)) { in zend_jit()
2869 zend_jit_set_last_valid_opline(op_array->opcodes + ssa->cfg.blocks[b].start); in zend_jit()
2871 if (ssa->cfg.blocks[b].flags & ZEND_BB_LOOP_HEADER) { in zend_jit()
2872 if (!zend_jit_check_timeout(&dasm_state, op_array->opcodes + ssa->cfg.blocks[b].start, NULL)) { in zend_jit()
2876 if (!ssa->cfg.blocks[b].len) { in zend_jit()
2903 end = ssa->cfg.blocks[b].start + ssa->cfg.blocks[b].len - 1; in zend_jit()
2904 for (i = ssa->cfg.blocks[b].start; i <= end; i++) { in zend_jit()
3460 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3461 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3494 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3495 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3520 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3521 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3544 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3545 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3579 jit_return_label = ssa->cfg.blocks_count * 2; in zend_jit()
3608 NULL, NULL, (ssa->cfg.flags & ZEND_FUNC_INDIRECT_VAR_ACCESS) != 0, 1)) { in zend_jit()
3625 if (opline > op_array->opcodes + ssa->cfg.blocks[b].start && in zend_jit()
3628 if (!zend_jit_cond_jmp(&dasm_state, opline + 1, ssa->cfg.blocks[b].successors[0])) { in zend_jit()
3644 ssa->cfg.blocks[b].successors[0], ssa->cfg.blocks[b].successors[1], in zend_jit()
3664 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3665 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3694 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3695 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3751 target_label = ssa->cfg.blocks[b].successors[0]; in zend_jit()
3752 target_label2 = ssa->cfg.blocks[b].successors[1]; in zend_jit()
3911 ssa->cfg.blocks[b].successors[0], opline->opcode, NULL)) { in zend_jit()
4000 if (!zend_jit_jmp(&dasm_state, ssa->cfg.blocks[b].successors[0])) { in zend_jit()
4035 …!zend_jit_cond_jmp(&dasm_state, OP_JMP_ADDR(opline, opline->op2), ssa->cfg.blocks[b].successors[1]… in zend_jit()
4036 !zend_jit_jmp(&dasm_state, ssa->cfg.blocks[b].successors[0])) { in zend_jit()
4043 if (opline > op_array->opcodes + ssa->cfg.blocks[b].start && in zend_jit()
4046 if (!zend_jit_cond_jmp(&dasm_state, opline + 1, ssa->cfg.blocks[b].successors[0])) { in zend_jit()
4064 !zend_jit_cond_jmp(&dasm_state, opline + 1, ssa->cfg.blocks[b].successors[0])) { in zend_jit()
4097 zend_jit_cond_jmp(&dasm_state, next_opline, ssa->cfg.blocks[b].successors[0]); in zend_jit()
4118 if (!zend_jit_cond_jmp(&dasm_state, opline + 2, ssa->cfg.blocks[b+1].successors[0])) { in zend_jit()
4121 if (!zend_jit_jmp(&dasm_state, ssa->cfg.blocks[b+1].successors[1])) { in zend_jit()
4381 static void zend_jit_setup_hot_counters_ex(zend_op_array *op_array, zend_cfg *cfg) in zend_jit_setup_hot_counters_ex() argument
4398 for (i = 0; i < cfg->blocks_count; i++) { in zend_jit_setup_hot_counters_ex()
4399 if ((cfg->blocks[i].flags & ZEND_BB_REACHABLE) && in zend_jit_setup_hot_counters_ex()
4400 (cfg->blocks[i].flags & ZEND_BB_LOOP_HEADER)) { in zend_jit_setup_hot_counters_ex()
4401 op_array->opcodes[cfg->blocks[i].start].handler = in zend_jit_setup_hot_counters_ex()
4411 zend_cfg cfg; in zend_jit_restart_hot_counters() local
4419 if (zend_jit_build_cfg(op_array, &cfg) != SUCCESS) { in zend_jit_restart_hot_counters()
4423 zend_jit_setup_hot_counters_ex(op_array, &cfg); in zend_jit_restart_hot_counters()
4431 zend_cfg cfg; in zend_jit_setup_hot_counters() local
4437 if (zend_jit_build_cfg(op_array, &cfg) != SUCCESS) { in zend_jit_setup_hot_counters()
4453 zend_jit_setup_hot_counters_ex(op_array, &cfg); in zend_jit_setup_hot_counters()
4574 info->flags = info->ssa.cfg.flags; in zend_jit_script()
4594 info->flags = info->ssa.cfg.flags; in zend_jit_script()