mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
Fix truthy expression analysis in CSE
* module/language/cps/cse.scm (compute-truthy-expressions): The "meet" function here is union, not intersection.
This commit is contained in:
parent
a5421d2bb6
commit
11878e1603
1 changed files with 2 additions and 2 deletions
|
@ -1,6 +1,6 @@
|
||||||
;;; Continuation-passing style (CPS) intermediate language (IL)
|
;;; Continuation-passing style (CPS) intermediate language (IL)
|
||||||
|
|
||||||
;; Copyright (C) 2013-2019 Free Software Foundation, Inc.
|
;; Copyright (C) 2013-2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
;;;; This library is free software; you can redistribute it and/or
|
;;;; This library is free software; you can redistribute it and/or
|
||||||
;;;; modify it under the terms of the GNU Lesser General Public
|
;;;; modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -88,7 +88,7 @@ false. It could be that both true and false proofs are available."
|
||||||
|
|
||||||
(define (propagate boolv succ out)
|
(define (propagate boolv succ out)
|
||||||
(let* ((in (intmap-ref boolv succ (lambda (_) #f)))
|
(let* ((in (intmap-ref boolv succ (lambda (_) #f)))
|
||||||
(in* (if in (intset-intersect in out) out)))
|
(in* (if in (intset-union in out) out)))
|
||||||
(if (eq? in in*)
|
(if (eq? in in*)
|
||||||
(values '() boolv)
|
(values '() boolv)
|
||||||
(values (list succ)
|
(values (list succ)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue