projects
/
libfirm
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
03bd4d7
)
Fix very subtle bug in if conversion which lead to incorrect results.
author
Christoph Mallon
<christoph.mallon@gmx.de>
Fri, 29 Jun 2007 17:09:36 +0000
(17:09 +0000)
committer
Christoph Mallon
<christoph.mallon@gmx.de>
Fri, 29 Jun 2007 17:09:36 +0000
(17:09 +0000)
[r14855]
ir/opt/ifconv.c
patch
|
blob
|
history
diff --git
a/ir/opt/ifconv.c
b/ir/opt/ifconv.c
index
ec6d585
..
3bde1ed
100644
(file)
--- a/
ir/opt/ifconv.c
+++ b/
ir/opt/ifconv.c
@@
-270,13
+270,13
@@
static void if_conv_walker(ir_node* block, void* env)
restart:
arity = get_irn_arity(block);
for (i = 0; i < arity; ++i) {
restart:
arity = get_irn_arity(block);
for (i = 0; i < arity; ++i) {
- ir_node* pred;
+ ir_node* pred
0
;
cdep* cdep;
cdep* cdep;
- pred = get_nodes_block(get_irn_n(block, i));
- for (cdep = find_cdep(pred); cdep != NULL; cdep = cdep->next) {
+ pred
0
= get_nodes_block(get_irn_n(block, i));
+ for (cdep = find_cdep(pred
0
); cdep != NULL; cdep = cdep->next) {
const ir_node* dependency = cdep->node;
const ir_node* dependency = cdep->node;
- ir_node* projx0 = walk_to_projx(pred, dependency);
+ ir_node* projx0 = walk_to_projx(pred
0
, dependency);
ir_node* cond;
int j;
ir_node* cond;
int j;
@@
-295,12
+295,13
@@
restart:
ir_node* psi = NULL;
ir_node* psi_block;
ir_node* phi;
ir_node* psi = NULL;
ir_node* psi_block;
ir_node* phi;
+ ir_node* pred1;
- pred = get_nodes_block(get_irn_n(block, j));
+ pred
1
= get_nodes_block(get_irn_n(block, j));
- if (!is_cdep_on(pred, dependency)) continue;
+ if (!is_cdep_on(pred
1
, dependency)) continue;
- projx1 = walk_to_projx(pred, dependency);
+ projx1 = walk_to_projx(pred
1
, dependency);
if (projx1 == NULL) continue;
if (projx1 == NULL) continue;