projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
methods need no offset
[libfirm]
/
ir
/
opt
/
ifconv.c
diff --git
a/ir/opt/ifconv.c
b/ir/opt/ifconv.c
index
b5c453e
..
0d1307a
100644
(file)
--- a/
ir/opt/ifconv.c
+++ b/
ir/opt/ifconv.c
@@
-348,6
+348,7
@@
restart:
cond, projx0, projx1
));
cond, projx0, projx1
));
+ /* remove critical edges */
env->changed = true;
prepare_path(block, i, dependency);
prepare_path(block, j, dependency);
env->changed = true;
prepare_path(block, i, dependency);
prepare_path(block, j, dependency);
@@
-355,7
+356,7
@@
restart:
mux_block = get_nodes_block(cond);
cond_dbg = get_irn_dbg_info(cond);
mux_block = get_nodes_block(cond);
cond_dbg = get_irn_dbg_info(cond);
- do {
+ do {
/* generate Mux nodes in mux_block for Phis in block */
ir_node* val_i = get_irn_n(phi, i);
ir_node* val_j = get_irn_n(phi, j);
ir_node* mux;
ir_node* val_i = get_irn_n(phi, i);
ir_node* val_j = get_irn_n(phi, j);
ir_node* mux;
@@
-393,6
+394,7
@@
restart:
phi = next_phi;
} while (phi != NULL);
phi = next_phi;
} while (phi != NULL);
+ /* move mux operands into mux_block */
exchange(get_nodes_block(get_irn_n(block, i)), mux_block);
exchange(get_nodes_block(get_irn_n(block, j)), mux_block);
exchange(get_nodes_block(get_irn_n(block, i)), mux_block);
exchange(get_nodes_block(get_irn_n(block, j)), mux_block);