This is an automated email from the git hooks/post-receive script. wingo pushed a commit to branch main in repository guile.
The following commit(s) were added to refs/heads/main by this push: new 79e836b8c Fix branch fusing 79e836b8c is described below commit 79e836b8cc601a1259c934000a953a8d739ddd6f Author: Andy Wingo <wi...@pobox.com> AuthorDate: Mon Oct 2 14:13:07 2023 +0200 Fix branch fusing * libguile/jit.c (analyze): Skip over drop and pop, if present, during the analysis phase in addition to the compile phase. --- libguile/jit.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libguile/jit.c b/libguile/jit.c index b0aa9df4c..d582893d7 100644 --- a/libguile/jit.c +++ b/libguile/jit.c @@ -5957,6 +5957,19 @@ analyze (scm_jit_state *j) case scm_op_imm_u64_less: case scm_op_s64_imm_less: case scm_op_imm_s64_less: + { + uint8_t next = j->next_ip[0] & 0xff; + if (next == scm_op_drop) + { + j->next_ip += op_lengths[next]; + next = j->next_ip[0] & 0xff; + } + if (next == scm_op_pop) + { + j->next_ip += op_lengths[next]; + next = j->next_ip[0] & 0xff; + } + } attrs |= OP_ATTR_BLOCK; fuse_conditional_branch (j, &target); j->op_attrs[target - j->start] |= attrs;