On 07/13/2015 01:47 AM, Richard Biener wrote:
The path duplication to expose redundancies is one of the things I'd like to
get out of a Bodik-esque scheme. One of the things Bodik's work does is
identify the minimal set of blocks that need to be copied to expose each path
specific redundancy that it finds.
I see - so this could be then also used to compute a better idea of
a cost to duplicate such a path then? That is, you don't commit
to creating all of those paths.
Correct.
The identification step with Bodik is a backwards substitution with a
form of GVN to capture a secondary effect. Once the redundancies are
identified, you run a totally separate analysis to identify the minimal
region of blocks that need to be copied to expose the redundancy. Then
you can look at the size of those regions vs the redundancy and make a
decision about the cost/benefit.
So are you fine with the idea (or even implementation) of the patch
to go forward with moving fold_{widening,sign_change}_comparison to
match.pd?
Yes -- I'm pretty sure we can fix the immediate issue of the
missed-optimization in the threader without major surgery.
jeff