Lines Matching refs:opline

74 		const zend_op *opline, const zend_ssa_op *ssa_op,  in may_have_side_effects()  argument
76 switch (opline->opcode) { in may_have_side_effects()
169 if (opline->op2_type != IS_CONST && (OP2_INFO() & MAY_HAVE_DTOR)) { in may_have_side_effects()
207 if (opline->extended_value) { in may_have_side_effects()
238 static zend_always_inline void add_operands_to_worklists(context *ctx, zend_op *opline, zend_ssa_op… in add_operands_to_worklists() argument
243 if (!zend_ssa_is_no_val_use(opline, ssa_op, ssa_op->op1_use)) { in add_operands_to_worklists()
250 if (!zend_ssa_is_no_val_use(opline, ssa_op, ssa_op->op2_use)) { in add_operands_to_worklists()
281 static zend_bool try_remove_var_def(context *ctx, int free_var, int use_chain, zend_op *opline) { in try_remove_var_def() argument
293 && var->use_chain == (opline - ctx->op_array->opcodes)) { in try_remove_var_def()
341 static zend_bool dce_instr(context *ctx, zend_op *opline, zend_ssa_op *ssa_op) { in dce_instr() argument
346 if (opline->opcode == ZEND_NOP) { in dce_instr()
351 if (opline->opcode == ZEND_FREE in dce_instr()
357 if ((opline->op1_type & (IS_VAR|IS_TMP_VAR))&& !is_var_dead(ctx, ssa_op->op1_use)) { in dce_instr()
358 if (!try_remove_var_def(ctx, ssa_op->op1_use, ssa_op->op1_use_chain, opline)) { in dce_instr()
360 && opline->opcode != ZEND_CASE) { in dce_instr()
362 free_var_type = opline->op1_type; in dce_instr()
366 if ((opline->op2_type & (IS_VAR|IS_TMP_VAR)) && !is_var_dead(ctx, ssa_op->op2_use)) { in dce_instr()
367 if (!try_remove_var_def(ctx, ssa_op->op2_use, ssa_op->op2_use_chain, opline)) { in dce_instr()
371 zend_bitset_excl(ctx->instr_dead, opline - ctx->op_array->opcodes); in dce_instr()
375 free_var_type = opline->op2_type; in dce_instr()
381 zend_ssa_remove_instr(ctx->ssa, opline, ssa_op); in dce_instr()
384 opline->opcode = ZEND_FREE; in dce_instr()
385 opline->op1.var = (uintptr_t) ZEND_CALL_VAR_NUM(NULL, ssa->vars[free_var].var); in dce_instr()
386 opline->op1_type = free_var_type; in dce_instr()
402 zend_op *opline = &op_array->opcodes[block->start + block->len - 1]; in simplify_jumps() local
411 switch (opline->opcode) { in simplify_jumps()
416 opline->opcode = ZEND_JMPZ; in simplify_jumps()
417 opline->result_type = IS_UNUSED; in simplify_jumps()
426 opline->opcode = ZEND_JMPNZ; in simplify_jumps()
427 opline->result_type = IS_UNUSED; in simplify_jumps()
434 switch (opline->opcode) { in simplify_jumps()
438 opline->opcode = ZEND_BOOL; in simplify_jumps()
444 opline->opcode = ZEND_QM_ASSIGN; in simplify_jumps()
449 if (opline->op1_type != IS_CONST) { in simplify_jumps()
454 op1 = &ZEND_OP1_LITERAL(opline); in simplify_jumps()
455 switch (opline->opcode) { in simplify_jumps()
459 opline->op1_type = IS_UNUSED; in simplify_jumps()
460 opline->op1.num = opline->op2.num; in simplify_jumps()
461 opline->opcode = ZEND_JMP; in simplify_jumps()
463 MAKE_NOP(opline); in simplify_jumps()
470 opline->op1_type = IS_UNUSED; in simplify_jumps()
471 opline->op1.num = opline->op2.num; in simplify_jumps()
472 opline->opcode = ZEND_JMP; in simplify_jumps()
474 MAKE_NOP(opline); in simplify_jumps()
488 opline->op1_type = IS_UNUSED; in simplify_jumps()
489 opline->op1.num = opline->op2.num; in simplify_jumps()
490 opline->opcode = ZEND_JMP; in simplify_jumps()
491 opline->result_type = IS_UNUSED; in simplify_jumps()
493 MAKE_NOP(opline); in simplify_jumps()