From 11878e160336415facd458ee49852bc55b458364 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 28 May 2020 09:53:55 +0200 Subject: [PATCH] Fix truthy expression analysis in CSE * module/language/cps/cse.scm (compute-truthy-expressions): The "meet" function here is union, not intersection. --- module/language/cps/cse.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/language/cps/cse.scm b/module/language/cps/cse.scm index 8ecd6f35f..53b8a5167 100644 --- a/module/language/cps/cse.scm +++ b/module/language/cps/cse.scm @@ -1,6 +1,6 @@ ;;; 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 ;;;; 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) (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*) (values '() boolv) (values (list succ)