* Nativecomp disable propagation of pre slot access type check (bug#63710)

* lisp/emacs-lisp/comp.el (comp-add-cond-cstrs): Temporary disable
propagation of pre slot access type check.
This commit is contained in:
Andrea Corallo 2023-05-28 14:51:58 +02:00
parent e6299d2783
commit c8e527cbee

View file

@ -2548,19 +2548,19 @@ TARGET-BB-SYM is the symbol name of the target block."
for insns-seq on (comp-block-insns b)
do
(pcase insns-seq
(`((set ,(and (pred comp-mvar-p) mvar-tested-copy)
,(and (pred comp-mvar-p) mvar-tested))
(set ,(and (pred comp-mvar-p) mvar-1)
(call type-of ,(and (pred comp-mvar-p) mvar-tested-copy)))
(set ,(and (pred comp-mvar-p) mvar-2)
(call symbol-value ,(and (pred comp-cstr-cl-tag-p) mvar-tag)))
(set ,(and (pred comp-mvar-p) mvar-3)
(call memq ,(and (pred comp-mvar-p) mvar-1) ,(and (pred comp-mvar-p) mvar-2)))
(cond-jump ,(and (pred comp-mvar-p) mvar-3) ,(pred comp-mvar-p) ,bb1 ,bb2))
(push `(assume ,mvar-tested ,(make-comp-mvar :type (comp-cstr-cl-tag mvar-tag)))
(comp-block-insns (comp-add-cond-cstrs-target-block b bb2)))
(push `(assume ,mvar-tested ,(make-comp-mvar :type (comp-cstr-cl-tag mvar-tag) :neg t))
(comp-block-insns (comp-add-cond-cstrs-target-block b bb1))))
;; (`((set ,(and (pred comp-mvar-p) mvar-tested-copy)
;; ,(and (pred comp-mvar-p) mvar-tested))
;; (set ,(and (pred comp-mvar-p) mvar-1)
;; (call type-of ,(and (pred comp-mvar-p) mvar-tested-copy)))
;; (set ,(and (pred comp-mvar-p) mvar-2)
;; (call symbol-value ,(and (pred comp-cstr-cl-tag-p) mvar-tag)))
;; (set ,(and (pred comp-mvar-p) mvar-3)
;; (call memq ,(and (pred comp-mvar-p) mvar-1) ,(and (pred comp-mvar-p) mvar-2)))
;; (cond-jump ,(and (pred comp-mvar-p) mvar-3) ,(pred comp-mvar-p) ,bb1 ,bb2))
;; (push `(assume ,mvar-tested ,(make-comp-mvar :type (comp-cstr-cl-tag mvar-tag)))
;; (comp-block-insns (comp-add-cond-cstrs-target-block b bb2)))
;; (push `(assume ,mvar-tested ,(make-comp-mvar :type (comp-cstr-cl-tag mvar-tag) :neg t))
;; (comp-block-insns (comp-add-cond-cstrs-target-block b bb1))))
(`((set ,(and (pred comp-mvar-p) cmp-res)
(,(pred comp-call-op-p)
,(and (or (pred comp-equality-fun-p)