1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 06:20:23 +02:00
guile/module/language/tree-il
Andy Wingo 382cc5c246 Add support for optimized unboxed abs and sqrt
Some components of this have been wired up for a while; this commit
finishes the compiler, runtime, and JIT support.

* libguile/intrinsics.h (SCM_FOR_ALL_VM_INTRINSICS):
* libguile/intrinsics.c (scm_bootstrap_intrinsics): Declare the new
  intrinsics.
* libguile/jit.c (compile_call_f64_from_f64): Define code generators for
  the new intrinsics.
* libguile/vm-engine.c (call-f64<-f64): New instruction.
* module/language/cps/effects-analysis.scm:
* module/language/cps/reify-primitives.scm (compute-known-primitives):
* module/language/cps/slot-allocation.scm (compute-var-representations):
* module/language/cps/specialize-numbers.scm (specialize-operations):
* module/language/tree-il/cps-primitives.scm (abs):
* module/system/vm/assembler.scm (system, define-f64<-f64-intrinsic):
  (sqrt, abs, fsqrt, fabs):
* module/language/cps/types.scm (fsqrt, fabs): Add new f64<-f64
  primitives.
2019-08-04 21:54:51 +02:00
..
analyze.scm Add -Wshadowed-toplevel. 2018-08-07 12:34:32 +02:00
canonicalize.scm Inline escape-only prompt bodies in the Tree-IL 2013-08-11 16:45:31 +02:00
compile-cps.scm Add -Wshadowed-toplevel. 2018-08-07 12:34:32 +02:00
cps-primitives.scm Add support for optimized unboxed abs and sqrt 2019-08-04 21:54:51 +02:00
debug.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
effects.scm with-dynamic-state compiler and VM support 2016-12-05 22:57:29 +01:00
fix-letrec.scm psyntax: Generate identifiers in a deterministic fashion. 2017-03-07 20:48:40 +01:00
optimize.scm Disable resolve-primitives pass below -O2 2018-01-05 10:40:03 +01:00
peval.scm Fix eta-conversion edge cases in peval. 2018-08-07 11:40:54 +02:00
primitives.scm Lower "make-struct/simple" to CPS 2018-01-22 07:28:11 +01:00
spec.scm Rename CPS2 to CPS 2015-07-22 17:19:04 +02:00