From: Julian Oppermann Date: Tue, 28 Jun 2011 12:10:08 +0000 (+0200) Subject: Don't combine blocks if the first one ends with a Raise. X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=bc47e313bcf032234f688e43be2e7308af537867;p=libfirm Don't combine blocks if the first one ends with a Raise. --- 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 */