On Tue, Oct 30, 2012 at 2:33 PM, Steven Bosscher <stevenb....@gmail.com> wrote:
> On Tue, Oct 30, 2012 at 10:28 PM, Steven Bosscher wrote:
>> Hello Teresa,
>>
>> Could you try this patch for me also? It moves bbpart outside the part
>> of the passes pipeline that works in cfglayout mode.
>
> where's the "unsend" button if you need it...
>
> So, to complete the mail...
>
> Could you try this patch for me also? It moves bbpart outside the part
> of the passes pipeline that works in cfglayout mode. It looks like
> when someone (/me looks the other way) changed the compiler to work
> like that, he/she forgot about updating this pass...
>
> Instead, the pass should run just before register allocation, as late
> as possible so that any funny CFG modifications have taken place. A
> possible down-side is that profile info may have degenerated a bit
> further, but I don't think that's a serious concern because the
> partitioning is actually quite stupid: Just stuff all blocks with
> count==0 into the cold section. Updating 0-counts is easy enough that
> I think GCC should get that right everywhere.
>
> It'd be nice to figure out if there are less stupid^Wsimplistic
> heuristics to decide what should go into the cold partition, for GCC
> 4.9...
>
> Ciao!
> Steven
>
>
>         * passes.c (init_optimization_passes): Move
> pass_partition_blocks just before RA.
>
> Index: passes.c
> ===================================================================
> --- passes.c    (revision 192995)
> +++ passes.c    (working copy)
> @@ -1595,7 +1595,6 @@ init_optimization_passes (void)
>        NEXT_PASS (pass_ud_rtl_dce);
>        NEXT_PASS (pass_combine);
>        NEXT_PASS (pass_if_after_combine);
> -      NEXT_PASS (pass_partition_blocks);
>        NEXT_PASS (pass_regmove);
>        NEXT_PASS (pass_outof_cfg_layout_mode);
>        NEXT_PASS (pass_split_all_insns);
> @@ -1606,6 +1605,7 @@ init_optimization_passes (void)
>        NEXT_PASS (pass_match_asm_constraints);
>        NEXT_PASS (pass_sms);
>        NEXT_PASS (pass_sched);
> +      NEXT_PASS (pass_partition_blocks);
>        NEXT_PASS (pass_ira);
>        NEXT_PASS (pass_reload);
>        NEXT_PASS (pass_postreload);


This doesn't quite work for me. I got an error because bbpart has
PROP_cfglayout listed in its required properties. I tried removing
that, but then verify_flow_info gives an error about a missing barrier
after a bb with no fall through edges.

Teresa

-- 
Teresa Johnson | Software Engineer | tejohn...@google.com | 408-460-2413

Reply via email to