Do not forcefully rebuild outedges in compute_execfreq(), but handle this at the...
authorChristoph Mallon <christoph.mallon@gmx.de>
Wed, 24 Sep 2008 09:28:01 +0000 (09:28 +0000)
committerChristoph Mallon <christoph.mallon@gmx.de>
Wed, 24 Sep 2008 09:28:01 +0000 (09:28 +0000)
[r22231]

ir/ana/execfreq.c
ir/be/bemain.c

index fbf0033..37ce2d9 100644 (file)
@@ -271,11 +271,7 @@ compute_execfreq(ir_graph * irg, double loop_weight)
        irg_block_walk_graph(irg, collect_blocks, NULL, freqs);
 
        construct_cf_backedges(irg);
-       /* TODO: edges are corrupt for EDGE_KIND_BLOCK after the local optimize
-                graph phase merges blocks in the x86 backend */
-       edges_deactivate(irg);
-       edges_activate(irg);
-       /* edges_assure(irg); */
+       edges_assure(irg);
 
        size = dfs_get_n_nodes(dfs);
        mat  = gs_new_matrix(size, size);
index e41b4d9..23e0261 100644 (file)
@@ -689,8 +689,12 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
                 */
                if (ir_profile_has_data())
                        birg->exec_freq = ir_create_execfreqs_from_profile(irg);
-               else
+               else {
+                       /* TODO: edges are corrupt for EDGE_KIND_BLOCK after the local
+                        * optimize graph phase merges blocks in the x86 backend */
+                       edges_deactivate(irg);
                        birg->exec_freq = compute_execfreq(irg, 10);
+               }
                BE_TIMER_POP(t_execfreq);