1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 11:50:28 +02:00
guile/module/system
Andy Wingo c2cba86785 Better compilation of calls to raise-exception
Recognize `raise-exception` in the same way we recognize `throw`, though
it is a bit less optimized and the boot story is not as complicated.

* doc/ref/vm.texi (Non-Local Control Flow Instructions):
* libguile/jit.c (compile_unreachable):
(compile_unreachable_slow):
* libguile/vm-engine.c (VM_NAME):
* module/language/cps/compile-bytecode.scm (compile-function):
* module/system/vm/assembler.scm (emit-unreachable): Add new
"unreachable" instruction, inserted after a call to non-continuable
`raise-exception`.
* module/language/tree-il/compile-cps.scm (raise-exception):
* module/language/tree-il/primitives.scm
(*interesting-primitive-names*): Recognize raise-exception, and if it is
called with just one argument, prune that branch of the control-flow
graph.
2023-08-28 12:11:19 +02:00
..
base Add wasm32 and wasm64 CPU types 2023-08-17 14:16:12 +02:00
repl Fix typos throughout codebase. 2023-07-16 22:09:01 +02:00
vm Better compilation of calls to raise-exception 2023-08-28 12:11:19 +02:00
foreign-library.scm foreign-library: fix darwin detection 2021-09-02 08:59:57 +02:00
foreign-object.scm Add #:static-slot-allocation? 2015-02-06 13:25:17 +01:00
foreign.scm Support C99 complex types conditionally in (system foreign) 2021-12-01 18:40:19 +01:00
syntax.scm Document syntax-sourcev 2021-03-09 20:50:08 +01:00
xref.scm Remove unnecessary module imports. 2023-02-24 16:49:00 +01:00