From unknown Fri Sep 05 16:40:35 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#35562 <35562@debbugs.gnu.org> To: bug#35562 <35562@debbugs.gnu.org> Subject: Status: "varset" bytecode inline path is never taken Reply-To: bug#35562 <35562@debbugs.gnu.org> Date: Fri, 05 Sep 2025 23:40:35 +0000 retitle 35562 "varset" bytecode inline path is never taken reassign 35562 emacs submitter 35562 Simon Frankau severity 35562 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Sat May 04 11:36:48 2019 Received: (at submit) by debbugs.gnu.org; 4 May 2019 15:36:48 +0000 Received: from localhost ([127.0.0.1]:52011 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hMwiU-0000VL-7q for submit@debbugs.gnu.org; Sat, 04 May 2019 11:36:46 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53837) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hMuhe-0005RX-FQ for submit@debbugs.gnu.org; Sat, 04 May 2019 09:27:46 -0400 Received: from lists.gnu.org ([209.51.188.17]:40927) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hMuhZ-0000Ix-C3 for submit@debbugs.gnu.org; Sat, 04 May 2019 09:27:41 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39976) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hMuhY-0001Gx-BK for bug-gnu-emacs@gnu.org; Sat, 04 May 2019 09:27:41 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,HTML_MESSAGE, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hMuhX-0000Hs-F2 for bug-gnu-emacs@gnu.org; Sat, 04 May 2019 09:27:40 -0400 Received: from mail-s79.mailgun.info ([184.173.153.207]:27775) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hMuhX-0000H2-8x for bug-gnu-emacs@gnu.org; Sat, 04 May 2019 09:27:39 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=arbitrary.name; q=dns/txt; s=pic; t=1556976459; h=Content-Type: To: Subject: Message-ID: Date: From: MIME-Version: Sender; bh=a6aHY6CyYu6yBtofr8TvgOljXavckg7asCn2yLiGviY=; b=hS6bCUNDODAFWl3Gf09S5JzEw1chnmfcwQ5nKwyTZKglwL8eMYFEtxPCA8oTWS0jEVyE7od4 VSGjfi/B175H//WqfXJ4ld7PuisuwpZSqzTbVDnBMq4YvknWDtvX7Z8DuJI0tCIdNnZz1V/7 Yzvt69E2rNEbuBX2/RyMSWGFe1k= X-Mailgun-Sending-Ip: 184.173.153.207 X-Mailgun-Sid: WyI3MTJmNiIsICJidWctZ251LWVtYWNzQGdudS5vcmciLCAiZDljNWE0Il0= Received: from mail-lj1-f173.google.com (mail-lj1-f173.google.com [209.85.208.173]) by mxa.mailgun.org with ESMTP id 5ccd9347.7f013be704f0-smtp-out-n03; Sat, 04 May 2019 13:27:35 -0000 (UTC) Received: by mail-lj1-f173.google.com with SMTP id k8so7460256lja.8 for ; Sat, 04 May 2019 06:27:35 -0700 (PDT) X-Gm-Message-State: APjAAAWugBXf7bdWpOIXdLQtzZnLezo9gvs+x+BTh5FD08y37KL9X2p7 wSotl9WUM7VhF6v21t/goz2pGUnuYEoHxKHiDKI= X-Google-Smtp-Source: APXvYqz6F1zrDMmbqNd+V4huzciKjNit2dpyaOOf2XhjxIZO32mbuRhD1uj5gO1DlogfAubjIt85DmaHTHwMqfOMFEc= X-Received: by 2002:a2e:814e:: with SMTP id t14mr8153315ljg.25.1556976454376; Sat, 04 May 2019 06:27:34 -0700 (PDT) MIME-Version: 1.0 From: Simon Frankau Date: Sat, 4 May 2019 14:27:23 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: "varset" bytecode inline path is never taken To: bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary="0000000000007ca4c505880fd4e1" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 184.173.153.207 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Sat, 04 May 2019 11:36:44 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --0000000000007ca4c505880fd4e1 Content-Type: text/plain; charset="UTF-8" While reading the source, I noticed in bytecode.c that: /* Inline the most common case. */ if (SYMBOLP (sym) && !EQ (val, Qunbound) && *!XSYMBOL (sym)->u.s.redirect* && !SYMBOL_TRAPPED_WRITE_P (sym)) SET_SYMBOL_VAL (XSYMBOL (sym), val); should be: /* Inline the most common case. */ if (SYMBOLP (sym) && !EQ (val, Qunbound) && *XSYMBOL (sym)->u.s.redirect == SYMBOL_PLAINVAL* && !SYMBOL_TRAPPED_WRITE_P (sym)) SET_SYMBOL_VAL (XSYMBOL (sym), val); As it is, the inline case is never run, since "redirect" is always non-zero. Since I'm new to emacs internals, I don't know how to benchmark to work out if this makes a noticable performance difference. :) Thanks, Simon. --0000000000007ca4c505880fd4e1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
While r= eading the source, I noticed in bytecode.c that:

= =C2=A0 =C2=A0 /* Inline the most common case.=C2=A0 */
= =C2=A0 =C2=A0 if (SYMBOLP (sym)
&& !EQ (val, Qun= bound)
&& !XSYMBOL (sym)->u.s.redirect=
&& !SYMBOL_TRAPPED_WRITE_P (sym))
<= div> =C2=A0 =C2=A0 =C2=A0 SET_SYMBOL_VAL (XSYMBOL (sym), val);
=

should be:

=C2=A0 = =C2=A0 /* Inline the most common case.=C2=A0 */
=C2=A0 = =C2=A0 if (SYMBOLP (sym)
&& !EQ (val, Qunbound)<= /font>
&& XSYMBOL (sym)->u.s.redirect =3D=3D SYMB= OL_PLAINVAL
&& !SYMBOL_TRAPPED_WRITE_P (sym)= )
=C2=A0 =C2=A0 =C2=A0 SET_SYMBOL_VAL (XSYMBOL (sym), val= );

As it is, the inline case is never= run, since "redirect" is always non-zero.

Since I'm new to emacs internals, I don't know how to benchmark = to work out if this makes a noticable performance difference. :)
Thanks,
Simon.

--0000000000007ca4c505880fd4e1-- From debbugs-submit-bounces@debbugs.gnu.org Sat May 04 12:10:22 2019 Received: (at 35562) by debbugs.gnu.org; 4 May 2019 16:10:22 +0000 Received: from localhost ([127.0.0.1]:52040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hMxF0-0001M2-59 for submit@debbugs.gnu.org; Sat, 04 May 2019 12:10:22 -0400 Received: from mail-qt1-f182.google.com ([209.85.160.182]:40253) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hMxEy-0001Lm-72 for 35562@debbugs.gnu.org; Sat, 04 May 2019 12:10:20 -0400 Received: by mail-qt1-f182.google.com with SMTP id k24so6414575qtq.7 for <35562@debbugs.gnu.org>; Sat, 04 May 2019 09:10:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=saACDLXnAXT55coTVIaI/hokBDRU2DFUC/dhQ+GPpz4=; b=Qolehp63uPusJCmLohGGEp/WjYE8gPyEJ8ZYUBsnAe39iqJ6QUv6VQEiUCEM7F2Z0L E2snjmVxTPRj3h8Eb5aIgZFWL1q4Uj+jX3+qYHzk72fSwK0ygbZ8gcjx1FMYlMoZQ5TD 2nWVlUxeiR/6Atj+5o6WQefHNGIZerYo3GnSde0h1vXryVN9nYv8KZczP69muQ9F/WTn XZUpIaPtvUh/3OsxrZj/6RnhhaMcKQTznMkEBM1YmizJSzPxmi+ASkhw9/pP8iGGT8WZ +wejTb6lwQpcD0U2Ew6vT/eTdLoIiTu/Gjfc9rRHqK7GYXxRa1UpBVJTgezPTNDREAWL kwVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=saACDLXnAXT55coTVIaI/hokBDRU2DFUC/dhQ+GPpz4=; b=Wrrb5F5U2FrjYHyNW03JOHC2YxxSTNe5mpRsaNZhA0aJ7Lurpbp0ICHW81+Ly93A9q I7kCa/40ZKUgD5PdeK1NJwYgE2tOCeOeWFWmjiGnxURlViZnUgpL4UAlvMGZxGjOScZm nO3uA2p7eihaZx4nm1cGib9QQBZKjTqNI7H07Qtv5nLHNmlyu+UtkEx0GhuSvnBIkbA+ mEDVurS97ycXDFiz19cjTR5Ve/9Y26+pA9Orafy/YYoXhpvM0CXBY/Ma7qMEpTpjhp6v vLTt0x3Mj97cYHvFXjaauLDsoXmp+GHYTfnFAYLNneIMbl6kmfQtQR3yLD7hdpsr9Wfi pEwg== X-Gm-Message-State: APjAAAVk3RJcIekuY60Yh/HwlvcbnK2OtgK6ci7cRvY0a84TIXTKcaqy 9Z7Nt85YRzzCPrI33yKU+kfBEfEW X-Google-Smtp-Source: APXvYqzlQx+vPjQw1RW5slzSRYD6uau3590obOpoAHmWBnuX1+7n0QY0mxbMgY8eBJpxBSfSGEG1Jw== X-Received: by 2002:a0c:d0b1:: with SMTP id z46mr9505355qvg.140.1556986214586; Sat, 04 May 2019 09:10:14 -0700 (PDT) Received: from minid (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.googlemail.com with ESMTPSA id m18sm3954692qki.64.2019.05.04.09.10.13 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 04 May 2019 09:10:13 -0700 (PDT) From: Noam Postavsky To: Simon Frankau Subject: Re: bug#35562: "varset" bytecode inline path is never taken References: Date: Sat, 04 May 2019 12:10:12 -0400 In-Reply-To: (Simon Frankau's message of "Sat, 4 May 2019 14:27:23 +0100") Message-ID: <87y33mmc9n.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 35562 Cc: 35562@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Simon Frankau writes: > While reading the source, I noticed in bytecode.c that: > && *!XSYMBOL (sym)->u.s.redirect* > should be: > && *XSYMBOL (sym)->u.s.redirect == SYMBOL_PLAINVAL* > As it is, the inline case is never run, since "redirect" is always non-zero. > > Since I'm new to emacs internals, I don't know how to benchmark to work out > if this makes a noticable performance difference. :) I guess something like this might work (haven't tested to see if difference is measurable though): (defvar bug-35562-test-var nil) (benchmark-run-compiled (dotimes (_ 1000000) ;; Unroll a bit, so that setting `bug-35562-test-var' takes more ;; time than incrementing loop counter. (setq bug-35562-test-var nil) (setq bug-35562-test-var nil) (setq bug-35562-test-var nil) (setq bug-35562-test-var nil) (setq bug-35562-test-var nil) (setq bug-35562-test-var nil) (setq bug-35562-test-var nil) (setq bug-35562-test-var nil))) From debbugs-submit-bounces@debbugs.gnu.org Sat May 04 14:16:38 2019 Received: (at 35562-done) by debbugs.gnu.org; 4 May 2019 18:16:38 +0000 Received: from localhost ([127.0.0.1]:52232 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hMzDA-0006oD-VL for submit@debbugs.gnu.org; Sat, 04 May 2019 14:16:37 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:34374) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hMzD5-0006nq-CS for 35562-done@debbugs.gnu.org; Sat, 04 May 2019 14:16:33 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 32F1A161845; Sat, 4 May 2019 11:16:25 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id fftsOLIrBfoJ; Sat, 4 May 2019 11:16:24 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 35D6716194B; Sat, 4 May 2019 11:16:24 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 06lbtMvaCm-E; Sat, 4 May 2019 11:16:24 -0700 (PDT) Received: from [192.168.1.9] (cpe-23-242-74-103.socal.res.rr.com [23.242.74.103]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id F40F7161845; Sat, 4 May 2019 11:16:23 -0700 (PDT) To: Simon Frankau From: Paul Eggert Subject: "varset" bytecode inline path is never taken Organization: UCLA Computer Science Department Message-ID: Date: Sat, 4 May 2019 11:16:23 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 35562-done Cc: 35562-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Thanks for reporting that typo. I verified that the patch improves performance significantly (50% speedup) on Noam's benchmark, and installed the patch into the Emacs master branch. From unknown Fri Sep 05 16:40:35 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 02 Jun 2019 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator