]> git.eshelyaron.com Git - emacs.git/commitdiff
Revert "* Nativecomp disable propagation of pre slot access type check..."
authorAndrea Corallo <akrl@sdf.org>
Mon, 29 May 2023 16:06:33 +0000 (18:06 +0200)
committerAndrea Corallo <akrl@sdf.org>
Mon, 29 May 2023 16:07:20 +0000 (18:07 +0200)
This reverts commit c8e527cbeeea6be9bb713af33a3f40408b261234 as
56a8d57d032 fixes the root cause.

lisp/emacs-lisp/comp.el

index 937d9fdf926a7f98e6791421941622a557c59bf2..ec51f805c2bec7999fcc532d8473a483349457fd 100644 (file)
@@ -2550,19 +2550,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)