1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-22 11:34:09 +02:00
Commit graph

12 commits

Author SHA1 Message Date
Andy Wingo
1bb7a7fa7a Reorganizing of intset/intmap helper functions
* module/language/cps2/split-rec.scm (intmap-keys): Move to utils.
* module/language/cps2/utils.scm (trivial-intset): New function.
  (intmap-keys, invert-bijection, invert-partition): New functions.
2015-07-13 11:01:43 +02:00
Andy Wingo
ea5187ad86 Fix some cps2 utils bugs
* module/language/cps2/utils.scm (compute-function-body): $callk does
  not add to a local function graph.
  (compute-successors): Fix extraction of "handler" continuation for
  $prompt.
2015-06-03 11:20:22 +02:00
Andy Wingo
fef50ea8da Move some graph utilities from contification.scm to utils.scm
* module/language/cps2/utils.scm (compute-successors): New helper.
  (compute-reverse-post-order): Move here from contification.scm and
  rename from "sort-nodes".
  (invert-graph): New helper.
  (compute-strongly-connected-components): Move here from
  contification.scm and rename from "compute-sccs".

* module/language/cps2/contification.scm (sort-nodes, compute-sccs): Remove.
2015-06-03 10:13:15 +02:00
Andy Wingo
2838c6e857 Fix compute-defining-expressions (and thereby compute-constant-values)
* module/language/cps2/utils.scm (compute-defining-expressions): Fix
  not one but two bugs in this pattern.  Grrr.
2015-06-02 10:05:09 +02:00
Andy Wingo
23379467ae Add intmap-replace!.
* module/language/cps/intmap.scm (intmap-replace!): New interface.

* module/language/cps2/dce.scm (elide-type-checks):
* module/language/cps2/simplify.scm (transform-conts):
* module/language/cps2/utils.scm (intmap-map):
* module/language/tree-il/compile-cps2.scm (cps-convert/thunk): Use intmap-replace!.
2015-06-02 10:05:09 +02:00
Andy Wingo
75ab52e490 Fix regression in compute-idoms
* module/language/cps2/utils.scm (compute-idoms): Adapt to previous
  change that makes intmap-ref throw when the key is not present.
2015-06-02 10:05:09 +02:00
Andy Wingo
80c162b67c Port effects analysis to CPS2
* module/Makefile.am (CPS2_LANG_SOURCES): Add effects-analysis.scm.
* module/language/cps2/effects-analysis.scm: New file, based on
  cps/effects-analysis.scm.
* module/language/cps2/utils.scm (intmap-map):
  (compute-defining-expressions, compute-constant-values): New helpers.
2015-05-20 19:18:45 +02:00
Andy Wingo
1403df4140 Add arity to worklist-fold
* module/language/cps2/utils.scm (worklist-fold): Add two-seeded arity.
  (worklist-fold2): Remove.

* module/language/cps2/renumber.scm (compute-tail-path-lengths): Adapt.
2015-05-20 19:18:45 +02:00
Andy Wingo
cb7aa0b3b1 Add two-argument fixpoint arity
* module/language/cps2/utils.scm (fixpoint): Add two-argument arity.
2015-05-20 19:18:45 +02:00
Andy Wingo
e0e47cb527 Fix fixpoint
* module/language/cps2/utils.scm (fixpoint): Fix embarrassing bug
  where it wouldn't actually fixpoint!  Didn't show up in practice
  because CPS2 hasn't run after contification yet.
2015-05-20 19:18:45 +02:00
Andy Wingo
219b6f82a2 compute-dom-edges returns a persistent intmap
* module/language/cps/utils.scm (compute-dom-edges): Return a
  persistent intmap.  Fixes strange bootstrapping failures that I
  don't understand :/.
2015-05-09 16:52:09 +02:00
Andy Wingo
6485e89276 Beginnings of CPS2 language.
The tentative plan is to replace CPS with CPS2, and to rename CPS2 to
CPS.  We will add a pass to compile tree-il to CPS2, then work from
the top down to replace the CPS compiler passes.

* module/language/cps2.scm:
* module/language/cps2/compile-cps.scm:
* module/language/cps2/renumber.scm:
* module/language/cps2/utils.scm: New files.

* module/Makefile.am: Add new files to build.
2015-05-08 11:46:46 +02:00