[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?
- [Guile-commits] branch master updated (118f516 -> 7486806), Andy Wingo, 2018/01/05
- [Guile-commits] 03/07: Prevent LICM of memory accesses guarded by effect-free predicates,
Andy Wingo <=
- [Guile-commits] 06/07: Allow peval to gnaw on string->symbol, symbol->string, Andy Wingo, 2018/01/05
- [Guile-commits] 04/07: Allow peeling loops with bailouts, Andy Wingo, 2018/01/05
- [Guile-commits] 02/07: Disable resolve-primitives pass below -O2, Andy Wingo, 2018/01/05
- [Guile-commits] 05/07: Instruction explosion for vector-{length, ref, set!}, Andy Wingo, 2018/01/05
- [Guile-commits] 01/07: Add (system base optimize) module, Andy Wingo, 2018/01/05
- [Guile-commits] 07/07: Improve compilation of make-vector without init, Andy Wingo, 2018/01/05