X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fcritical_edges.c;h=b82f3a7ac1f141f88e1115d783bc51f0ae738143;hb=385ddac36f7a75be7bdc725ba6935a2ca6d797d9;hp=cae145c3d900b6380a4774a811a75ec04307b552;hpb=e1397b01aceb38b6bb62c319007146af3b922f39;p=libfirm diff --git a/ir/opt/critical_edges.c b/ir/opt/critical_edges.c index cae145c3d..b82f3a7ac 100644 --- a/ir/opt/critical_edges.c +++ b/ir/opt/critical_edges.c @@ -46,10 +46,11 @@ typedef struct cf_env { * @param n IR node * @param env Environment of walker. */ -static void walk_critical_cf_edges(ir_node *n, void *env) { +static void walk_critical_cf_edges(ir_node *n, void *env) +{ int arity, i; ir_node *pre, *block, *jmp; - cf_env *cenv = env; + cf_env *cenv = (cf_env*)env; ir_graph *irg = get_irn_irg(n); /* Block has multiple predecessors */ @@ -72,7 +73,7 @@ static void walk_critical_cf_edges(ir_node *n, void *env) { continue; goto insert; } - if (is_IJmp(pre)) { + if (is_unknown_jump(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"); @@ -94,7 +95,8 @@ insert: } /* n is a multi-entry block */ } -void remove_critical_cf_edges_ex(ir_graph *irg, int ignore_exception_edges) { +void remove_critical_cf_edges_ex(ir_graph *irg, int ignore_exception_edges) +{ cf_env env; env.ignore_exc_edges = (char)ignore_exception_edges; @@ -110,6 +112,7 @@ void remove_critical_cf_edges_ex(ir_graph *irg, int ignore_exception_edges) { } } -void remove_critical_cf_edges(ir_graph *irg) { +void remove_critical_cf_edges(ir_graph *irg) +{ remove_critical_cf_edges_ex(irg, 1); }