1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-31 17:30:24 +02:00
guile/module/language/tree-il
Andy Wingo 83023160b1 Simplify module variable lookup slow-path
* libguile/intrinsics.h:
* libguile/intrinsics.c (lookup_bound_public, lookup_bound_private): Two
new intrinsics.
(scm_bootstrap_intrinsics): Wire them up.
* libguile/jit.c (compile_call_scm_from_scmn_scmn):
(compile_call_scm_from_scmn_scmn_slow):
(COMPILE_X8_S24__N32__N32__C32): Add JIT support for new instruction
kind.
* libguile/vm-engine.c (call-scm<-scmn-scmn): New instruction, takes
arguments as non-immediate offsets, to avoid needless loads and register
pressure.
* module/language/cps/effects-analysis.scm: Add cases for new
primcalls.
* module/language/cps/compile-bytecode.scm (compile-function): Add new
primcalls.
* module/language/cps/reify-primitives.scm (cached-module-box): If the
variable is bound, call lookup-bound-public / lookup-bound-private as
appropriate instead of separately resolving the module, name, and doing
the bound check.
* module/language/tree-il/compile-bytecode.scm (emit-cached-module-box):
Use new instructions.
* module/system/vm/assembler.scm (define-scm<-scmn-scmn-intrinsic):
(lookup-bound-public, lookup-bound-private): Add assembler support.
2021-04-26 09:48:52 +02:00
..
analyze.scm New warnings: -Wuse-before-definition, -Wnon-idempotent-definition 2021-01-07 10:26:33 +01:00
compile-bytecode.scm Simplify module variable lookup slow-path 2021-04-26 09:48:52 +02:00
compile-cps.scm CPS compiler reduces eq? on constant to eq-constant? 2020-08-03 22:19:18 +02:00
cps-primitives.scm CPS compiler reduces eq? on constant to eq-constant? 2020-08-03 22:19:18 +02:00
debug.scm Add "mod" field to tree-il toplevel ref, set, define 2019-08-18 22:27:12 +02:00
effects.scm Add primitive support for working with module variables 2019-08-18 22:27:12 +02:00
eta-expand.scm Add eta-expansion pass after peval 2020-01-15 16:11:15 +01:00
fix-letrec.scm Optimize letrec* binding order in fix-letrec 2021-04-21 22:41:12 +02:00
letrectify.scm Disable eta-expansion in letrectification 2020-01-15 16:11:20 +01:00
optimize.scm Fix bug where private bindings would never be sealed 2020-05-31 22:05:41 +02:00
peval.scm Fold eqv? to eq? on exact integers according to target fixnum range 2020-08-12 23:30:08 +02:00
primitives.scm Optimize eof-object? 2021-02-03 23:02:27 +01:00
spec.scm Change -O1 compiler to use baseline and also resolve primitives 2020-06-01 21:15:39 +02:00