The new proposed patch: http://pastebin.com/pj5fQTfN
Now both execute_data->Ts and execute_data->CVs are removed and
corresponding temporary and compiled variables accessed using
"execute_data" as the base pointer. Temporary variables allocate directly
before the "execute_data" in reverse order an
Hi Dmitry.
is this improvemnt (intruction reduce and memory read reduce) preserved under
"strong" compiler optimization (-O2, -O3) ?
is it something that the compiler can not automatically optimize ?
anyhow, the patch seems impressive...
On Monday, December 03, 2012 11:35:52 AM Dmitry Stogov wro
Hi Yoram,
Yeas, I checked memory reads on a release PHP built (with -O2 optimization
level).
The idea is very simple. Before the patch each access to TMP was
implemented as:
execute_data->Ts + offset
GCC with -O2 kept execute_data in register but it needed to read
execute_data->Ts anyway and th
On Mon, Dec 3, 2012 at 2:26 PM, Dmitry Stogov wrote:
> Hi Yoram,
>
> Yeas, I checked memory reads on a release PHP built (with -O2 optimization
> level).
>
> The idea is very simple. Before the patch each access to TMP was
> implemented as:
>
> execute_data->Ts + offset
>
> GCC with -O2 kept exec
On Mon, Dec 3, 2012 at 10:35 AM, Dmitry Stogov wrote:
> The new proposed patch: http://pastebin.com/pj5fQTfN
>
> Now both execute_data->Ts and execute_data->CVs are removed and
> corresponding temporary and compiled variables accessed using
> "execute_data" as the base pointer. Temporary variable
Unfortunately, I didn't see visible performance gain on x86. :(
It's near the measurement mistake.
Probably it's because reading from L1 data cache is very cheap.
Thanks. Dmitry.
On Mon, Dec 3, 2012 at 7:33 PM, Nikita Popov wrote:
> On Mon, Dec 3, 2012 at 10:35 AM, Dmitry Stogov wrote:
>
>> Th