diff options
author | Andy Wingo <wingo@pobox.com> | 2017-11-01 11:57:16 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2017-11-05 15:00:16 +0100 |
commit | c54c151eb60971c7553146acfb0caa036016f02d (patch) | |
tree | eb76ef8355fe027d481ee24146d7b888a81c8896 /module/language/cps/split-rec.scm | |
parent | 2d8c75f9f252b41aad93b5dfcdf10a1aee86e463 (diff) | |
download | guile-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.scm | 4 |
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))))) |