I think this optimization could be done by two approach:

1. Add another FCALL op, which init a function call and call that function
directly for functions without parameters.

2. Let the original INIT_FCALL support "call function when the number of
parameter == 0"

On Fri, Apr 15, 2016 at 5:27 PM, Lin Yo-An <cornelius.h...@gmail.com> wrote:

> 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
>



-- 
Best Regards,

Yo-An Lin

Reply via email to