On Mon, Feb 01, 2021 at 12:54:50PM -0700, Jeff Law wrote:
> >>> So I see no difference for stage2-gcc/*.o dse1/dse2 with/without the
> >>> patch but counts are _extremely_ small.  Statistics:
> >>>
> >>>   70148 dse: local deletions = 0, global deletions = 0
> >>>      32 dse: local deletions = 0, global deletions = 1
> >>>       9 dse: local deletions = 0, global deletions = 2
> >>>       7 dse: local deletions = 0, global deletions = 3
> >>>       2 dse: local deletions = 0, global deletions = 4
> >>>       2 dse: local deletions = 0, global deletions = 5
> >>>       3 dse: local deletions = 0, global deletions = 7
> >>>      67 dse: local deletions = 1, global deletions = 0
> >>>       1 dse: local deletions = 1, global deletions = 2
> >>>      12 dse: local deletions = 2, global deletions = 0
> >>>       1 dse: local deletions = 24, global deletions = 1
> >>>       2 dse: local deletions = 3, global deletions = 0
> >>>       4 dse: local deletions = 4, global deletions = 0
> >>>       4 dse: local deletions = 6, global deletions = 0
> >>>       1 dse: local deletions = 7, global deletions = 0
> >>>       1 dse: local deletions = 8, global deletions = 0
> >>>
> >>> so not sure how much confidence this brings over the analytical
> >>> reasoning that it shouldn't make a difference ...
> >>>
> >>> stats on just dse2 are even more depressing (given it's cost)
> >>>
> >>>   35123 dse: local deletions = 0, global deletions = 0
> >>>       2 dse: local deletions = 0, global deletions = 1
> >>>      20 dse: local deletions = 1, global deletions = 0
> >>>       1 dse: local deletions = 2, global deletions = 0
> >>>       1 dse: local deletions = 3, global deletions = 0
> >>>       1 dse: local deletions = 4, global deletions = 0
> >> Based on that, I'd argue that DSE2 should go away and DSE1 should be
> >> evaluated for the chopping block.  While RTL DSE was marginally
> >> important in 1999 when it was first submitted, the tree-ssa pipeline as
> >> a whole has probably made RTL DSE largely pointless.
> > True. Though I'd argue that DSE2 might be the conceptually more useful pass 
> > since it sees spill slots. 
> True in concept, but I bet that the SSA pipeline has made this much less
> common in RTL DSE than it was 20+ years ago.  Our allocator and reloader
> are much improved as well which would further decrease the number of
> opportunities.
> 
> I'd hazard a guess that what's left are locals that need to be
> addressable and some optimization in the RTL pipeline exposed a dead
> store that wasn't otherwise visible in the SSA pipeline.  BUt the only
> way to be sure would be to dig into them.

Shouldn't we gather statistics from larger codebase first and perhaps
compare against tree-ssa-dse statistics?  I mean, in many functions there
are no DSE opportunities at all.

        Jakub

Reply via email to