[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 257/437: Correct misplaced check for already visited blo
From: |
Andy Wingo |
Subject: |
[Guile-commits] 257/437: Correct misplaced check for already visited blocks |
Date: |
Mon, 2 Jul 2018 05:14:32 -0400 (EDT) |
wingo pushed a commit to branch lightning
in repository guile.
commit f42a251ff14e14d44f9cdb07be58cd5b1149452b
Author: pcpa <address@hidden>
Date: Tue Oct 1 13:51:01 2013 -0300
Correct misplaced check for already visited blocks
---
ChangeLog | 9 +++++++++
lib/jit_print.c | 6 +++---
lib/lightning.c | 6 +++---
3 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 60851b3..351166b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2013-10-30 Paulo Andrade <address@hidden>
+ * lib/jit_print.c: Do not crash if calling jit_print from
+ gdb before actually emitting code.
+
+ * lib/lightning.c: Correct misplaced check for already
+ visited blocks on conditional branches, what was preventing
+ proper merge live bit masks of forward blocks.
+
+2013-10-30 Paulo Andrade <address@hidden>
+
* lib/jit_x86-cpu.c: Correct not properly tested case of using
%r12 as index register, what was causing an invalid assertion.
%r12 is mapped to the "extra" JIT_R3 register, and test cases
diff --git a/lib/jit_print.c b/lib/jit_print.c
index a5cdc21..17d2559 100644
--- a/lib/jit_print.c
+++ b/lib/jit_print.c
@@ -396,14 +396,14 @@ _jit_print(jit_state_t *_jit)
continue;
case jit_code_name:
print_chr(' ');
- if (node->v.p)
+ if (node->v.p && _jitc->emit)
print_str(node->v.n->u.p);
break;
case jit_code_note:
print_chr(' ');
- if (node->v.p)
+ if (node->v.p && _jitc->emit)
print_str(node->v.n->u.p);
- if (node->v.p && node->w.w)
+ if (node->v.p && _jitc->emit && node->w.w)
print_chr(':');
if (node->w.w)
print_dec(node->w.w);
diff --git a/lib/lightning.c b/lib/lightning.c
index e6c7f4b1..635a201 100644
--- a/lib/lightning.c
+++ b/lib/lightning.c
@@ -1983,15 +1983,15 @@ _jit_update(jit_state_t *_jit, jit_node_t *node,
goto restart;
}
block = _jitc->blocks.ptr + label->v.w;
- if (bmp_tst(label->v.w))
- continue;
- bmp_set(label->v.w);
jit_regset_and(&ztmp, mask, &block->reglive);
if (jit_regset_set_p(&ztmp)) {
jit_regset_ior(live, live, &ztmp);
jit_regset_com(&ztmp, &ztmp);
jit_regset_and(mask, mask, &ztmp);
}
+ if (bmp_tst(label->v.w))
+ continue;
+ bmp_set(label->v.w);
if (jit_regset_set_p(mask) == 0)
return;
/* restore mask if branch is conditional */
- [Guile-commits] 348/437: S390: Replace s390x filenames with s390, (continued)
- [Guile-commits] 348/437: S390: Replace s390x filenames with s390, Andy Wingo, 2018/07/02
- [Guile-commits] 376/437: Correct update of on stack vararg double argument pointer, Andy Wingo, 2018/07/02
- [Guile-commits] 378/437: arm: Add initial jit_va_ calls to arm, Andy Wingo, 2018/07/02
- [Guile-commits] 387/437: alpha: Add initial jit_va_ calls to alpha, Andy Wingo, 2018/07/02
- [Guile-commits] 263/437: ARM: Correct wrong offset for load/store of floats., Andy Wingo, 2018/07/02
- [Guile-commits] 317/437: Add the new "range" test., Andy Wingo, 2018/07/02
- [Guile-commits] 174/437: Correct off by one label/note name and add align argument to jit_data, Andy Wingo, 2018/07/02
- [Guile-commits] 279/437: Implement and document the new jit_indirect call., Andy Wingo, 2018/07/02
- [Guile-commits] 143/437: Correct testcases in the mips backend., Andy Wingo, 2018/07/02
- [Guile-commits] 322/437: Add assertion to check for register allocation leaks, Andy Wingo, 2018/07/02
- [Guile-commits] 257/437: Correct misplaced check for already visited blocks,
Andy Wingo <=
- [Guile-commits] 301/437: GNU lightning 2.0.5 release, Andy Wingo, 2018/07/02
- [Guile-commits] 206/437: Correct jit implementation to pass several test cases., Andy Wingo, 2018/07/02
- [Guile-commits] 297/437: Do not filter -sz.c files in gitignore, Andy Wingo, 2018/07/02
- [Guile-commits] 255/437: IA64: Force sync of instructions in get-jit-size build mode., Andy Wingo, 2018/07/02
- [Guile-commits] 306/437: x86: Build and pass all tests under cygwin64 (Windows x64), Andy Wingo, 2018/07/02
- [Guile-commits] 352/437: Update documentation, Andy Wingo, 2018/07/02
- [Guile-commits] 357/437: Make more readable always true test, Andy Wingo, 2018/07/02
- [Guile-commits] 311/437: Implement jit_frame and jit_tramp interfaces, Andy Wingo, 2018/07/02
- [Guile-commits] 312/437: Use jit_code_last_code as symbolic name of last enum, Andy Wingo, 2018/07/02
- [Guile-commits] 293/437: Do not have assertions with a long type test, Andy Wingo, 2018/07/02