projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Do not mark the transformed as visited. It makes no sense at all.
[libfirm]
/
ir
/
opt
/
scalar_replace.c
diff --git
a/ir/opt/scalar_replace.c
b/ir/opt/scalar_replace.c
index
b0d76ca
..
8c87f77
100644
(file)
--- a/
ir/opt/scalar_replace.c
+++ b/
ir/opt/scalar_replace.c
@@
-290,7
+290,7
@@
static void link_all_leave_sels(ir_entity *ent, ir_node *sel) {
* visited more than once causing a ring here, so we use the
* node flag to mark linked nodes
*/
* visited more than once causing a ring here, so we use the
* node flag to mark linked nodes
*/
- if (irn_visited(sel))
+ if (irn_visited
_else_mark
(sel))
return;
/* we know we are at a leave, because this function is only
return;
/* we know we are at a leave, because this function is only
@@
-299,8
+299,6
@@
static void link_all_leave_sels(ir_entity *ent, ir_node *sel) {
*/
set_irn_link(sel, get_entity_link(ent));
set_entity_link(ent, sel);
*/
set_irn_link(sel, get_entity_link(ent));
set_entity_link(ent, sel);
-
- mark_irn_visited(sel);
}
}
}
}
@@
-406,8
+404,7
@@
static path_t *find_path(ir_node *sel, unsigned len) {
if (! is_Sel(pred)) {
/* we found the root */
if (! is_Sel(pred)) {
/* we found the root */
-
- res = xmalloc(sizeof(*res) + (len - 1) * sizeof(res->path));
+ res = XMALLOCF(path_t, path, len);
res->path_len = len;
} else
res = find_path(pred, len);
res->path_len = len;
} else
res = find_path(pred, len);