guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 02/02: Narrow parameter of logand/immediate if no bits u


From: Andy Wingo
Subject: [Guile-commits] 02/02: Narrow parameter of logand/immediate if no bits used
Date: Mon, 23 Sep 2024 10:01:07 -0400 (EDT)

wingo pushed a commit to branch main
in repository guile.

commit 5e6288c9304b60f1875a44808ee3858e3d6efc83
Author: Andy Wingo <wingo@pobox.com>
AuthorDate: Mon Sep 23 15:57:23 2024 +0200

    Narrow parameter of logand/immediate if no bits used
    
    * module/language/cps/specialize-numbers.scm (specialize-operations):
    Narrow ulogand/immediate param according to used bits.
---
 module/language/cps/specialize-numbers.scm | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/module/language/cps/specialize-numbers.scm 
b/module/language/cps/specialize-numbers.scm
index 4ec88871c..f93250756 100644
--- a/module/language/cps/specialize-numbers.scm
+++ b/module/language/cps/specialize-numbers.scm
@@ -1,6 +1,6 @@
 ;;; Continuation-passing style (CPS) intermediate language (IL)
 
-;; Copyright (C) 2015-2021, 2023 Free Software Foundation, Inc.
+;; Copyright (C) 2015-2021,2023-2024 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
@@ -561,9 +561,11 @@ BITS indicating the significant bits needed for a 
variable.  BITS may be
               (specialize-unop cps k src op param a
                                (unbox-u64 a) (box-u64 result))))
 
-           (('logand/immediate (? u64-result? ) param (? u64-operand? a))
+           (('logand/immediate (? u64-result?) param (? u64-operand? a))
             (specialize-unop cps k src 'ulogand/immediate
-                             (logand param (1- (ash 1 64)))
+                             (logand param
+                                     (or (intmap-ref sigbits result) -1)
+                                     (1- (ash 1 64)))
                              a
                              (unbox-u64 a) (box-u64 result)))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]