Lines Matching refs:opline

32 #define ZEND_OP1_IS_CONST_STRING(opline) \  argument
33 (opline->op1_type == IS_CONST && \
34 Z_TYPE(op_array->literals[(opline)->op1.constant]) == IS_STRING)
35 #define ZEND_OP2_IS_CONST_STRING(opline) \ argument
36 (opline->op2_type == IS_CONST && \
37 Z_TYPE(op_array->literals[(opline)->op2.constant]) == IS_STRING)
41 zend_op *opline; member
46 static void zend_delete_call_instructions(zend_op *opline) in zend_delete_call_instructions() argument
51 switch (opline->opcode) { in zend_delete_call_instructions()
58 MAKE_NOP(opline); in zend_delete_call_instructions()
76 if (opline->op1_type == IS_CONST) { in zend_delete_call_instructions()
77 MAKE_NOP(opline); in zend_delete_call_instructions()
78 } else if (opline->op1_type == IS_CV) { in zend_delete_call_instructions()
79 opline->opcode = ZEND_CHECK_VAR; in zend_delete_call_instructions()
80 opline->extended_value = 0; in zend_delete_call_instructions()
81 opline->result.var = 0; in zend_delete_call_instructions()
83 opline->opcode = ZEND_FREE; in zend_delete_call_instructions()
84 opline->extended_value = 0; in zend_delete_call_instructions()
85 opline->result.var = 0; in zend_delete_call_instructions()
90 opline--; in zend_delete_call_instructions()
94 static void zend_try_inline_call(zend_op_array *op_array, zend_op *fcall, zend_op *opline, zend_fun… in zend_try_inline_call() argument
142 if (RETURN_VALUE_USED(opline)) { in zend_try_inline_call()
146 opline->opcode = ZEND_QM_ASSIGN; in zend_try_inline_call()
147 opline->op1_type = IS_CONST; in zend_try_inline_call()
148 opline->op1.constant = zend_optimizer_add_literal(op_array, &zv); in zend_try_inline_call()
149 SET_UNUSED(opline->op2); in zend_try_inline_call()
151 MAKE_NOP(opline); in zend_try_inline_call()
154 zend_delete_call_instructions(opline-1); in zend_try_inline_call()
161 zend_op *opline = op_array->opcodes; in zend_optimize_func_calls() local
162 zend_op *end = opline + op_array->last; in zend_optimize_func_calls()
173 while (opline < end) { in zend_optimize_func_calls()
174 switch (opline->opcode) { in zend_optimize_func_calls()
182 ctx->script, op_array, opline, 0); in zend_optimize_func_calls()
183 call_stack[call].try_inline = opline->opcode != ZEND_NEW; in zend_optimize_func_calls()
187 call_stack[call].opline = opline; in zend_optimize_func_calls()
196 if (call_stack[call].func && call_stack[call].opline) { in zend_optimize_func_calls()
197 zend_op *fcall = call_stack[call].opline; in zend_optimize_func_calls()
206 opline->opcode = zend_get_call_op(fcall, call_stack[call].func); in zend_optimize_func_calls()
213 opline->opcode = zend_get_call_op(fcall, call_stack[call].func); in zend_optimize_func_calls()
224 zend_try_inline_call(op_array, fcall, opline, call_stack[call].func); in zend_optimize_func_calls()
228 call_stack[call].opline = NULL; in zend_optimize_func_calls()
239 if (opline->opcode != ZEND_FETCH_STATIC_PROP_FUNC_ARG) { in zend_optimize_func_calls()
240 opline->opcode -= 9; in zend_optimize_func_calls()
242 opline->opcode = ZEND_FETCH_STATIC_PROP_W; in zend_optimize_func_calls()
245 if (opline->opcode == ZEND_FETCH_DIM_FUNC_ARG in zend_optimize_func_calls()
246 && opline->op2_type == IS_UNUSED) { in zend_optimize_func_calls()
253 if (opline->opcode != ZEND_FETCH_STATIC_PROP_FUNC_ARG) { in zend_optimize_func_calls()
254 opline->opcode -= 12; in zend_optimize_func_calls()
256 opline->opcode = ZEND_FETCH_STATIC_PROP_R; in zend_optimize_func_calls()
263 if (ARG_MUST_BE_SENT_BY_REF(call_stack[call - 1].func, opline->op2.num)) { in zend_optimize_func_calls()
265 call_stack[call - 1].opline = NULL; in zend_optimize_func_calls()
267 opline->opcode = ZEND_SEND_VAL; in zend_optimize_func_calls()
273 call_stack[call - 1].func_arg_num = opline->op2.num; in zend_optimize_func_calls()
274 MAKE_NOP(opline); in zend_optimize_func_calls()
281 if (ARG_SHOULD_BE_SENT_BY_REF(call_stack[call - 1].func, opline->op2.num)) { in zend_optimize_func_calls()
282 opline->opcode = ZEND_SEND_REF; in zend_optimize_func_calls()
284 opline->opcode = ZEND_SEND_VAR; in zend_optimize_func_calls()
290 if (ARG_MUST_BE_SENT_BY_REF(call_stack[call - 1].func, opline->op2.num)) { in zend_optimize_func_calls()
291 opline->opcode = ZEND_SEND_VAR_NO_REF; in zend_optimize_func_calls()
292 } else if (ARG_MAY_BE_SENT_BY_REF(call_stack[call - 1].func, opline->op2.num)) { in zend_optimize_func_calls()
293 opline->opcode = ZEND_SEND_VAL; in zend_optimize_func_calls()
295 opline->opcode = ZEND_SEND_VAR; in zend_optimize_func_calls()
307 opline++; in zend_optimize_func_calls()