1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 11:50:28 +02:00
guile/module/language/cps
Andy Wingo d1cf892880 Optimize fixnum or s64 -> f64 conversions
* libguile/intrinsics.c (scm_bootstrap_intrinsics):
* libguile/intrinsics.h (SCM_FOR_ALL_VM_INTRINSICS): Add "inexact"
  intrinsic.
* libguile/jit.c (compile_s64_to_f64): New compiler.
* libguile/vm-engine.c (s64->f64): New instruction.
* module/language/cps/effects-analysis.scm (heap-numbers-equal?):
* module/language/cps/reify-primitives.scm (compute-known-primitives):
* module/language/cps/slot-allocation.scm (compute-var-representations):
* module/language/cps/specialize-numbers.scm (fixnum->f64):
  (specialize-operations):
* module/language/cps/type-fold.scm (scm->f64, inexact):
* module/language/cps/types.scm (inexact, s64->f64):
* module/language/tree-il/cps-primitives.scm (exact->inexact):
* module/language/tree-il/primitives.scm (*interesting-primitive-names*):
  (*effect-free-primitives*):
* module/system/vm/assembler.scm: Recognize exact->inexact as a
  primitive, and optimize it.  Add compiler support for new "inexact"
  and "s64->f64" primcalls.
2019-09-01 20:46:04 +02:00
..
closure-conversion.scm Enable closure elision. 2019-06-07 17:01:43 +02:00
compile-bytecode.scm Compiler allocates boxed flonums in unmarked space 2019-08-26 10:19:24 +02:00
contification.scm Add support no closure in $callk 2019-06-07 17:01:43 +02:00
cse.scm Fix bug in CSE auxiliary definitions 2019-08-28 10:44:44 +02:00
dce.scm Add support no closure in $callk 2019-06-07 17:01:43 +02:00
devirtualize-integers.scm Add support no closure in $callk 2019-06-07 17:01:43 +02:00
effects-analysis.scm Optimize fixnum or s64 -> f64 conversions 2019-09-01 20:46:04 +02:00
graphs.scm Split graph utilities out of (language cps utils) 2019-08-13 12:53:10 +02:00
intmap.scm Fix intmap-intersect edge case 2019-06-11 12:56:23 +02:00
intset.scm Add nullary intmap and intset folders 2017-11-29 19:57:11 +01:00
licm.scm Rename $closure to $const-fun 2018-10-03 22:58:45 +02:00
loop-instrumentation.scm Emit instrument-loop in loops. 2018-07-29 15:47:07 +02:00
optimize.scm Add (system base optimize) module 2018-01-05 10:19:54 +01:00
peel-loops.scm Add support no closure in $callk 2019-06-07 17:01:43 +02:00
prune-top-level-scopes.scm cache-current-module, etc use immediate primcall parameters 2017-11-05 15:00:16 +01:00
reify-primitives.scm Optimize fixnum or s64 -> f64 conversions 2019-09-01 20:46:04 +02:00
renumber.scm Add support no closure in $callk 2019-06-07 17:01:43 +02:00
rotate-loops.scm Add support no closure in $callk 2019-06-07 17:01:43 +02:00
self-references.scm Add support no closure in $callk 2019-06-07 17:01:43 +02:00
simplify.scm Add support no closure in $callk 2019-06-07 17:01:43 +02:00
slot-allocation.scm Optimize fixnum or s64 -> f64 conversions 2019-09-01 20:46:04 +02:00
spec.scm Fix guild compile --to=cps / --from=cps 2017-02-23 11:37:44 +01:00
specialize-numbers.scm Optimize fixnum or s64 -> f64 conversions 2019-09-01 20:46:04 +02:00
specialize-primcalls.scm Compiler allocates boxed flonums in unmarked space 2019-08-26 10:19:24 +02:00
split-rec.scm Add compiler support for eliding closure bindings 2019-06-07 17:01:37 +02:00
type-checks.scm $branch is now a distinct CPS term type 2018-01-03 16:16:39 +01:00
type-fold.scm Optimize fixnum or s64 -> f64 conversions 2019-09-01 20:46:04 +02:00
types.scm Optimize fixnum or s64 -> f64 conversions 2019-09-01 20:46:04 +02:00
utils.scm Split graph utilities out of (language cps utils) 2019-08-13 12:53:10 +02:00
verify.scm Add support no closure in $callk 2019-06-07 17:01:43 +02:00
with-cps.scm Add missing files 2015-07-22 18:27:37 +02:00