Quantcast
Channel: Serverphorums.com
Viewing all articles
Browse latest Browse all 23908

[PHP-DEV] Re: [PHP-CVS] 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.

$
0
0
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:
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

Viewing all articles
Browse latest Browse all 23908

Trending Articles