|
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 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. User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
--- End Message ---
[Prev in Thread] | Current Thread | [Next in Thread] |