Lines Matching refs:ssa

8701 …onst zend_op *opline, uint32_t b, const zend_op_array *op_array, zend_ssa *ssa, const zend_ssa_op …
8822 if (zend_jit_needs_call_chain(call_info, b, op_array, ssa, ssa_op, opline, call_level, trace)) {
8838 zend_ssa *ssa,
9043 if (zend_jit_needs_call_chain(call_info, b, op_array, ssa, ssa_op, opline, call_level, trace)) {
9059 zend_ssa *ssa,
9070 if (ssa->var_info[ssa_op->op2_use].ce != zend_ce_closure
9071 && !(ssa->var_info[ssa_op->op2_use].type & MAY_BE_CLASS_GUARD)) {
9083 if (ssa->var_info && ssa_op->op2_use >= 0) {
9084 ssa->var_info[ssa_op->op2_use].type |= MAY_BE_CLASS_GUARD;
9085 ssa->var_info[ssa_op->op2_use].ce = zend_ce_closure;
9086 ssa->var_info[ssa_op->op2_use].is_instanceof = 0;
9122 if (zend_jit_needs_call_chain(NULL, b, op_array, ssa, ssa_op, opline, call_level, trace)) {
9142 …ate **Dst, const zend_op *opline, const zend_op_array *op_array, zend_ssa *ssa, int call_level, un…
9385 num_args = skip_valid_arguments(op_array, ssa, call_info);
9699 zend_get_func_info(call_info, ssa, &ce, &ce_is_instanceof) :
11076 zend_ssa *ssa,
11131 ssa->var_info[ssa_op->result_def].avoid_refcounting = 1;
11150 ssa->var_info[ssa_op->result_def].type &= ~MAY_BE_GUARD;
12130 zend_ssa *ssa,
12213 if (ssa->var_info && ssa_op->op1_use >= 0) {
12214 ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
12215 ssa->var_info[ssa_op->op1_use].ce = ce;
12216 ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
12406 ssa->var_info[ssa_op->result_def].indirect_reference = 1;
12432 ssa->var_info[ssa_op->result_def].avoid_refcounting = 1;
12475 ssa->var_info[ssa_op->result_def].type &= ~MAY_BE_GUARD;
12624 zend_ssa *ssa,
12721 if (ssa->var_info && ssa_op->op1_use >= 0) {
12722 ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
12723 ssa->var_info[ssa_op->op1_use].ce = ce;
12724 ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
12726 if (ssa->var_info && ssa_op->op1_def >= 0) {
12727 ssa->var_info[ssa_op->op1_def].type |= MAY_BE_CLASS_GUARD;
12728 ssa->var_info[ssa_op->op1_def].ce = ce;
12729 ssa->var_info[ssa_op->op1_def].is_instanceof = ce_is_instanceof;
12982 ssa->var_info[ssa_op->result_def].type = res_info & ~MAY_BE_GUARD;
13049 zend_ssa *ssa,
13155 if (ssa->var_info && ssa_op->op1_use >= 0) {
13156 ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
13157 ssa->var_info[ssa_op->op1_use].ce = ce;
13158 ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
13160 if (ssa->var_info && ssa_op->op1_def >= 0) {
13161 ssa->var_info[ssa_op->op1_def].type |= MAY_BE_CLASS_GUARD;
13162 ssa->var_info[ssa_op->op1_def].ce = ce;
13163 ssa->var_info[ssa_op->op1_def].is_instanceof = ce_is_instanceof;
13431 zend_ssa *ssa,
13538 if (ssa->var_info && ssa_op->op1_use >= 0) {
13539 ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
13540 ssa->var_info[ssa_op->op1_use].ce = ce;
13541 ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
13543 if (ssa->var_info && ssa_op->op1_def >= 0) {
13544 ssa->var_info[ssa_op->op1_def].type |= MAY_BE_CLASS_GUARD;
13545 ssa->var_info[ssa_op->op1_def].ce = ce;
13546 ssa->var_info[ssa_op->op1_def].is_instanceof = ce_is_instanceof;
13918 …ate **Dst, const zend_op *opline, const zend_op_array *op_array, zend_ssa *ssa, HashTable *jumptab…
13968 b = ssa->cfg.map[target - op_array->opcodes];
13993 …ate **Dst, const zend_op *opline, const zend_op_array *op_array, zend_ssa *ssa, zend_jit_trace_rec…
14037 b = ssa->cfg.map[ZEND_OFFSET_TO_OPLINE(opline, Z_LVAL_P(jump_zv)) - op_array->opcodes];
14039 b = ssa->cfg.map[ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value) - op_array->opcodes];
14044 zend_ssa_op *ssa_op = &ssa->ops[opline - op_array->opcodes];
14049 int default_b = next_opline ? -1 : ssa->cfg.map[default_opline - op_array->opcodes];
14142 b = ssa->cfg.map[target - op_array->opcodes];
14164 …if (!zend_jit_hash_jmp(Dst, opline, op_array, ssa, jumptable, default_b, default_label, next_oplin…
14208 …if (!zend_jit_hash_jmp(Dst, opline, op_array, ssa, jumptable, default_b, default_label, next_oplin…
14260 …if (!zend_jit_hash_jmp(Dst, opline, op_array, ssa, jumptable, default_b, default_label, next_oplin…
14662 zend_ssa *ssa,
14698 ssa->var_info[ssa_op->result_def].type &= ~MAY_BE_GUARD;
14958 static bool zend_jit_may_reuse_reg(const zend_op *opline, const zend_ssa_op *ssa_op, zend_ssa *ssa,…
14960 …if ((ssa->var_info[def_var].type & ~MAY_BE_GUARD) != (ssa->var_info[use_var].type & ~MAY_BE_GUARD)…
14992 static bool zend_jit_opline_supports_reg(const zend_op_array *op_array, zend_ssa *ssa, const zend_o…
15054 if (!ssa->cfg.map) {
15057 … if (opline > op_array->opcodes + ssa->cfg.blocks[ssa->cfg.map[opline-op_array->opcodes]].start &&
15087 static bool zend_jit_var_supports_reg(zend_ssa *ssa, int var)
15089 if (ssa->vars[var].no_val) {
15098 if (ssa->vars[var].definition_phi) {
15101 if (ssa->vars[var].phi_use_chain) {
15102 zend_ssa_phi *phi = ssa->vars[var].phi_use_chain;
15104 if (!ssa->vars[phi->ssa_var].no_val) {
15107 phi = zend_ssa_next_use_phi(ssa, var, phi);
15112 if (((ssa->var_info[var].type & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) != MAY_BE_DOUBLE) &&
15113 ((ssa->var_info[var].type & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) != MAY_BE_LONG)) {
15121 static bool zend_jit_may_be_in_reg(const zend_op_array *op_array, zend_ssa *ssa, int var)
15123 if (!zend_jit_var_supports_reg(ssa, var)) {
15127 if (ssa->vars[var].definition >= 0) {
15128 uint32_t def = ssa->vars[var].definition;
15129 if (!zend_jit_opline_supports_reg(op_array, ssa, op_array->opcodes + def, ssa->ops + def, NULL)) {
15134 if (ssa->vars[var].use_chain >= 0) {
15135 int use = ssa->vars[var].use_chain;
15138 if (!zend_ssa_is_no_val_use(op_array->opcodes + use, ssa->ops + use, var) &&
15139 … !zend_jit_opline_supports_reg(op_array, ssa, op_array->opcodes + use, ssa->ops + use, NULL)) {
15142 use = zend_ssa_next_use(ssa->ops, var, use);
15149 …pline, const zend_ssa_op *ssa_op, const zend_op_array *op_array, zend_ssa *ssa, int current_var, b…
15171 …pline, const zend_ssa_op *ssa_op, const zend_op_array *op_array, zend_ssa *ssa, int current_var, b…
15414 if (ssa_op == ssa->ops