Lines Matching refs:ssa
55 uint32_t edge = scdf_edge(&scdf->ssa->cfg, from, to); in scdf_mark_edge_feasible()
73 zend_ssa_block *ssa_block = &scdf->ssa->blocks[to]; in scdf_mark_edge_feasible()
82 void scdf_init(zend_optimizer_ctx *ctx, scdf_ctx *scdf, zend_op_array *op_array, zend_ssa *ssa) { in scdf_init() argument
84 scdf->ssa = ssa; in scdf_init()
87 scdf->phi_var_worklist_len = zend_bitset_len(ssa->vars_count); in scdf_init()
88 scdf->block_worklist_len = zend_bitset_len(ssa->cfg.blocks_count); in scdf_init()
91 … scdf->phi_var_worklist_len + 2 * scdf->block_worklist_len + zend_bitset_len(ssa->cfg.edges_count), in scdf_init()
104 zend_ssa *ssa = scdf->ssa; in scdf_solve() local
112 zend_ssa_phi *phi = ssa->vars[i].definition_phi; in scdf_solve()
120 int block_num = ssa->cfg.map[i]; in scdf_solve()
122 zend_basic_block *block = &ssa->cfg.blocks[block_num]; in scdf_solve()
124 zend_ssa_op *ssa_op = &ssa->ops[i]; in scdf_solve()
142 zend_basic_block *block = &ssa->cfg.blocks[i]; in scdf_solve()
143 zend_ssa_block *ssa_block = &ssa->blocks[i]; in scdf_solve()
166 scdf->handlers.visit_instr(scdf, opline, &ssa->ops[j]); in scdf_solve()
177 scdf->handlers.mark_feasible_successors(scdf, i, block, opline, &ssa->ops[j-1]); in scdf_solve()
198 zend_ssa_var *ssa_var = &scdf->ssa->vars[var]; in is_live_loop_var_free()
201 def_block = scdf->ssa->cfg.map[ssa_var->definition]; in is_live_loop_var_free()
210 const zend_cfg *cfg = &scdf->ssa->cfg; in kept_alive_by_loop_var_free()
216 if (is_live_loop_var_free(scdf, &op_array->opcodes[i], &scdf->ssa->ops[i])) { in kept_alive_by_loop_var_free()
224 zend_ssa *ssa = scdf->ssa; in cleanup_loop_var_free_block() local
226 const zend_cfg *cfg = &ssa->cfg; in cleanup_loop_var_free_block()
231 for (zend_ssa_phi *phi = ssa->blocks[block_num].phis; phi; phi = phi->next) { in cleanup_loop_var_free_block()
232 zend_ssa_remove_uses_of_var(ssa, phi->ssa_var); in cleanup_loop_var_free_block()
233 zend_ssa_remove_phi(ssa, phi); in cleanup_loop_var_free_block()
238 zend_ssa_op *ssa_op = &scdf->ssa->ops[i]; in cleanup_loop_var_free_block()
246 zend_ssa_remove_defs_of_instr(ssa, ssa_op); in cleanup_loop_var_free_block()
247 zend_ssa_remove_instr(ssa, opline, ssa_op); in cleanup_loop_var_free_block()
251 zend_ssa_remove_block_from_cfg(ssa, block_num); in cleanup_loop_var_free_block()
260 zend_ssa *ssa = scdf->ssa; in scdf_remove_unreachable_blocks() local
263 for (i = 0; i < ssa->cfg.blocks_count; i++) { in scdf_remove_unreachable_blocks()
264 zend_basic_block *block = &ssa->cfg.blocks[i]; in scdf_remove_unreachable_blocks()
268 zend_ssa_remove_block(scdf->op_array, ssa, i); in scdf_remove_unreachable_blocks()