com php-src: Speed up fetching of class entries for self:: parent:: and static::: Zend/zend_compile.c Zend/zend_vm_def.h Zend/zend_vm_execute.h
Zend/zend_vm_opcodes.c Z end/zend_vm_opcodes.h ext/opcache/Optimizer/block_pas s.c ext/opcache/Optimizer/compact_literals.c ext/opca
che/Optimizer/optimize_func_calls.c ext/opcache/Optimiz er/pass1_5.c ext/opcache/Optimizer/zend_optimizer .c

From: Date: Wed, 28 Oct 2015 18:26:52 +0000
Subject: com php-src: Speed up fetching of class entries for self:: parent:: and static::: Zend/zend_compile.c Zend/zend_vm_def.h Zend/zend_vm_execute.h
Zend/zend_vm_opcodes.c Z end/zend_vm_opcodes.h ext/opcache/Optimizer/block_pas s.c ext/opcache/Optimizer/compact_literals.c ext/opca
che/Optimizer/optimize_func_calls.c ext/opcache/Optimiz er/pass1_5.c ext/opcache/Optimizer/zend_optimizer .c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-89553@lists.php.net to get a copy of this message
Commit: eb7be5379d9b6e20f4d086bd688103fe75f46977 Author: Dmitry Stogov <dmitry@zend.com> Tue, 27 Oct 2015 15:47:58 +0300 Parents: ff0ec065623a7563cc9a99586a9cb2f351f3cbfa Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=eb7be5379d9b6e20f4d086bd688103fe75f46977 Log: Speed up fetching of class entries for self:: parent:: and static:: This is generalized solution for Bob's idea of speed up self::method() calls without ZEND_FETCH_CLASS. At first, it adds few new opcodes to separate class related behaviour: FETCH_STATIC_PROP_R FETCH_STATIC_PROP_W FETCH_STATIC_PROP_RW FETCH_STATIC_PROP_FUNC_ARG FETCH_STATIC_PROP_UNSET FETCH_STATIC_PROP_IS UNSET_STATIC_PROP ISSET_ISEMPTY_STATIC_PROP FETCH_CLASS_CONSTANT At seconds, it enables IS_UNUSED operand to fetch (self, parent or static without separate FETCH_CLASS) for new opcodes and the following ones: INIT_STATIC_METHOD_CALL NEW END_INSTANCEOF Finaly, opcache optimizer had to be fixed to support new opcodes. Changed paths: M Zend/zend_compile.c M Zend/zend_vm_def.h M Zend/zend_vm_execute.h M Zend/zend_vm_opcodes.c M Zend/zend_vm_opcodes.h M ext/opcache/Optimizer/block_pass.c M ext/opcache/Optimizer/compact_literals.c M ext/opcache/Optimizer/optimize_func_calls.c M ext/opcache/Optimizer/pass1_5.c M ext/opcache/Optimizer/zend_optimizer.c Diff: <Diff exceeded maximum size>

« previous php.cvs (#89553) next »