- always emit alignment also for P4
[libfirm] / ir / be / bemain.c
index 63598d3..3f30e70 100644 (file)
@@ -467,7 +467,7 @@ static void be_main_loop(FILE *file_handle, const char *asm_file_name)
                ir_graph *prof_init_irg = be_profile_instrument(prof_filename);
                initialize_birg(&birgs[num_birgs], prof_init_irg, &env);
                num_birgs++;
-               pset_insert_ptr(env.arch_env->constructor_entities, get_irg_entity(prof_init_irg));
+               set_method_img_section(get_irg_entity(prof_init_irg), section_constructors);
        }
        else {
                be_profile_read(prof_filename);
@@ -494,7 +494,14 @@ static void be_main_loop(FILE *file_handle, const char *asm_file_name)
                );
                BE_TIMER_PUSH(t_other);   /* t_other */
 
-               birg->execfreqs = compute_execfreq(irg, 10);
+               /**
+                * Create execution frequencies from profile data or estimate some
+                */
+               if(be_profile_has_data()) {
+                       birg->execfreqs = be_create_execfreqs_from_profile(irg);
+               } else {
+                       birg->execfreqs = compute_execfreq(irg, 10);
+               }
 
                BE_TIMER_ONLY(num_nodes_b = get_num_reachable_nodes(irg));