1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-24 12:20:20 +02:00

Add new pass to specialize "add" into "fadd" where possible

* module/language/cps/specialize-numbers.scm: New pass, to turn "add"
  into "fadd", and similarly for sub, mul, and div.

* module/language/cps/optimize.scm:
* module/Makefile.am:
* bootstrap/Makefile.am: Wire up the new pass.
This commit is contained in:
Andy Wingo 2015-10-29 09:15:38 +00:00
parent 3b4941f3a9
commit 12e9e2148e
4 changed files with 96 additions and 0 deletions

View file

@ -37,6 +37,7 @@
#:use-module (language cps self-references)
#:use-module (language cps simplify)
#:use-module (language cps specialize-primcalls)
#:use-module (language cps specialize-numbers)
#:use-module (language cps type-fold)
#:use-module (language cps verify)
#:export (optimize-higher-order-cps
@ -104,6 +105,7 @@
(simplify #:simplify? #t))
(define-optimizer optimize-first-order-cps
(specialize-numbers #:specialize-numbers? #t)
(hoist-loop-invariant-code #:licm? #t)
(eliminate-common-subexpressions #:cse? #t)
(eliminate-dead-code #:eliminate-dead-code? #t)
@ -123,5 +125,6 @@
#:cse? #t
#:type-fold? #t
#:resolve-self-references? #t
#:specialize-numbers? #t
#:licm? #t
#:rotate-loops? #t))