Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:109627 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 7286 invoked from network); 14 Apr 2020 15:23:55 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 14 Apr 2020 15:23:55 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 8C4A61804C3 for ; Tue, 14 Apr 2020 06:53:34 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: * X-Spam-Status: No, score=1.6 required=5.0 tests=BAYES_50,SPF_HELO_NONE, SPF_NEUTRAL autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS20694 188.94.24.0/21 X-Spam-Virus: No X-Envelope-From: Received: from scarlet.netpirates.net (scarlet.netpirates.net [188.94.27.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 14 Apr 2020 06:53:33 -0700 (PDT) Received: from p5de2c6cc.dip0.t-ipconnect.de ([93.226.198.204] helo=[192.168.178.42]) by scarlet.netpirates.net with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92.3) (envelope-from ) id 1jOM0K-0006mF-9Q for internals@lists.php.net; Tue, 14 Apr 2020 15:53:32 +0200 To: internals@lists.php.net Reply-To: internals@lists.php.net Message-ID: <0ddd2987-644b-6fec-2670-2b6f366290e2@php.net> Date: Tue, 14 Apr 2020 15:53:31 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: opcache.jit directive should be split up From: sebastian@php.net (Sebastian Bergmann) PHP 8's JIT is currently mainly controlled through the opcache.jit configuration directive [1]. The value for opcache.jit is currently a sequence of four digits, "5021" for instance. This would activate JIT optimizations based on static type inference and inner procedure analyses (Optimization Level), JIT optimization of all functions on load of the respective sourcecode file (Trigger), global linear-scan register allocator (Register Allocation), and AVX instruction generation (CPU-Specific Optimization Flags). I think that using a single configuration directive for these four distinct aspects of just-in-compilation is a bad idea. Many will, at least at first glance, mistake the value for a bitmask. I think it would be best to split up opcache.jit into five separate configuration directives and propose the following names: * opcache.jit for (de)activating JIT * opcache.jit_optimization_level for setting the optimization level * opcache.jit_trigger for configuring the JIT trigger * opcache.jit_register_allocation for configuring register allocation * opcache.jit_cpu_flags for configuring CPU-specific flags What do you think? -- [1] https://wiki.php.net/rfc/jit#phpini_defaults