Commit 9392ddab authored by Rhys Perry's avatar Rhys Perry Committed by Marge Bot
Browse files

aco: consider blocks unreachable if they are in the logical cfg



unreachable was true if the last block is unreachable in the linear cfg,
but it should also be true if it is unreachable in the logical cfg.

Fixes dEQP-VK.graphicsfuzz.for-with-ifs-and-return

Signed-off-by: Rhys Perry's avatarRhys Perry <pendingchaos02@gmail.com>
Fixes: 8d8c864b


    ('aco: improve check for unreachable loop continue blocks')

Reviewed-by: Daniel Schürmann's avatarDaniel Schürmann <daniel@schuermann.dev>
Part-of: <!4764>
parent 98675d34
Pipeline #139662 passed with stages
in 16 minutes and 59 seconds
......@@ -12,7 +12,6 @@ dEQP-VK.glsl.builtin.precision.asin.highp.vec4
dEQP-VK.info.device_extensions
# ACO specific issues.
dEQP-VK.graphicsfuzz.for-with-ifs-and-return
dEQP-VK.graphicsfuzz.loops-ifs-continues-call
# Interesting failures...
......
......@@ -10,5 +10,4 @@ dEQP-VK.info.device_extensions
# ACO specific issues.
dEQP-VK.transform_feedback.simple.multistreams_1
dEQP-VK.transform_feedback.simple.multistreams_3
dEQP-VK.graphicsfuzz.for-with-ifs-and-return
dEQP-VK.graphicsfuzz.loops-ifs-continues-call
......@@ -8,5 +8,4 @@ dEQP-VK.glsl.builtin.precision.asin.highp.vec4
dEQP-VK.info.device_extensions
# ACO specific issues.
dEQP-VK.graphicsfuzz.for-with-ifs-and-return
dEQP-VK.graphicsfuzz.loops-ifs-continues-call
......@@ -12,5 +12,4 @@ dEQP-VK.glsl.builtin.precision.asin.highp.vec4
dEQP-VK.info.device_extensions
# ACO specific issues.
dEQP-VK.graphicsfuzz.for-with-ifs-and-return
dEQP-VK.graphicsfuzz.loops-ifs-continues-call
......@@ -10,5 +10,4 @@ dEQP-VK.info.device_extensions
# ACO specific issues.
dEQP-VK.transform_feedback.simple.multistreams_1
dEQP-VK.transform_feedback.simple.multistreams_3
dEQP-VK.graphicsfuzz.for-with-ifs-and-return
dEQP-VK.graphicsfuzz.loops-ifs-continues-call
......@@ -9552,8 +9552,6 @@ static bool visit_if(isel_context *ctx, nir_if *if_stmt)
visit_cf_list(ctx, &if_stmt->else_list);
end_uniform_if(ctx, &ic);
return !ctx->cf_info.has_branch;
} else { /* non-uniform condition */
/**
* To maintain a logical and linear CFG without critical edges,
......@@ -9587,9 +9585,9 @@ static bool visit_if(isel_context *ctx, nir_if *if_stmt)
visit_cf_list(ctx, &if_stmt->else_list);
end_divergent_if(ctx, &ic);
return true;
}
return !ctx->cf_info.has_branch && !ctx->block->logical_preds.empty();
}
static bool visit_cf_list(isel_context *ctx,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment