emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#35562: closed ("varset" bytecode inline path is ne


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#35562: closed ("varset" bytecode inline path is never taken)
Date: Sat, 04 May 2019 18:17:01 +0000

Your message dated Sat, 4 May 2019 11:16:23 -0700
with message-id <address@hidden>
and subject line "varset" bytecode inline path is never taken
has caused the debbugs.gnu.org bug report #35562,
regarding "varset" bytecode inline path is never taken
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
35562: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=35562
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: "varset" bytecode inline path is never taken Date: Sat, 4 May 2019 14:27:23 +0100
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.


--- End Message ---
--- Begin Message --- Subject: "varset" bytecode inline path is never taken 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 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.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]