summaryrefslogtreecommitdiffhomepage
path: root/ir/be
diff options
context:
space:
mode:
authorChristoph Mallon <christoph.mallon@gmx.de>2019-03-31 22:47:32 +0200
committerChristoph Mallon <christoph.mallon@gmx.de>2019-03-31 22:56:47 +0200
commit320a90c563d351304483b61d009a7ce0ef04cb6e (patch)
tree7d2b3f49338668e336b9f6699b8dcb67f80a11b6 /ir/be
parentffa49b46ceac7840e4dd7ed5a3c72837d40f661d (diff)
be: A block needs no label, if it is only reachable by fallthrough from a regular X Proj.
Diffstat (limited to 'ir/be')
-rw-r--r--ir/be/begnuas.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ir/be/begnuas.c b/ir/be/begnuas.c
index 26828d9..17f7adf 100644
--- a/ir/be/begnuas.c
+++ b/ir/be/begnuas.c
@@ -1344,6 +1344,9 @@ static bool block_needs_label(ir_node const *const block)
if (be_emit_get_prev_block(block) != cfgpred_block)
return true;
+ if (is_x_regular_Proj(cfgpred))
+ return false;
+
ir_node const *const pred = skip_Proj(cfgpred);
return !(arch_get_irn_flags(pred) & arch_irn_flag_fallthrough);
} else {