1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00
Commit graph

13 commits

Author SHA1 Message Date
Andy Wingo
e2066d2e63 Change -O1 compiler to use baseline and also resolve primitives
* bootstrap/Makefile.am (GUILE_OPTIMIZATIONS): Change to just -O1.
* module/language/tree-il/spec.scm (choose-compiler): Use CPS for -O2
  and higher.
* module/system/base/optimize.scm (available-optimizations): CPS for -O2
  and higher, but -Oresolve-primitives now at -O1 also.
2020-06-01 21:15:39 +02:00
Andy Wingo
a68c80c747 Switch to baseline compiler for bootstrap/
* bootstrap/Makefile.am (GUILE_OPTIMIZATIONS): Add -Ono-cps so that we
  use the baseline compiler when bootstrapping.
2020-05-11 15:22:29 +02:00
Andy Wingo
e9c0f3071d Warning and optimization levels always small integers
* module/language/tree-il/analyze.scm (make-analyzer): Expect an int for
  optimization level.
* module/scripts/compile.scm (%options, show-warning-help): No more
  -Wnone / Wall; use -W0 or -W9 instead.
* module/system/base/compile.scm (level-validator): Validate small int.
  (compute-analyzer, add-default-optimizations): Likewise.
* test-suite/tests/optargs.test (without-compiler-warnings):
* test-suite/tests/tree-il.test (call-with-warnings): Parameterize level
  to 0, not #f.
* bootstrap/Makefile.am (GUILE_WARNINGS): Use -W0, not -Wnone.
2020-05-08 16:35:04 +02:00
Andy Wingo
220934c49d Wire up simplified warning levels in "guild compile"
* am/guilec (GUILE_WARNINGS):
* am/bootstrap.am (GUILE_WARNINGS): Explictly default to -W1.
* bootstrap/Makefile.am (GUILE_WARNINGS): Set to -Wnone, as the meaning
  of "no -W flags" has changed to be effectively -W1.
* module/scripts/compile.scm (%options): Adapt to parse -Wnone, -W2, and
  so on.
  (parse-args): Default to (default-warning-level).
  (show-warning-help): Add more warning help.
  (compile): Pass #:warning-level.
2020-05-08 16:03:32 +02:00
Mikael Djurfeldt
af1d55bcca Bootstrap optimization
* bootstrap/Makefile.am: Build both eval.go and psyntax-pp.go before
  the rest of the .go files so that they are handled by a fast macro
  expander. This saves time for a parallel build.
2019-05-23 17:13:19 +02:00
Andy Wingo
fa4cb2182d Add resolve-primitives pass back to bootstrap
* bootstrap/Makefile.am (GUILE_OPTIMIZATIONS): Blah, add
  -Oresolve-primitives.
2018-01-05 17:47:46 +01:00
Andy Wingo
eccdeb6cc6 Distribute prebuilt bootstraps for common hosts
* am/bootstrap.am: New file, factored out of bootstrap/Makefile.am.
* bootstrap/Makefile.am: Use bootstrap.am.

* prebuilt/Makefile.am:
* prebuilt/i686-pc-linux-gnu/Makefile.am:
* prebuilt/mips-unknown-linux-gnu/Makefile.am:
* prebuilt/x86_64-unknown-linux-gnu/Makefile.am: New files.

* configure.ac: Output the prebuilt/ makefiles.
* Makefile.am: Descend into prebuilt/ when making dist.

* meta/uninstalled-env.in: Arrange to put prebuilt/ in the beginning of
  the GUILE_LOAD_COMPILED_PATH.  Also fix a case where bootstrap/ wasn't
  being correctly added to the load path.
2016-01-29 10:21:44 +01:00
Andy Wingo
204336c377 Don't serialize build through psyntax-pp.scm
* bootstrap/Makefile.am: Don't serialize the build through
  psyntax-pp.scm.  On a multicore make, this will result in higher total
  CPU time as multiple processes use an interpreted expander, but lower
  total build time, as all processes will take approximately the same
  time to load and run the compiler.
2016-01-03 18:20:19 +01:00
Andy Wingo
eb86afcc7a Disable warnings on bootstrap build
* bootstrap/Makefile.am (GUILE_WARNINGS): Don't enable warnings for the
  bootstrap build, as they probably slow things down.
2015-12-02 08:45:30 +01:00
Andy Wingo
12e9e2148e 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.
2015-11-11 10:21:43 +01:00
Andy Wingo
e5bccb6e5d Fix distcheck issues
* bootstrap/Makefile.am:
* libguile/Makefile.am: Fix distcheck issues.
2015-10-25 14:25:56 +00:00
Andy Wingo
1c9e23c090 Bootstrap makefile tweaks
* bootstrap/Makefile.am (.scm.go): Fix -L options to point to /module.
  (SOURCES): Move up psyntax-pp.scm.  Sadly a bug while I was developing
  the bootstrap makefile meant that there was a stale psyntax-pp.go from
  module/ that the build was picking up, leading to invalid
  bootstrap timing measurements.
2015-10-23 16:49:02 +02:00
Andy Wingo
5f4ac529e1 Use a bootstrapped -O0 compiler to compile the -O2 Guile
This reduces total build time to around 30 minutes or so.

* Makefile.am (SUBDIRS): Visit bootstrap/ before module/.

* bootstrap/Makefile.am: New file.

* configure.ac: Generate bootstrap/Makefile.

* meta/uninstalled-env.in (top_builddir): Add bootstrap/ to the
  GUILE_LOAD_COMPILED_PATH.

* module/Makefile.am: Simplify to just sort files in alphabetical order;
  since bootstrap/ was already compiled, we don't need to try to
  optimize compilation order.  Although the compiler will get faster as
  more of the compiler itself is optimized, this isn't a significant
  enough effect to worry about.
2015-10-23 13:29:03 +00:00