aboutsummaryrefslogtreecommitdiff
path: root/src/ssa.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-08-18 20:48:27 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-08-18 21:07:11 +0300
commit4af5176d6377958a457da3e5f671ce21540fad70 (patch)
tree04e7f2fe66e7c2e05f6a47b0c8108cf407ee6c93 /src/ssa.c
parentcdbe058f69f1db9c552e1b4a1ec5f94c12fc48a2 (diff)
downloadqbt-4af5176d6377958a457da3e5f671ce21540fad70.tar.gz
qbt-4af5176d6377958a457da3e5f671ce21540fad70.zip
add tests and fixes on top of 674438
Diffstat (limited to 'src/ssa.c')
-rw-r--r--src/ssa.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ssa.c b/src/ssa.c
index 7af342b..74ad59a 100644
--- a/src/ssa.c
+++ b/src/ssa.c
@@ -72,6 +72,9 @@ top:
}
b = vect_pop(struct blk *, stack);
+ if (done(b, visited))
+ goto top;
+
if (return_blk(b)) {
b->s1 = NULL;
b->s2 = NULL;
@@ -185,13 +188,16 @@ top:
}
b = vect_pop(struct blk *, stack);
+ if (done(b, visited))
+ goto top;
+
if (!entered(b, visited)) {
vec_append(&stack, &b);
if (b->s1)
vec_append(&stack, &b->s1);
- if (b->s2)
+ if (b->s2 && b->s2 != b->s1)
vec_append(&stack, &b->s2);
enter(b);