1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-18 01:30:27 +02:00

Port CSE to CPS2

* module/language/cps2/cse.scm: New file, ported from CPS.
* module/language/cps2/optimize.scm: Wire up CSE.
* module/Makefile.am: Add language/cps2/cse.scm.

* module/language/cps/compile-bytecode.scm (optimize): Disable
  prune-top-level-scopes on old CPS.  It seems to not work if CSE has
  run beforehand.
This commit is contained in:
Andy Wingo 2015-06-03 12:59:51 +02:00
parent ea5187ad86
commit c3bc1f8e93
4 changed files with 456 additions and 2 deletions

View file

@ -78,7 +78,10 @@
;; analysis on the box created for the set!.
(run-pass! eliminate-dead-code #:eliminate-dead-code? #t)
(run-pass! prune-top-level-scopes #:prune-top-level-scopes? #t)
;; The prune-top-level-scopes pass doesn't work if CSE has run
;; beforehand. Since hopefully we will be able to just remove all the
;; old CPS stuff, let's just disable the pass for now.
;; (run-pass! prune-top-level-scopes #:prune-top-level-scopes? #t)
(run-pass! simplify #:simplify? #t)
(run-pass! contify #:contify? #t)
(run-pass! inline-constructors #:inline-constructors? #t)