diff options
author | Andy Wingo <wingo@pobox.com> | 2015-11-12 21:16:33 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2015-11-12 21:22:19 +0100 |
commit | 3e5d4131d2b8eecf72568bc94d626a7cdced7f5b (patch) | |
tree | 37d623419abba42239df7230a3410f9d2f2bf2d5 /libguile/frames.c | |
parent | 92ed7f69894316247e78c29b953bb59b5c3953d7 (diff) | |
download | guile-3e5d4131d2b8eecf72568bc94d626a7cdced7f5b.tar.gz |
Don't compile equal? to br-if-equal
* module/language/cps/compile-bytecode.scm (compile-function):
* module/language/cps/primitives.scm (*branching-primcall-arities*):
* module/language/cps/type-fold.scm (equal?):
* module/language/cps/types.scm (equal?):
* module/language/tree-il/compile-cps.scm (convert): `equal?' is no
longer a branching primcall, because it isn't inline. The
implementation could lead to bad backtraces also, as it didn't save
the IP, and actually could lead to segfaults as it didn't reload the
SP after the return. There is an eqv? fast-path, though.
* module/system/vm/assembler.scm (br-if-equal): Remove interface.
* module/system/vm/disassembler.scm (code-annotation):
(compute-labels): No need to handle br-if-equal.
Diffstat (limited to 'libguile/frames.c')
0 files changed, 0 insertions, 0 deletions