projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
renamed symconst_size to symconst_type_size
[libfirm]
/
ir
/
opt
/
opt_osr.c
diff --git
a/ir/opt/opt_osr.c
b/ir/opt/opt_osr.c
index
ad312eb
..
94e1570
100644
(file)
--- a/
ir/opt/opt_osr.c
+++ b/
ir/opt/opt_osr.c
@@
-38,6
+38,7
@@
#include "hashptr.h"
#include "irtools.h"
#include "array.h"
#include "hashptr.h"
#include "irtools.h"
#include "array.h"
+#include "firmstat.h"
/** The debug handle. */
DEBUG_ONLY(static firm_dbg_module_t *dbg;)
/** The debug handle. */
DEBUG_ONLY(static firm_dbg_module_t *dbg;)
@@
-362,11
+363,8
@@
static ir_node *reduce(ir_node *orig, ir_node *iv, ir_node *rc, iv_env *env) {
else if (is_Phi(result))
o = apply(orig, o, rc, env);
else {
else if (is_Phi(result))
o = apply(orig, o, rc, env);
else {
- switch (code) {
- case iro_Mul:
+ if (code == iro_Mul)
o = apply(orig, o, rc, env);
o = apply(orig, o, rc, env);
- break;
- }
}
set_irn_n(result, i, o);
}
}
set_irn_n(result, i, o);
}
@@
-395,6
+393,7
@@
static void replace(ir_node *irn, ir_node *iv, ir_node *rc, iv_env *env) {
if (result != irn) {
node_entry *e, *iv_e;
if (result != irn) {
node_entry *e, *iv_e;
+ hook_strength_red(current_ir_graph, irn);
exchange(irn, result);
e = get_irn_ne(result, env);
iv_e = get_irn_ne(iv, env);
exchange(irn, result);
e = get_irn_ne(result, env);
iv_e = get_irn_ne(iv, env);
@@
-441,6
+440,8
@@
static int check_replace(ir_node *irn, iv_env *env) {
return 1;
}
break;
return 1;
}
break;
+ default:
+ break;
}
return 0;
}
}
return 0;
}