From a0e6bed60cc613e4d510cc5116a95efca0f95c2c Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Mon, 1 Jun 2009 09:53:40 +0000 Subject: [PATCH] add note/error message about critical edge splitting and IJmps [r26084] --- ir/opt/critical_edges.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ir/opt/critical_edges.c b/ir/opt/critical_edges.c index e839f8925..cca885a50 100644 --- a/ir/opt/critical_edges.c +++ b/ir/opt/critical_edges.c @@ -72,6 +72,12 @@ static void walk_critical_cf_edges(ir_node *n, void *env) { continue; goto insert; } + if (is_IJmp(pre)) { + /* we can't add blocks in between ijmp and its destinations + * TODO: What now, we can't split all critical edges because of this... */ + fprintf(stderr, "libfirm warning: Couldn't split all critical edges (compiler will probably fail now)\n"); + continue; + } /* we don't want place nodes in the start block, so handle it like forking */ if (is_op_forking(cfop) || cfop == op_Start) { /* Predecessor has multiple successors. Insert new control flow edge edges. */ -- 2.20.1