From bc47e313bcf032234f688e43be2e7308af537867 Mon Sep 17 00:00:00 2001 From: Julian Oppermann Date: Tue, 28 Jun 2011 14:10:08 +0200 Subject: [PATCH] Don't combine blocks if the first one ends with a Raise. --- ir/opt/combo.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ir/opt/combo.c b/ir/opt/combo.c index 448d2d6b6..903f875db 100644 --- a/ir/opt/combo.c +++ b/ir/opt/combo.c @@ -2975,6 +2975,11 @@ static int can_exchange(ir_node *pred, ir_node *block) return 0; else if (is_Jmp(pred)) return 1; + else if (is_Raise(pred)) { + /* Raise is a tuple and usually has only one reachable ProjX, + * but it must not be eliminated like a Jmp */ + return 0; + } else if (get_irn_mode(pred) == mode_T) { /* if the predecessor block has more than one reachable outputs we cannot remove the block */ -- 2.20.1