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)
if (changed) {
/* control flow changed, some blocks may become dead */
set_irg_outs_inconsistent(irg);
set_irg_doms_inconsistent(irg);
set_irg_extblk_inconsistent(irg);
set_irg_loopinfo_inconsistent(irg);
......
......@@ -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);
}
/* 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 */
#if 0
static
......@@ -224,9 +225,16 @@ void conv_opt(ir_graph *irg)
DB((dbg, LEVEL_1, "===> Performing conversion optimization on %+F\n", irg));
edges_assure(irg);
char invalidate = 0;
do {
changed = 0;
irg_walk_graph(irg, NULL, conv_opt_walker, NULL);
local_optimize_graph(irg);
if(changed)
invalidate = 1;
} 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