diff options
author | Andy Wingo <wingo@pobox.com> | 2021-10-03 21:39:46 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2021-10-03 21:39:46 +0200 |
commit | e60469c8b6936575c079faaffa40a340e1d49f3c (patch) | |
tree | 6a0fb837a7e8369e8e8b2b156d55389aca45b19a /module/language/cps/cse.scm | |
parent | 71e201d5c4fd10c4bd9abbbc68b8971e8201ac7f (diff) | |
download | guile-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.scm | 2 |
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)) |