On Tue, Nov 20, 2012 at 11:20 AM, Steven Bosscher <stevenb....@gmail.com> wrote:
> On Mon, 19 Nov 2012 18:31:27 -0800, Lawrence Crowl wrote:
>
>> Richi, ping?
>
> Just guessing... isn't he simply out on Honeymoon?
>
> Those functions were introduced to handle alias sets for spill slots
> better, but IIRC this never worked properly. The whole path through
> dse_step2_spill is dead.
>
> The code was introduced on the DF-branch with this patch:
> http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00216.html. Its purpose
> was to make aliasing transparent for spill slots created by a never
> posted pre-spiller pass (i.e. spill before register allocation to
> reduce register pressure). The idea was that pre-spilled pseudos could
> be promoted back to registers, and the associated stack slots
> eliminated, if register pressure turned out to be low enough that the
> pre-spilling was unnecessary.
>
> But even on the DF-branch before the merge) this code never worked
> properly and the whole approach was abandoned, see ChangeLog.dataflow:
>
>         * dse.c (replace_inc_dec, delete_dead_store_insn, scan_insn,
>         dse_record_singleton_alias_set, dse_confluence_0,
>         dse_confluence_n, step4, step5_nospill, step5_spill,
>         rest_of_handle_dse, pass_rtl_dse1, pass_rtl_dse2): Removed code
>         to allow dse to run on trunk in front of flow.c
>         (problem): Removed.
>
>
> I would go ahead and eliminate this clear_alias_sets and all related
> code, and commit that patch as obvious (or after Diego has given it
> his blessing).

Counts as obvious.

Richard.

> In fact, the complete pass_rtl_dse2 pass may be useless now, perhaps
> that's something you could look into also, while at it?
>
> Thanks for all the C++ and other compiler long-term structural improvements!!!
>
> Ciao!
> Steven

Reply via email to