[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 03/25: Bug-fix to devirtualize-integers pass
From: |
Andy Wingo |
Subject: |
[Guile-commits] 03/25: Bug-fix to devirtualize-integers pass |
Date: |
Mon, 8 Jan 2018 09:25:02 -0500 (EST) |
wingo pushed a commit to branch master
in repository guile.
commit d4addf3792833a8ea392385cc9ae792f021a3f9b
Author: Andy Wingo <address@hidden>
Date: Sun Jan 7 12:58:32 2018 +0100
Bug-fix to devirtualize-integers pass
* module/language/cps/devirtualize-integers.scm (peel-trace): Only
terminate a trace at a branch if the set of live vars is empty.
---
module/language/cps/devirtualize-integers.scm | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/module/language/cps/devirtualize-integers.scm
b/module/language/cps/devirtualize-integers.scm
index 7dd66f1..16117c3 100644
--- a/module/language/cps/devirtualize-integers.scm
+++ b/module/language/cps/devirtualize-integers.scm
@@ -170,7 +170,7 @@ the trace should be referenced outside of it."
(can-terminate-trace? uses-of-interest?)
(peeled-args (rename-uses args)))
(cond
- ((not (any-use-of-interest? args))
+ ((not uses-of-interest?)
(fail))
((bailout? kt)
(continue kf live-vars defs-of-interest? can-terminate-trace?
@@ -182,12 +182,14 @@ the trace should be referenced outside of it."
(lambda (kt)
(build-term
($branch kf kt src op param peeled-args)))))
- (else
+ ((eq? live-vars empty-intmap)
(with-cps cps
(letk label*
($kargs names peeled-vars
($branch kf kt src op param peeled-args)))
- label*)))))
+ label*))
+ (else
+ (fail)))))
(($ $continue k src exp)
(match exp
(($ $const)
- [Guile-commits] branch master updated (fa4cb21 -> e2a0624), Andy Wingo, 2018/01/08
- [Guile-commits] 05/25: Minor optimization in loop peeling, Andy Wingo, 2018/01/08
- [Guile-commits] 03/25: Bug-fix to devirtualize-integers pass,
Andy Wingo <=
- [Guile-commits] 07/25: Instruction explosion for make-vector, Andy Wingo, 2018/01/08
- [Guile-commits] 11/25: Remove "ash" instruction., Andy Wingo, 2018/01/08
- [Guile-commits] 09/25: Mark word-ref and word-ref/immediate as producing U64 values, Andy Wingo, 2018/01/08
- [Guile-commits] 12/25: Remove now-unused make-vector et al instructions, Andy Wingo, 2018/01/08
- [Guile-commits] 18/25: Minor compile-cps refactor for cons, Andy Wingo, 2018/01/08
- [Guile-commits] 15/25: CPS type analysis support for mutable vs immutable vectors, Andy Wingo, 2018/01/08
- [Guile-commits] 21/25: Remove pair-related instructions, Andy Wingo, 2018/01/08
- [Guile-commits] 10/25: CPS pass now expects exploded vector primitives, Andy Wingo, 2018/01/08
- [Guile-commits] 13/25: Add CPS compilation support for mutable-vector?, Andy Wingo, 2018/01/08
- [Guile-commits] 24/25: Sync IP before allocating closures, Andy Wingo, 2018/01/08