From 52e28fd19ef94ed4e3c2f1480b110ff4540e65e8 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Wed, 6 Dec 2017 13:44:17 +0100 Subject: [PATCH] Fix DCE over primcall setters with params * module/language/cps/dce.scm (compute-live-code): The primcall-param refactor made it so that a vector-set! to a dead vector would needlessly mark the vector as live. This commit fixes it and adds scm-set!, etc. --- module/language/cps/dce.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/module/language/cps/dce.scm b/module/language/cps/dce.scm index 0727675f3..d896b3664 100644 --- a/module/language/cps/dce.scm +++ b/module/language/cps/dce.scm @@ -206,7 +206,9 @@ sites." (($ $primcall (or 'vector-set! 'vector-set!/immediate 'set-car! 'set-cdr! - 'box-set!) #f + 'box-set! + 'scm-set! 'scm-set!/tag 'scm-set!/immediate + 'word-set! 'word-set!/immediate) _ (obj . _)) (or (var-live? obj live-vars) (not (intset-ref known-allocations obj))))