[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] branch main updated: Fix branch fusing
From: |
Andy Wingo |
Subject: |
[Guile-commits] branch main updated: Fix branch fusing |
Date: |
Mon, 02 Oct 2023 08:24:21 -0400 |
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 <wingo@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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] branch main updated: Fix branch fusing,
Andy Wingo <=