From: Joseph Mingrone <jrm@ftfl.ca>
To: emacs-devel@gnu.org
Cc: "Mattias Engdegård" <mattiase@acm.org>, emacs@FreeBSD.org
Subject: Re: master 52b67740d10: Generalise a LAP optimisation rule
Date: Mon, 03 Apr 2023 14:41:28 -0300 [thread overview]
Message-ID: <86ttxw3ltj.fsf@phe.ftfl.ca> (raw)
In-Reply-To: <20230325162222.64223C1391B@vcs2.savannah.gnu.org> ("Mattias Engdegård"'s message of "Sat, 25 Mar 2023 12:22:22 -0400 (EDT)")
On Sat, 2023-03-25 at 12:22, Mattias Engdegård <mattiase@acm.org> wrote:
> branch: master
> commit 52b67740d10df8ca539fdc2c7d50283997683141
> Author: Mattias Engdegård <mattiase@acm.org>
> Commit: Mattias Engdegård <mattiase@acm.org>
> Generalise a LAP optimisation rule
> * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
> Accept (stack-set 1) as equivalent to (discardN-preserve-tos 1) in a
> rule previously overlooked. This is usually beneficial in code size
> and almost always shortens dynamic paths.
> ---
> lisp/emacs-lisp/byte-opt.el | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
> diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
> index 3c7aeb89525..0891ec80beb 100644
> --- a/lisp/emacs-lisp/byte-opt.el
> +++ b/lisp/emacs-lisp/byte-opt.el
> @@ -2765,7 +2765,9 @@ If FOR-EFFECT is non-nil, the return value is assumed to be of no importance."
> (or (memq (caar tmp) '(byte-discard byte-discardN))
> ;; Make sure we don't hoist a discardN-preserve-tos
> ;; that really should be merged or deleted instead.
> - (and (eq (caar tmp) 'byte-discardN-preserve-tos)
> + (and (or (eq (caar tmp) 'byte-discardN-preserve-tos)
> + (and (eq (caar tmp) 'byte-stack-set)
> + (eql (cdar tmp) 1)))
> (let ((next (cadr tmp)))
> (not (or (memq (car next)
> '(byte-discardN-preserve-tos
Hello,
This commit causes native compilation builds on FreeBSD to fail with the error
native-ice ("org/org-plot.el" "block does not end with a branch"...
The full error is below and a link to a complete build log (FreeBSD
package build) is also included.
When the commit is reverted, the build finishes successfully again.
Joe
-l comp -f batch-byte+native-compile org/org-protocol.el
Internal native compiler error: "org/org-plot.el", "block does not end with a branch", #s(comp-block-lap bb_8 ((comment "LAP TAG 83") (call helper_unbind_n #s(comp-mvar nil nil ((1 . 1)) nil nil nil)) (setimm #s(comp-mvar (t) nil nil nil nil 2) make-temp-file) (setimm #s(comp-mvar (t) nil nil nil nil 3) "org-plot") (set #s(comp-mvar (t) nil nil nil nil 2) (callref funcall #s(comp-mvar (t) nil nil nil nil 2) #s(comp-mvar (t) nil nil nil nil 3))) (call record_unwind_protect_excursion) (setimm #s(comp-mvar (t) nil nil nil nil 3) org-plot/goto-nearest-table) (set #s(comp-mvar (t) nil nil nil nil 3) (callref funcall #s(comp-mvar (t) nil nil nil nil 3))) (setimm #s(comp-mvar (t) nil nil nil nil 3) org-table-to-lisp) (set #s(comp-mvar (t) nil nil nil nil 3) (callref funcall #s(comp-mvar (t) nil nil nil nil 3))) ...) nil nil nil nil #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8125 data ()) nil nil ...), #<symbol org-plot/gnuplot at 23521>
Error: native-ice ("org/org-plot.el" "block does not end with a branch" #s(comp-block-lap bb_8 ((comment "LAP TAG 83") (call helper_unbind_n #s(comp-mvar nil nil ((1 . 1)) nil nil nil)) (setimm #s(comp-mvar (t) nil nil nil nil 2) make-temp-file) (setimm #s(comp-mvar (t) nil nil nil nil 3) "org-plot") (set #s(comp-mvar (t) nil nil nil nil 2) (callref funcall #s(comp-mvar (t) nil nil nil nil 2) #s(comp-mvar (t) nil nil nil nil 3))) (call record_unwind_protect_excursion) (setimm #s(comp-mvar (t) nil nil nil nil 3) org-plot/goto-nearest-table) (set #s(comp-mvar (t) nil nil nil nil 3) (callref funcall #s(comp-mvar (t) nil nil nil nil 3))) (setimm #s(comp-mvar (t) nil nil nil nil 3) org-table-to-lisp) (set #s(comp-mvar (t) nil nil nil nil 3) (callref funcall #s(comp-mvar (t) nil nil nil nil 3))) (call helper_unbind_n #s(comp-mvar nil nil ((1 . 1)) nil nil nil)) (setimm #s(comp-mvar (t) nil nil nil nil 4) plist-get) (set #s(comp-mvar (t) nil nil nil nil 5) #s(comp-mvar (t) nil nil nil nil 0)) (setimm #s(comp-mvar (t) nil nil nil nil 6) :transpose) (set #s(comp-mvar (t) nil nil nil nil 4) (callref funcall #s(comp-mvar (t) nil nil nil nil 4) #s(comp-mvar (t) nil nil nil nil 5) #s(comp-mvar (t) nil nil nil nil 6))) (set #s(comp-mvar (t) nil nil nil nil 5) #s(comp-mvar (t) nil nil nil nil 4)) (setimm #s(comp-mvar (t) nil nil nil nil 6) #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (y 105 yes 105 t 105)))) nil nil nil nil #s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8125 data ()) nil nil 1 72 nil nil) org-plot/gnuplot)
mapbacktrace(#f(compiled-function (evald func args flags) #<bytecode 0x1f7c358ad9aed07c>))
debug-early-backtrace()
debug-early(error (native-ice "org/org-plot.el" "block does not end with a branch" #s(comp-block-lap :name bb_8 :insns ((comment "LAP TAG 83") (call helper_unbind_n #s(comp-mvar :typeset nil :valset nil :range ((1 . 1)) :neg nil :id nil :slot nil)) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 2) make-temp-file) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3) "org-plot") (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 2) (callref funcall #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 2) #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3))) (call record_unwind_protect_excursion) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3) org-plot/goto-nearest-table) (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3) (callref funcall #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3))) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3) org-table-to-lisp) (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3) (callref funcall #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3))) (call helper_unbind_n #s(comp-mvar :typeset nil :valset nil :range ((1 . 1)) :neg nil :id nil :slot nil)) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 4) plist-get) (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 5) #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 0)) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 6) :transpose) (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 4) (callref funcall #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 4) #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 5) #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 6))) (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 5) #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 4)) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 6) #<hash-table eq 3/3 0x2318babdf>)) :closed nil :in-edges nil :out-edges nil :idom nil :df #<hash-table eql 0/65 0x2264de4ed> :post-num nil :final-frame nil :sp 1 :addr 72 :non-ret-insn nil :no-ret nil) org-plot/gnuplot))
signal(native-ice ("org/org-plot.el" "block does not end with a branch" #s(comp-block-lap :name bb_8 :insns ((comment "LAP TAG 83") (call helper_unbind_n #s(comp-mvar :typeset nil :valset nil :range ((1 . 1)) :neg nil :id nil :slot nil)) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 2) make-temp-file) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3) "org-plot") (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 2) (callref funcall #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 2) #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3))) (call record_unwind_protect_excursion) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3) org-plot/goto-nearest-table) (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3) (callref funcall #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3))) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3) org-table-to-lisp) (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3) (callref funcall #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 3))) (call helper_unbind_n #s(comp-mvar :typeset nil :valset nil :range ((1 . 1)) :neg nil :id nil :slot nil)) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 4) plist-get) (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 5) #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 0)) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 6) :transpose) (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 4) (callref funcall #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 4) #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 5) #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 6))) (set #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 5) #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 4)) (setimm #s(comp-mvar :typeset (t) :valset nil :range nil :neg nil :id nil :slot 6) #<hash-table eq 3/3 0x2318babdf>)) :closed nil :in-edges nil :out-edges nil :idom nil :df #<hash-table eql 0/65 0x2264de4ed> :post-num nil :final-frame nil :sp 1 :addr 72 :non-ret-insn nil :no-ret nil) org-plot/gnuplot))
comp--native-compile("org/org-plot.el")
batch-native-compile()
batch-byte+native-compile()
command-line-1(("--eval" "(setq load-prefer-newer t byte-compile-warnings 'all)" "-l" "comp" "-f" "batch-byte+native-compile" "org/org-plot.el"))
command-line()
normal-top-level()
Full FreeBSD package build: http://pkg.ftfl.ca/data/14amd64-default/2023-04-03_09h10m05s/logs/errors/emacs-devel-30.0.50.20230403,3.log
next parent reply other threads:[~2023-04-03 17:41 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <167976134206.19776.1825822435181145052@vcs2.savannah.gnu.org>
[not found] ` <20230325162222.64223C1391B@vcs2.savannah.gnu.org>
2023-04-03 17:41 ` Joseph Mingrone [this message]
2023-04-03 17:45 ` master 52b67740d10: Generalise a LAP optimisation rule Eli Zaretskii
2023-04-04 8:10 ` Andrea Corallo
2023-04-04 16:13 ` Joseph Mingrone
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86ttxw3ltj.fsf@phe.ftfl.ca \
--to=jrm@ftfl.ca \
--cc=emacs-devel@gnu.org \
--cc=emacs@FreeBSD.org \
--cc=mattiase@acm.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).