Hi Dmitry,

I found that INIT_FCALL doesn't use opline->result.var and DO_ICALL doesn't
use op1 or op2. The original purpose of separating these two op was for
sending parameters.

However, if a function doesn't need parameters and it's an internal
function, I think the operation could be merged into INIT_FCALL.

So I guess we can do this below to reduce one bytecode for each function
call without parameters:

    if (opline->extended_value == 0) {
         // call the function directly and store the value in the result.
    }

Your thoughts?




Best Regards,

Yo-An Lin

Reply via email to