summaryrefslogtreecommitdiff
path: root/module/language/cps/cse.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2021-10-03 21:39:46 +0200
committerAndy Wingo <wingo@pobox.com>2021-10-03 21:39:46 +0200
commite60469c8b6936575c079faaffa40a340e1d49f3c (patch)
tree6a0fb837a7e8369e8e8b2b156d55389aca45b19a /module/language/cps/cse.scm
parent71e201d5c4fd10c4bd9abbbc68b8971e8201ac7f (diff)
downloadguile-e60469c8b6936575c079faaffa40a340e1d49f3c.tar.gz
Add primitive alias analysis to CSE
* module/language/cps/effects-analysis.scm (compute-known-allocations): (compute-clobber-map): Add "conts" parameter, and use it to compute primcalls that access known allocations. A write to a known allocation only clobbers a read to a known allocation if they are the same. * module/language/cps/cse.scm (eliminate-common-subexpressions-in-fun): Pass conts also to compute-clobber-map.
Diffstat (limited to 'module/language/cps/cse.scm')
-rw-r--r--module/language/cps/cse.scm2
1 files changed, 1 insertions, 1 deletions
diff --git a/module/language/cps/cse.scm b/module/language/cps/cse.scm
index 47c0f90e6..3c67a043a 100644
--- a/module/language/cps/cse.scm
+++ b/module/language/cps/cse.scm
@@ -735,7 +735,7 @@ for a label, it isn't known to be constant at that label."
;; post-order, so the intmap-fold will visit definitions before
;; uses.
(let* ((effects (synthesize-definition-effects (compute-effects conts)))
- (clobbers (compute-clobber-map effects))
+ (clobbers (compute-clobber-map conts effects))
(succs (compute-successors conts kfun))
(preds (invert-graph succs))
(avail (compute-available-expressions succs kfun clobbers))