Lines Matching refs:ssa

56 	uint32_t edge = scdf_edge(&scdf->ssa->cfg, from, to);  in scdf_mark_edge_feasible()
74 zend_ssa_block *ssa_block = &scdf->ssa->blocks[to]; in scdf_mark_edge_feasible()
83 void scdf_init(zend_optimizer_ctx *ctx, scdf_ctx *scdf, zend_op_array *op_array, zend_ssa *ssa) { in scdf_init() argument
85 scdf->ssa = ssa; in scdf_init()
88 scdf->phi_var_worklist_len = zend_bitset_len(ssa->vars_count); in scdf_init()
89 scdf->block_worklist_len = zend_bitset_len(ssa->cfg.blocks_count); in scdf_init()
92 … scdf->phi_var_worklist_len + 2 * scdf->block_worklist_len + zend_bitset_len(ssa->cfg.edges_count), in scdf_init()
105 zend_ssa *ssa = scdf->ssa; in scdf_solve() local
113 zend_ssa_phi *phi = ssa->vars[i].definition_phi; in scdf_solve()
121 int block_num = ssa->cfg.map[i]; in scdf_solve()
123 zend_basic_block *block = &ssa->cfg.blocks[block_num]; in scdf_solve()
125 zend_ssa_op *ssa_op = &ssa->ops[i]; in scdf_solve()
143 zend_basic_block *block = &ssa->cfg.blocks[i]; in scdf_solve()
144 zend_ssa_block *ssa_block = &ssa->blocks[i]; in scdf_solve()
167 scdf->handlers.visit_instr(scdf, opline, &ssa->ops[j]); in scdf_solve()
178 scdf->handlers.mark_feasible_successors(scdf, i, block, opline, &ssa->ops[j-1]); in scdf_solve()
191 const zend_cfg *cfg = &scdf->ssa->cfg; in kept_alive_by_loop_var_free()
199 int ssa_var = scdf->ssa->ops[i].op1_use; in kept_alive_by_loop_var_free()
201 int op_num = scdf->ssa->vars[ssa_var].definition; in kept_alive_by_loop_var_free()
218 zend_ssa *ssa = scdf->ssa; in scdf_remove_unreachable_blocks() local
221 for (i = 0; i < ssa->cfg.blocks_count; i++) { in scdf_remove_unreachable_blocks()
223 && (ssa->cfg.blocks[i].flags & ZEND_BB_REACHABLE) in scdf_remove_unreachable_blocks()
225 removed_ops += ssa->cfg.blocks[i].len; in scdf_remove_unreachable_blocks()
226 zend_ssa_remove_block(scdf->op_array, ssa, i); in scdf_remove_unreachable_blocks()