summaryrefslogtreecommitdiff
path: root/module/language/cps/split-rec.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2017-11-01 11:57:16 +0100
committerAndy Wingo <wingo@pobox.com>2017-11-05 15:00:16 +0100
commitc54c151eb60971c7553146acfb0caa036016f02d (patch)
treeeb76ef8355fe027d481ee24146d7b888a81c8896 /module/language/cps/split-rec.scm
parent2d8c75f9f252b41aad93b5dfcdf10a1aee86e463 (diff)
downloadguile-c54c151eb60971c7553146acfb0caa036016f02d.tar.gz
$primcall has a "param" member
* module/language/cps.scm ($primcall): Add "param" member, which will be a constant parameter to the primcall. The idea is that constants used by primcalls as immediates don't need to participate in optimizations in any way -- they should not participate in CSE, have the same lifetime as the primcall so not part of DCE either, and don't need slot allocation. Indirecting them through a named $const binding is complication for no benefit. This change should eventually improve compilation time and memory usage, once we fully take advantage of it, as the number of labels and variables will go down. * module/language/cps/closure-conversion.scm: * module/language/cps/compile-bytecode.scm: * module/language/cps/constructors.scm: * module/language/cps/contification.scm: * module/language/cps/cse.scm: * module/language/cps/dce.scm: * module/language/cps/effects-analysis.scm: * module/language/cps/elide-values.scm: * module/language/cps/handle-interrupts.scm: * module/language/cps/licm.scm: * module/language/cps/peel-loops.scm: * module/language/cps/prune-bailouts.scm: * module/language/cps/prune-top-level-scopes.scm: * module/language/cps/reify-primitives.scm: * module/language/cps/renumber.scm: * module/language/cps/rotate-loops.scm: * module/language/cps/self-references.scm: * module/language/cps/simplify.scm: * module/language/cps/slot-allocation.scm: * module/language/cps/specialize-numbers.scm: * module/language/cps/specialize-primcalls.scm: * module/language/cps/split-rec.scm: * module/language/cps/type-checks.scm: * module/language/cps/type-fold.scm: * module/language/cps/types.scm: * module/language/cps/utils.scm: * module/language/cps/verify.scm: * module/language/tree-il/compile-cps.scm: Adapt all users.
Diffstat (limited to 'module/language/cps/split-rec.scm')
-rw-r--r--module/language/cps/split-rec.scm4
1 files changed, 2 insertions, 2 deletions
diff --git a/module/language/cps/split-rec.scm b/module/language/cps/split-rec.scm
index 5a8119bb2..c733c38c0 100644
--- a/module/language/cps/split-rec.scm
+++ b/module/language/cps/split-rec.scm
@@ -87,9 +87,9 @@ references."
(add-uses args uses))
(($ $call proc args)
(add-use proc (add-uses args uses)))
- (($ $branch kt ($ $primcall name args))
+ (($ $branch kt ($ $primcall name param args))
(add-uses args uses))
- (($ $primcall name args)
+ (($ $primcall name param args)
(add-uses args uses))
(($ $prompt escape? tag handler)
(add-use tag uses)))))