summaryrefslogtreecommitdiff
path: root/module/language
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2021-10-03 21:09:41 +0200
committerAndy Wingo <wingo@pobox.com>2021-10-03 21:09:41 +0200
commit71e201d5c4fd10c4bd9abbbc68b8971e8201ac7f (patch)
treea97eddb258dd933a06f4cf7f5a5ac9c495dab887 /module/language
parentc9c16db694e8da04fdd298073fdbd311ef1b5796 (diff)
downloadguile-71e201d5c4fd10c4bd9abbbc68b8971e8201ac7f.tar.gz
Use more logtest in cse.scm
* module/language/cps/effects-analysis.scm (causes-effect?): (effect-clobbers?): Use logtest.
Diffstat (limited to 'module/language')
-rw-r--r--module/language/cps/effects-analysis.scm6
1 files changed, 3 insertions, 3 deletions
diff --git a/module/language/cps/effects-analysis.scm b/module/language/cps/effects-analysis.scm
index 365c280c1..9ee7f0c62 100644
--- a/module/language/cps/effects-analysis.scm
+++ b/module/language/cps/effects-analysis.scm
@@ -221,7 +221,7 @@
(logior &all-effect-kinds (&object &unknown-memory-kinds))))
(define-inlinable (causes-effect? x effects)
- (not (zero? (logand x effects))))
+ (logtest x effects))
(define-inlinable (causes-all-effects? x)
(eqv? x &all-effects))
@@ -238,8 +238,8 @@ is or might be a read or a write to the same location as A."
;; A negative field indicates "the whole object".
;; Non-negative fields indicate only part of the object.
(or (< a 0) (< b 0) (= a b))))))
- (and (not (zero? (logand a &write)))
- (not (zero? (logand b (logior &read &write))))
+ (and (logtest a &write)
+ (logtest b (logior &read &write))
(locations-same?)))
(define (compute-clobber-map effects)