Lines Matching refs:ssa

9331 …onst zend_op *opline, uint32_t b, const zend_op_array *op_array, zend_ssa *ssa, const zend_ssa_op …
9490 if (zend_jit_needs_call_chain(call_info, b, op_array, ssa, ssa_op, opline, call_level, trace)) {
9506 zend_ssa *ssa,
9742 if (zend_jit_needs_call_chain(call_info, b, op_array, ssa, ssa_op, opline, call_level, trace)) {
9758 zend_ssa *ssa,
9769 if (ssa->var_info[ssa_op->op2_use].ce != zend_ce_closure
9770 && !(ssa->var_info[ssa_op->op2_use].type & MAY_BE_CLASS_GUARD)) {
9789 if (ssa->var_info && ssa_op->op2_use >= 0) {
9790 ssa->var_info[ssa_op->op2_use].type |= MAY_BE_CLASS_GUARD;
9791 ssa->var_info[ssa_op->op2_use].ce = zend_ce_closure;
9792 ssa->var_info[ssa_op->op2_use].is_instanceof = 0;
9835 if (zend_jit_needs_call_chain(NULL, b, op_array, ssa, ssa_op, opline, call_level, trace)) {
9855 …ate **Dst, const zend_op *opline, const zend_op_array *op_array, zend_ssa *ssa, int call_level, un…
10095 num_args = skip_valid_arguments(op_array, ssa, call_info);
10427 zend_get_func_info(call_info, ssa, &ce, &ce_is_instanceof) :
11810 zend_ssa *ssa,
11865 ssa->var_info[ssa_op->result_def].avoid_refcounting = 1;
11884 ssa->var_info[ssa_op->result_def].type &= ~MAY_BE_GUARD;
12899 zend_ssa *ssa,
12982 if (ssa->var_info && ssa_op->op1_use >= 0) {
12983 ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
12984 ssa->var_info[ssa_op->op1_use].ce = ce;
12985 ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
13188 ssa->var_info[ssa_op->result_def].indirect_reference = 1;
13214 ssa->var_info[ssa_op->result_def].avoid_refcounting = 1;
13256 ssa->var_info[ssa_op->result_def].type &= ~MAY_BE_GUARD;
13404 zend_ssa *ssa,
13501 if (ssa->var_info && ssa_op->op1_use >= 0) {
13502 ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
13503 ssa->var_info[ssa_op->op1_use].ce = ce;
13504 ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
13506 if (ssa->var_info && ssa_op->op1_def >= 0) {
13507 ssa->var_info[ssa_op->op1_def].type |= MAY_BE_CLASS_GUARD;
13508 ssa->var_info[ssa_op->op1_def].ce = ce;
13509 ssa->var_info[ssa_op->op1_def].is_instanceof = ce_is_instanceof;
13784 ssa->var_info[ssa_op->result_def].type = res_info & ~MAY_BE_GUARD;
13867 zend_ssa *ssa,
13974 if (ssa->var_info && ssa_op->op1_use >= 0) {
13975 ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
13976 ssa->var_info[ssa_op->op1_use].ce = ce;
13977 ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
13979 if (ssa->var_info && ssa_op->op1_def >= 0) {
13980 ssa->var_info[ssa_op->op1_def].type |= MAY_BE_CLASS_GUARD;
13981 ssa->var_info[ssa_op->op1_def].ce = ce;
13982 ssa->var_info[ssa_op->op1_def].is_instanceof = ce_is_instanceof;
14291 zend_ssa *ssa,
14398 if (ssa->var_info && ssa_op->op1_use >= 0) {
14399 ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
14400 ssa->var_info[ssa_op->op1_use].ce = ce;
14401 ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
14403 if (ssa->var_info && ssa_op->op1_def >= 0) {
14404 ssa->var_info[ssa_op->op1_def].type |= MAY_BE_CLASS_GUARD;
14405 ssa->var_info[ssa_op->op1_def].ce = ce;
14406 ssa->var_info[ssa_op->op1_def].is_instanceof = ce_is_instanceof;
14841 …ate **Dst, const zend_op *opline, const zend_op_array *op_array, zend_ssa *ssa, HashTable *jumptab…
14902 b = ssa->cfg.map[target - op_array->opcodes];
14927 …ate **Dst, const zend_op *opline, const zend_op_array *op_array, zend_ssa *ssa, zend_jit_trace_rec…
14971 b = ssa->cfg.map[ZEND_OFFSET_TO_OPLINE(opline, Z_LVAL_P(jump_zv)) - op_array->opcodes];
14973 b = ssa->cfg.map[ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value) - op_array->opcodes];
14978 zend_ssa_op *ssa_op = &ssa->ops[opline - op_array->opcodes];
14983 int default_b = next_opline ? -1 : ssa->cfg.map[default_opline - op_array->opcodes];
15080 b = ssa->cfg.map[target - op_array->opcodes];
15101 …if (!zend_jit_hash_jmp(Dst, opline, op_array, ssa, jumptable, default_b, default_label, next_oplin…
15142 …if (!zend_jit_hash_jmp(Dst, opline, op_array, ssa, jumptable, default_b, default_label, next_oplin…
15192 …if (!zend_jit_hash_jmp(Dst, opline, op_array, ssa, jumptable, default_b, default_label, next_oplin…
15605 zend_ssa *ssa,
15641 ssa->var_info[ssa_op->result_def].type &= ~MAY_BE_GUARD;
15903 static bool zend_jit_may_reuse_reg(const zend_op *opline, const zend_ssa_op *ssa_op, zend_ssa *ssa,…
15905 …if ((ssa->var_info[def_var].type & ~MAY_BE_GUARD) != (ssa->var_info[use_var].type & ~MAY_BE_GUARD)…
15935 static bool zend_jit_opline_supports_reg(const zend_op_array *op_array, zend_ssa *ssa, const zend_o…
15997 if (!ssa->cfg.map) {
16000 … if (opline > op_array->opcodes + ssa->cfg.blocks[ssa->cfg.map[opline-op_array->opcodes]].start &&
16030 static bool zend_jit_var_supports_reg(zend_ssa *ssa, int var)
16032 if (ssa->vars[var].no_val) {
16041 if (ssa->vars[var].definition_phi) {
16044 if (ssa->vars[var].phi_use_chain) {
16045 zend_ssa_phi *phi = ssa->vars[var].phi_use_chain;
16047 if (!ssa->vars[phi->ssa_var].no_val) {
16050 phi = zend_ssa_next_use_phi(ssa, var, phi);
16055 if (((ssa->var_info[var].type & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) != MAY_BE_DOUBLE) &&
16056 ((ssa->var_info[var].type & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) != MAY_BE_LONG)) {
16064 static bool zend_jit_may_be_in_reg(const zend_op_array *op_array, zend_ssa *ssa, int var)
16066 if (!zend_jit_var_supports_reg(ssa, var)) {
16070 if (ssa->vars[var].definition >= 0) {
16071 uint32_t def = ssa->vars[var].definition;
16072 if (!zend_jit_opline_supports_reg(op_array, ssa, op_array->opcodes + def, ssa->ops + def, NULL)) {
16077 if (ssa->vars[var].use_chain >= 0) {
16078 int use = ssa->vars[var].use_chain;
16081 if (!zend_ssa_is_no_val_use(op_array->opcodes + use, ssa->ops + use, var) &&
16082 … !zend_jit_opline_supports_reg(op_array, ssa, op_array->opcodes + use, ssa->ops + use, NULL)) {
16085 use = zend_ssa_next_use(ssa->ops, var, use);
16107 …pline, const zend_ssa_op *ssa_op, const zend_op_array *op_array, zend_ssa *ssa, int current_var, b…
16129 …pline, const zend_ssa_op *ssa_op, const zend_op_array *op_array, zend_ssa *ssa, int current_var, b…
16435 if (ssa_op == ssa->ops
16445 if (ssa_op == ssa->ops
16457 uint32_t b = ssa->cfg.map[ssa_op - ssa->ops];
16459 if ((ssa->cfg.blocks[b].flags & ZEND_BB_LOOP_HEADER) != 0
16460 && ssa->cfg.blocks[b].start == ssa_op - ssa->ops) {