diff options
author | Andy Wingo <wingo@pobox.com> | 2021-10-03 21:09:41 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2021-10-03 21:09:41 +0200 |
commit | 71e201d5c4fd10c4bd9abbbc68b8971e8201ac7f (patch) | |
tree | a97eddb258dd933a06f4cf7f5a5ac9c495dab887 | |
parent | c9c16db694e8da04fdd298073fdbd311ef1b5796 (diff) | |
download | guile-71e201d5c4fd10c4bd9abbbc68b8971e8201ac7f.tar.gz |
Use more logtest in cse.scm
* module/language/cps/effects-analysis.scm (causes-effect?):
(effect-clobbers?): Use logtest.
-rw-r--r-- | module/language/cps/effects-analysis.scm | 6 |
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) |