1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-07-13 04:30:29 +02:00
guile/module/language/cps
Andy Wingo a6b5049aa8 Emit instrument-loop in loops.
* am/bootstrap.am (SOURCES):
* module/Makefile.am (SOURCES): Handle renamve of handle-interrupts.scm
  to loop-instrumentation.scm.
* libguile/jit.h (SCM_JIT_COUNTER_ENTRY_INCREMENT): Rename from
  SCM_JIT_COUNTER_CALL_INCREMENT.
* libguile/vm-engine.c (instrument-entry): Rename from instrument-call.
* module/language/cps/compile-bytecode.scm (compile-function): Add
  handle-interrupts code before calls and returns.  Compile the
  "instrument-loop" primcall to an "instrument-loop" instruction and a
  "handle-interrupts" instruction.
  (lower-cps): Adapt to add-loop-instrumentation name change.
* module/language/cps/loop-instrumentation.scm: Rename from
  handle-interrupts.scm and just add "instrument-loop" primcalls in
  loops.  The compiler will add handle-interrupts primcalls as
  appropriate.
* module/system/vm/assembler.scm (<jit-data>): New data type, for
  emitting embedded JIT data.
  (<meta>): Add field for current JIT data.
  (make-meta): Initialize current JIT data.
  (emit-instrument-entry*, emit-instrument-loop*): New instruction
  emitters that reference the current JIT data.
  (end-program): Now that all labels are known, arrange to serialize the
  JIT data.
  (link-data): Reserve space for JIT data, and add relocs to initialize
  the "start" / "end" fields.
2018-07-29 15:47:07 +02:00
..
closure-conversion.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
compile-bytecode.scm Emit instrument-loop in loops. 2018-07-29 15:47:07 +02:00
contification.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
cse.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
dce.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
devirtualize-integers.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
effects-analysis.scm Compile "define!" via intrinsic 2018-05-14 15:15:22 +02:00
intmap.scm Add nullary intmap and intset folders 2017-11-29 19:57:11 +01:00
intset.scm Add nullary intmap and intset folders 2017-11-29 19:57:11 +01:00
licm.scm Add $code CPS expression type 2018-04-10 17:06:27 +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 $code CPS expression type 2018-04-10 17:06:27 +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 Compile current-module as intrinsic call 2018-06-27 14:57:51 +02:00
renumber.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
rotate-loops.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
self-references.scm $throw is a new kind of CPS term 2018-01-03 21:25:55 +01:00
simplify.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
slot-allocation.scm Multiple-value returns now start from slot 0, not slot 1 2018-07-20 11:42:30 +02:00
spec.scm Fix guild compile --to=cps / --from=cps 2017-02-23 11:37:44 +01:00
specialize-numbers.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
specialize-primcalls.scm Add VM ops needed for string-ref 2018-04-08 21:26:46 +02:00
split-rec.scm $throw is a new kind of CPS term 2018-01-03 21:25:55 +01:00
type-checks.scm $branch is now a distinct CPS term type 2018-01-03 16:16:39 +01:00
type-fold.scm CPS type analysis support for mutable vs immutable vectors 2018-01-07 17:37:06 +01:00
types.scm Explode atomic box ops to new atomic instructions 2018-04-13 10:09:56 +02:00
utils.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
verify.scm Add $code CPS expression type 2018-04-10 17:06:27 +02:00
with-cps.scm Add missing files 2015-07-22 18:27:37 +02:00