guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 03/07: Prevent LICM of memory accesses guarded by effect


From: Andy Wingo
Subject: [Guile-commits] 03/07: Prevent LICM of memory accesses guarded by effect-free predicates
Date: Fri, 5 Jan 2018 09:25:24 -0500 (EST)

wingo pushed a commit to branch master
in repository guile.

commit e4e02d8489a3f8c5da74c59536215ef45416915a
Author: Andy Wingo <address@hidden>
Date:   Fri Jan 5 11:48:06 2018 +0100

    Prevent LICM of memory accesses guarded by effect-free predicates
    
    * module/language/cps/licm.scm (loop-invariant?): Read or write effects
      can be guarded by effect-free branches; prevent hoisting of these
      expressions if the term isn't always reachable.
---
 module/language/cps/licm.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/module/language/cps/licm.scm b/module/language/cps/licm.scm
index c0768cf..4a82528 100644
--- a/module/language/cps/licm.scm
+++ b/module/language/cps/licm.scm
@@ -55,7 +55,7 @@
     (and
      (not (causes-effect? fx &allocation))
      (or always-reached?
-         (not (causes-effect? fx &type-check)))
+         (not (causes-effect? fx (logior &type-check &read &write))))
      (or (not (causes-effect? fx &write))
          (intmap-fold (lambda (label fx* invariant?)
                         (and invariant?



reply via email to

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