Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92196 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 13486 invoked from network); 11 Apr 2016 15:54:00 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 11 Apr 2016 15:54:00 -0000 Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 65.55.169.106 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 65.55.169.106 mail-bl2on0106.outbound.protection.outlook.com Received: from [65.55.169.106] ([65.55.169.106:50850] helo=na01-bl2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 29/01-07428-698CB075 for ; Mon, 11 Apr 2016 11:53:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RWSoftware.onmicrosoft.com; s=selector1-zend-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=uisBDVWR040BToQcDBJ7/N+BvRIDUkq4b8QnB6f2jQI=; b=v5EWznrIzwRCYUyMsPkG9xNps3wlBTTFcFh6tS43LwkC11FdnjDexTW4Qp9mAgsQqUZzawNpzeifRXUg+KP5ZRGkZnqEcF+eB4RFaQ5dPohKY1ZMUAGJN2u0+RldN6G+dL5Igf3YD+5f6vFLkr07ZYETxCXiYyPwi+cSLTRnb1o= Authentication-Results: lists.php.net; dkim=none (message not signed) header.d=none;lists.php.net; dmarc=none action=none header.from=zend.com; Received: from tpl2.home (92.62.57.172) by BY2PR0201MB1783.namprd02.prod.outlook.com (10.163.72.25) with Microsoft SMTP Server (TLS) id 15.1.453.26; Mon, 11 Apr 2016 15:53:52 +0000 To: Lin Yo-An References: CC: Xinchen Hui , Nikita Popov , Bob Weinand , Joe Watkins , internals Message-ID: <570BC881.8000203@zend.com> Date: Mon, 11 Apr 2016 18:53:37 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/alternative; boundary="------------090206030201000703020807" X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: HE1PR03CA0023.eurprd03.prod.outlook.com (10.163.170.161) To BY2PR0201MB1783.namprd02.prod.outlook.com (10.163.72.25) X-MS-Office365-Filtering-Correlation-Id: 931cd8a5-f597-45c9-19b8-08d362217c10 X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1783;2:rW+YRjdAXPfGV9QVSyCq9j9BflGM2kOZnbRT8FBeDQk/UM9Wg/LnI9Vc29Si337L9hL1ljZsVT0oSv2dMaNfLc/3MDRrc5e9M36dOVmgISOO7QVCdtNnx0P4LDVsWBOUAJ2BLro6FljAQeldP/3DT2wNKtsvr1MECn1XjgErUONP5HaVm8sR6TLhXAOAhsBx;3:FwtZ44N3b7So32R1HoLAKpYa11YnksfQFTPz13/w5JGx6p09/v90wpVrIH9zUATvGPvu5Esj5wbIOjA2ViskEBmbeUk4sEYCRJZ2dR9J85AagjGurFIW4kqK0QNLHPG4 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1783; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1783;25:4qHd0rFIDnDTq8ifF/mFcTgdsWIzS+RMKHCAGRzuVbaj+CW0K/Ri53kP9TKBaGqga65Tqoa0/11B/YdWNp0D44LdsB5w3Kz6bW142dY7Y1NbfYHl5hCg8zBueKCKy6g+j2oXsq/3DY+PCXkybGmi53mkBFqqpgF7TIty+yWInexOem4EIAY5ABjDMh0rJttpnnoBEFCM57euZTTnxs2DqGq6I2vC25QWC2Q8HEOzseCUrM4nNpHtNiIzTt0vp+8aRJX17ibdwia9vXaqsqIzgusUZMz0sus8ZKqZIT/EM7JLfSv29Sm9AXAHP9z8caiQ9+Iq/vCBtL/eCYkNitwXXiS8YG+xI0avdWuoqICZTeurNWqPBeSHe+dxXj5tft8DIXTFQ5xzkIeI8X1sphQKcjyTqdit6pnzIAN2dHfIFqxaZTf7DyVe0P5hIvp4QJ533PuMhTFyrNvhkc9ljoogXwdM0q3UL84okKn+fCvDKh+PF9swuQt4F+CnmbCZxtP1XVpdthhZj4t3+G6YKCpT4UWTNMfiDyVI/faZLtlkhTwhnjk2SFt/A087fB7+kf0b/v7PVRPm0IL+1PVOoLJPWbGNDRpr6SJGSf6V/ffldS5VzqND4YBCq3rh1R8GQ/dy6IqvCgZyX6uDEAJf4koR46FSHRHB0x72bEKfSIBpvPrUpNiDjJGL5uKRMeVXHHY/KwuJ71/BPiRHUoW4oGBv2FIXTjw0htINmmHZSeeMKWaufYEpEy8anw0gG/kYmGlZEz6izVC42BS4dtiCRaNn5ZsRMSXnjvGFOxo1wvHow0pCmConJBsaAHP7cf+U0EBKnkw39Z1GhQOlFT+Hubk5XbjHd1yqqwhAJWQsXExDVSJXHJXx5pX3GR/O+7vzO9vQ X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1783;20:2xXCj1ABYiujG9Gwn7zi0N6IzOIY0AYUsodcHMpWc/j30tuOTbaejTxmJHFhYhWcICrR2U8ukXU+i/SXA92mvNHA+DEyJ6j6S66zubVZ5Xzo98vKDUDUWtyf+yASVRGdKf3q/ZS0Ao+sxvm3MowRhxlxP60SVtnf1SwpqvZtMcwcKkxONyQrK+up8N9JFEt5h/o7c3hIjBdNUAmA4x0zxIscfa//RtiAaswEJWykTzbFv9cXnQo0u19INMcg1mE8/o7SVLSy6dNM2gn+igTEIhqMRXkwJ1I6N/HiEFuI+wqlmE9xC4aJCtL42BusjxV7I0PTVSrmggFj+b9CMQnpxIK8d9UisghpbqrdlCUea0V/iTYqKE7J5C6cy3iETaWcC7aUys2jvAYY4h4r8RaoAuSpiHdmQKCVuAWqiUJacknne/KuqaSfJ5FAifA4L5uurdUo18Aa0/wAQvWk2aRblo9DiNK4jGAWibGAuLsK8N9NCUC1yed11hujc9Nwjg0Q;4:N34Lsz2UcIszXEQgj8PaFz8hkmEa8Pge/WBJf5aAlUgEusNZx3mqhnI62K7Ep1KL/HDhJfupDUbi6v8ERb1qm9xPhO3712SRBYgwmalbwnLd3sr6q/mHaQZqs3ZNrsbs+a8oV4z4hMmc/iEgCCxa+5dAPeJjUw4HLHWFIP07mDJlSqw/2ifZOeCbrNUzLmXOgXwhdme+7N2Wz9m3Nbae0BVr/g/oUXowtLbocbS1wMEtWMzTuRS+e37LuOTcP8ZuhAFO4SGZNLaE9R77IScy1va+3Jl0oyYLKmNxPvQwFrtEGI3v/A7NsuTcHrTLBW/dgSqPmQR2lBfkeokmOKwY1nERhNwECgoDzUcKeXrEKu9gGkSqFTwtXsGuBzQCnDJK X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:BY2PR0201MB1783;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1783; X-Forefront-PRVS: 09090B6B69 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(377454003)(76104003)(24454002)(52034003)(59896002)(65956001)(66066001)(84326002)(4001350100001)(76176999)(50986999)(5004730100002)(81166005)(87266999)(54356999)(65816999)(2906002)(270700001)(5008740100001)(83506001)(19580395003)(19580405001)(80316001)(3480700003)(42186005)(1096002)(86362001)(110136002)(92566002)(189998001)(4326007)(33656002)(6116002)(36756003)(16236675004)(2950100001)(77096005)(3846002)(586003)(512874002);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0201MB1783;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR0201MB1783;23:VliEIVdvHvnlTRXLHvvFCOCPeMDQoVYjwMZpZ9f?= =?us-ascii?Q?a/XwZxGuGFR0Gvsnbirfj+2UMyqyNNB9gjyh3d/C5U9Upza6OLO3ta5s5mS/?= =?us-ascii?Q?EHQIoGsqhQ0chfiEwLg3HrClRwr9345eMruKBiZudtD09DEAFoBtocmy+KFi?= =?us-ascii?Q?ue2QYgu6WXr8nCBnEpkaESlYX7aFp7mRnjhgqpd3EM7o2Nn46riF29GCRkJq?= =?us-ascii?Q?cDqR1tcvzaEI5JTky3Y0xTw8IjS9XQmGHY1buEUwhAN6EYZWrlUMugaAZWJZ?= =?us-ascii?Q?+O6337QPIgCs87kk2LsOBxCXocxqb6xTKO8SmYb+IZW/Z/EvTEJhdM6VkJz9?= =?us-ascii?Q?5KFTzIL4nSjpwOAW0gZ+t6N2KBIqIOmrAed7wu3pKsV+u4h18I3UI87jqlc/?= =?us-ascii?Q?5A+gYf7gb7bUfSDkdmJMTQ9MR1coYDUFh/3SagOAdNvz+Vu4wWwp82ILyKGI?= =?us-ascii?Q?UJ0z6gGEasw0cyIQ/rbTh1SUxJF1f98dQZtlJg6xu/B1tc0/nnO7A3/uNdg7?= =?us-ascii?Q?cA5Qkfa6T/Xm/DdCrx5E7IybMTUgo/fgG/FRuCKa+/7oKNJun7DEPTg/vHzX?= =?us-ascii?Q?Zh/v0owV9e3BEjcYyBI9F2rwLGvugNuj9x1L0qjiWFzYWkg0oNzimq61Krpe?= =?us-ascii?Q?LkKMIYwY9y9QjwBqJ5elD7Woz5QlN7i7E/ZF/lGW152vyRB6IAHqQUSeDiBS?= =?us-ascii?Q?yP3B49JDv/D48y68k08sXe/l7R2bU+CANzymm13Y69XSxNJ3Cbn62pgXIDco?= =?us-ascii?Q?ZIvF/eOo6cb0Nt1OigFpQ/lqX+EaeHEaqy3d92AFmEdOvVKcJBvvPzPQQa1i?= =?us-ascii?Q?VYc+uE1zHLZIMllL4Er0G3HIhE4F7Ae74LSLiCSIzXJXFGROPg307LT7kLHo?= =?us-ascii?Q?6gmSuNs1BYVFdDN5DGVSJ1df7ELUPwCDUtvkCdbnIrKAW2+DxVjUt1us1uYY?= =?us-ascii?Q?YjiljBMjC73YOee/bjM4jUVHh8BEiP0y0Basi80nmAcprpArIIVFeWhINx7C?= =?us-ascii?Q?rMUlwhubKxCKl9Zydg4mkMgr/+/WES09/w73d8moQMsZAEAUm+piUvPQSXwO?= =?us-ascii?Q?MHVF24Kt8/CRzzo/nU04EDaCyBtj8GFe5P2NxJdEI5PsHg4Veo4ZIOsbFhU9?= =?us-ascii?Q?6nsIKWzrSBZA=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1783;5:UZbeRSo8UCa/16JLj9mvUPqwE7zRioyybQAq/icKeQvLPPF6988ZBs+FD8B1rYhxKj+tgNUgCUNtwLDJgBKUHEKXCdPFVsspi5S0BHAcDn8QEvo8u4baeIIlujn6ELGGY7vpcLX4tTdnTMiSHi6Umg==;24:WIR4ZD3pDyVKbj1A+eRZnejWKvWC/yBAFs9N2IRwhJ/I4FYHeWv9vnQhE3wAgoRKacFzEb52Ox4v4RQdWLS4qssmzW0RsYWv7QuFxhixemY= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2016 15:53:52.2524 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0201MB1783 Subject: Re: Object getter method optimization From: dmitry@zend.com (Dmitry Stogov) --------------090206030201000703020807 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Hi Yo-An On 04/11/2016 02:54 PM, Lin Yo-An wrote: > Hi Dmitry, > > How's it going? > > I traversed the code of opcache extension, and just found the > FUNC_INFO related macros. I guess the accessor information is more > like an entry that should be put in the function info. That, FUNC_INFO is available only during optimization (it's especially used in inter-procedure data-flow pass). > Or... maybe we shall move the function info related functions into the > core? since we might have some optimization based on the function info > instead of optimizing opcode only in the future. We consider, possibility of moving the whole Optimizer into Zend, but it won't change a lot, because expensive optimization make sense only with opcache (when script is optimized once and executed many times). > > And I think the function info we pre-processed in the compile-time > would help JIT to compile the opcode a lot. Of course. Actually, the new optimization passes introduced in "master" branch came from our zend-jit project and reused to generate LLVM code. > > By the way, would you mind to let me know the plan of implementing the > JIT compilation in PHP? I saw your zend-jit branch is using LLVM as > the backend. We don't have special plans yet. We are going to work on JIT later, and now we mainly work on interpretative optimizations. Once we start JIT, it's going to be much difficult to change something in VM... > > In my experience, LLVM compiles large code a lot of slower. what do > you think of using DynASM as the JIT backend? Right. LLVM is not suitable for JIT. It's a compiler without front-end part. We will probably go with DynASM from LuaJIT, Low Level Interpreter from WebKit or our own similar approach. > V8 compiles ast nodes into native code directly without > interpreting/translating the op codes, I don't know if it's a good > approach to try. your thoughts? In my experience, this approach doesn't work well especially with big PHP applications. Thanks. Dmitry. > > Cheers, Yo-An > > > > > --------------090206030201000703020807--