projects
/
libfirm
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
133bd84
)
fix broken remove_critical_cf
author
Matthias Braun
<matze@braunis.de>
Tue, 26 Sep 2006 12:56:57 +0000
(12:56 +0000)
committer
Matthias Braun
<matze@braunis.de>
Tue, 26 Sep 2006 12:56:57 +0000
(12:56 +0000)
[r8296]
ir/ir/irgopt.c
patch
|
blob
|
history
diff --git
a/ir/ir/irgopt.c
b/ir/ir/irgopt.c
index
8223112
..
1c07a6a
100644
(file)
--- a/
ir/ir/irgopt.c
+++ b/
ir/ir/irgopt.c
@@
-2069,27
+2069,28
@@
void place_code(ir_graph *irg) {
*/
static void walk_critical_cf_edges(ir_node *n, void *env) {
int arity, i;
*/
static void walk_critical_cf_edges(ir_node *n, void *env) {
int arity, i;
- ir_node *pre, *
cfop, *
block, *jmp;
+ ir_node *pre, *block, *jmp;
int *changed = env;
int *changed = env;
+ ir_graph *irg = get_irn_irg(n);
/* Block has multiple predecessors */
arity = get_irn_arity(n);
if (arity > 1) {
/* Block has multiple predecessors */
arity = get_irn_arity(n);
if (arity > 1) {
- if (n == get_irg_end_block(
current_ir_graph
))
+ if (n == get_irg_end_block(
irg
))
return; /* No use to add a block here. */
for (i = 0; i < arity; ++i) {
return; /* No use to add a block here. */
for (i = 0; i < arity; ++i) {
+ const ir_op *cfop;
+
pre = get_irn_n(n, i);
pre = get_irn_n(n, i);
- cfop =
skip_Proj(pre
);
+ cfop =
get_irn_op(skip_Proj(pre)
);
/* Predecessor has multiple successors. Insert new control flow edge but
ignore exception edges. */
/* Predecessor has multiple successors. Insert new control flow edge but
ignore exception edges. */
- if (! is_
fragile_op
(cfop) && is_op_forking(cfop)) {
+ if (! is_
op_fragile
(cfop) && is_op_forking(cfop)) {
/* set predecessor of new block */
/* set predecessor of new block */
- block = new_
Block(
1, &pre);
+ block = new_
r_Block(irg,
1, &pre);
/* insert new jmp node to new block */
/* insert new jmp node to new block */
- set_cur_block(block);
- jmp = new_Jmp();
- set_cur_block(n);
+ jmp = new_r_Jmp(irg, block);
/* set successor of new block */
set_irn_n(n, i, jmp);
*changed = 1;
/* set successor of new block */
set_irn_n(n, i, jmp);
*changed = 1;