Do not add unnecesary arg constraints (bug#45812 bug#45705 bug#45751).
These have the effect of bloating the IR for no effect killing compile time. The typical cases for that are extremely long backuoted lists. * lisp/emacs-lisp/comp-cstr.el (comp-cstr-t): New var. * lisp/emacs-lisp/comp.el (comp-add-call-cstr): No need to add arg call constraints if this is t.
This commit is contained in:
parent
39b3bcd324
commit
0ffb3dfaa4
2 changed files with 6 additions and 0 deletions
|
@ -179,6 +179,9 @@ Return them as multiple value."
|
|||
(defvar comp-cstr-one (comp-value-to-cstr 1)
|
||||
"Represent the integer immediate one.")
|
||||
|
||||
(defvar comp-cstr-t (comp-type-to-cstr t)
|
||||
"Represent the superclass t.")
|
||||
|
||||
|
||||
;;; Value handling.
|
||||
|
||||
|
|
|
@ -2513,6 +2513,9 @@ TARGET-BB-SYM is the symbol name of the target block."
|
|||
do (signal 'native-ice
|
||||
(list "Incoherent type specifier for function" f))
|
||||
when (and target
|
||||
;; No need to add call constraints if this is t
|
||||
;; (bug#45812 bug#45705 bug#45751).
|
||||
(not (equal comp-cstr-t cstr))
|
||||
(or (null lhs)
|
||||
(not (eql (comp-mvar-slot lhs)
|
||||
(comp-mvar-slot target)))))
|
||||
|
|
Loading…
Add table
Reference in a new issue