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