Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:42776 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 58136 invoked from network); 22 Jan 2009 13:21:05 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Jan 2009 13:21:05 -0000 Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 212.25.124.163 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 212.25.124.163 il-gw1.zend.com Windows 2000 SP4, XP SP1 Received: from [212.25.124.163] ([212.25.124.163:17750] helo=il-gw1.zend.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F9/A8-15341-EB278794 for ; Thu, 22 Jan 2009 08:21:03 -0500 Received: from ws.home ([10.1.10.26]) by il-gw1.zend.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 22 Jan 2009 15:21:55 +0200 Message-ID: <497872B8.60807@zend.com> Date: Thu, 22 Jan 2009 16:20:56 +0300 User-Agent: Thunderbird 2.0.0.19 (X11/20090105) MIME-Version: 1.0 To: Marcus Boerger CC: Timm Friebe , internals@lists.php.net References: <155749706.20090117211737@marcus-boerger.de> In-Reply-To: <155749706.20090117211737@marcus-boerger.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 22 Jan 2009 13:21:55.0436 (UTC) FILETIME=[655CE2C0:01C97C94] Subject: Re: [PHP-DEV] Method call improvements From: dmitry@zend.com (Dmitry Stogov) Marcus Boerger wrote: > Aren't we able to bind these at least partially to the function call > opcode, in case we know they are constant? If all is constsnt we could > even store the whole lookup in the opcode. Well you'd have to convince > Zend to do that because os far they have always been against this > approach. We can't modify opcode it self as it'll break opcode caches. However we can introduce some indirect table associated with op_array, which can be used to implement inline caches without direct opcode modification (in the same way as IS_CV variables work). There are a lot of papers about polymorphic inline caches (e.g. http://research.sun.com/self/papers/pics.html) which we probably should use to not to invite bicycle. Thanks. Dmitry.