Commit 64ed6e02 authored by Matthias Braun's avatar Matthias Braun
Browse files

invalidate outs in condeval and convopt

[r14456]
parent d7a1deb7
...@@ -513,6 +513,7 @@ void opt_cond_eval(ir_graph* irg) ...@@ -513,6 +513,7 @@ void opt_cond_eval(ir_graph* irg)
if (changed) { if (changed) {
/* control flow changed, some blocks may become dead */ /* control flow changed, some blocks may become dead */
set_irg_outs_inconsistent(irg);
set_irg_doms_inconsistent(irg); set_irg_doms_inconsistent(irg);
set_irg_extblk_inconsistent(irg); set_irg_extblk_inconsistent(irg);
set_irg_loopinfo_inconsistent(irg); set_irg_loopinfo_inconsistent(irg);
......
...@@ -165,7 +165,8 @@ int is_downconv(ir_mode *src_mode, ir_mode *dest_mode) ...@@ -165,7 +165,8 @@ int is_downconv(ir_mode *src_mode, ir_mode *dest_mode)
get_mode_size_bits(dest_mode) < get_mode_size_bits(src_mode); get_mode_size_bits(dest_mode) < get_mode_size_bits(src_mode);
} }
/* TODO, backends can't handle and it's probably not more efficient on most /* TODO, backends (at least ia23) can't handle it at the moment,
and it's probably not more efficient on most
archs */ archs */
#if 0 #if 0
static static
...@@ -224,9 +225,16 @@ void conv_opt(ir_graph *irg) ...@@ -224,9 +225,16 @@ void conv_opt(ir_graph *irg)
DB((dbg, LEVEL_1, "===> Performing conversion optimization on %+F\n", irg)); DB((dbg, LEVEL_1, "===> Performing conversion optimization on %+F\n", irg));
edges_assure(irg); edges_assure(irg);
char invalidate = 0;
do { do {
changed = 0; changed = 0;
irg_walk_graph(irg, NULL, conv_opt_walker, NULL); irg_walk_graph(irg, NULL, conv_opt_walker, NULL);
local_optimize_graph(irg); local_optimize_graph(irg);
if(changed)
invalidate = 1;
} while (changed); } while (changed);
if(invalidate) {
set_irg_outs_inconsistent(irg);
}
} }
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment