Well, as I said I think it actually makes the code more readable, by
hinting you what you can ignore if you're running through the 'common
case' (i.e., even if this macro was a no-op). Diving into a big
block of code is easier if you can ignore parts of it to get the
general understanding of what it does. And if we might get some
performance boost out of it, that's even better.
It boils down to whether the people who are actively hacking on the
engine code today feel that it's really making the code less
readable, or the other way around. It's not such a big deal either way.
Zeev
At 18:00 20/06/2006, Andi Gutmans wrote:
The source code is already hard to maintain. I think the more macros,
uncommon and compiler specific things we have in there, the harder it will
get. That's why I think that if it doesn't give much benefit it actually
hurts to have it in because maintenance keeps on getting harder.
Again, I think it's a cool effort by Nuno and I'll be interested to watch
more fine-tuned results but I've been down this patch and it seems the CPUs
do their work fairly OK.
>-----Original Message-----
>From: Zeev Suraski [mailto:[EMAIL PROTECTED]
>Sent: Tuesday, June 20, 2006 7:17 AM
>To: Andi Gutmans
>Cc: 'Nuno Lopes'; 'PHPdev'
>Subject: RE: [PHP-DEV] messing with branch prediction
>
>I still don't see how it can hurt, and even if it doesn't do
>anything performance wise, it adds clarity to the code.
>
>Zeev
>
>At 20:34 19/06/2006, Andi Gutmans wrote:
>>I think it's a nice idea but I doubt it's very useful at this
>point. It
>>doesn't seem to significantly affect performance, which is
>inline with
>>some tests that we have done in the past, where it's really the
>>hardware management of branch prediction and cache size which affect
>>this. I doubt that make such code changes will affect that in
>a significant way.
>>We are playing around with some memory management issues, and are
>>relying on some hardware branch predicition there (i.e.
>hoping that the
>>hardware will play nice with if() statements that always evaluate the
>>same). It seems that the hardware is playing pretty nice with us.
>>
>>
>> >-----Original Message-----
>> >From: Zeev Suraski [mailto:[EMAIL PROTECTED]
>> >Sent: Monday, June 19, 2006 12:46 AM
>> >To: Nuno Lopes
>> >Cc: PHPdev
>> >Subject: Re: [PHP-DEV] messing with branch prediction
>> >
>> >Definitely looks nice. I actually like how it makes the code more
>> >readable hinting which branches are rare.
>> >
>> >Zeev
>> >
>> >At 16:49 18/06/2006, Nuno Lopes wrote:
>> >>Hello,
>> >>
>> >>Yesterday I was playing with branch prediction in the Zend VM
>> >executor.
>> >>Although I didn't have any noticeable performance
>improvement within
>> >>the bench.php script, I've put the patch on-line, because
>> >someone else
>> >>might want to mess with it too :) (but with care..)
>> >>
>> >>patch: http://mega.ist.utl.pt/~ncpl/zend_branch_prediction.txt
>> >>gcc docs:
>> >>http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-g_
>> >t_005f_00
>> >>5fbuiltin_005fexpect-2440
>> >>
>> >>the zend.h part of the patch is based on the similar macros (with
>> >>the same name, too) found in the Linux kernel.
>> >>
>> >>I made & tested the patch in a Centrino laptop with gcc 3.4, so it
>> >>might be the cause of getting no relevant performance
>> >increase. On CPUs
>> >>with longer pipelines (like Pentium 4/NetBurst architecture), the
>> >>performance increase might be noticeable.
>> >>
>> >>
>> >>Happy hacking :)
>> >>Nuno
>> >>--
>> >>PHP Internals - PHP Runtime Development Mailing List To
>unsubscribe,
>> >>visit: http://www.php.net/unsub.php
>> >
>> >--
>> >PHP Internals - PHP Runtime Development Mailing List To
>unsubscribe,
>> >visit: http://www.php.net/unsub.php
>> >
>
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php