Re: Re: com php-src: Make CALL VM with FP and IP in global registers not to return anything from opcode handlers. Set OPLINE to NULL to terminate VM
loop instead. This saves 1 CPU instruction for each opcode handler.: Zend/zend_vm_execute.h Zend/zend
| From: | Dmitry Stogov | Date: | Tue, 16 Jun 2015 13:00:46 +0000 |
| Subject: | Re: Re: com php-src: Make CALL VM with FP and IP in global registers not to return anything from opcode handlers. Set OPLINE to NULL to terminate VM loop instead. This saves 1 CPU instruction for each opcode handler.: Zend/zend_vm_execute.h Zend/zend |
||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-86713@lists.php.net to get a copy of this message | ||
right. thanks.
Dmitry.
On Tue, Jun 16, 2015 at 3:20 PM, Matt Wilmas <php_lists@realplain.com>
wrote:
> Hi Dmitry,
>
> ----- Original Message -----
> From: "Dmitry Stogov"
> Sent: Tuesday, June 16, 2015
>
> Commit: 48ed660cdf6fe94ac2cd8eac217ea97340766e75
> Author: Dmitry Stogov <dmitry@zend.com> Tue, 16 Jun 2015
> 14:11:16 +0300
> Parents: 3180b8e100285e5bd9088e9981608dfd14f6ff27
> Branches: master
>
> Link:
> ñaV—Œð?œ7£9
> ‘(http://git.php.net/?p=php-src.git;a=commitdiff;h=48ed660cdf6fe94ac2cd8eac217ea97340766e75
>
> Log:
> Make CALL VM with FP and IP in global registers not to return anything
> from opcode handlers.
> Set OPLINE to NULL to terminate VM loop instead.
> This saves 1 CPU instruction for each opcode handler.
>
> Changed paths:
> M Zend/zend_vm_execute.h
> M Zend/zend_vm_gen.php
>
>
> In zend_vm_gen.php, it seems lines 1073-1075 can be removed, since they
> have identical #define's. So, pseudo-diff:
>
> -out($f,"#if defined(ZEND_VM_FP_GLOBAL_REG) &&
> defined(ZEND_VM_IP_GLOBAL_REG)\n");
> -out($f,"# define ZEND_VM_ENTER() ...");
> -out($f,"# define ZEND_VM_LEAVE() ZEND_VM_CONTINUE()\n");
> -out($f,"#elif defined(ZEND_VM_FP_GLOBAL_REG)\n");
> +out($f,"#if defined(ZEND_VM_FP_GLOBAL_REG)\n");
>
> Just FYI. Unless you purposely kept it like that for semantics or will be
> adding something else distinct soon/later. :-)
>
> But always neat to see extra optimization tricks (thanks!), even when they
> don't apply for Windows builds. :-(
>
> - Matt
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>