On Tue, May 31, 2016 at 11:12 PM, Jeff Law <l...@redhat.com> wrote:
> On 05/31/2016 11:38 AM, Richard Biener wrote:
>
>>> Essentially we want to limit the backwards substitution to single step
>>> within a single block for that case (which is trivially easy).  That
>>> would allow us to run a very cheap threader during early optimizations.
>>
>>
>> Just do double check - the pass does both forward and backward threading
>> and DOM/VRP now do neither themselves?
>
> Will do.  It's pretty easy.  I suspect there's a lot of low hanging fruit.
>
> The backward pass is strictly backward substitution & simplification and
> independent of DOM/VRP.  I believe we're ultimately going to want a param or
> something to determine how far back it goes in the IL.
>
> The old threader (still called from VRP/DOM) is primarily forward based
> using equivalence tables and ASSERT_EXPRs to simplify expressions as it
> walks statements in the block.
>
> I'm pretty sure everything done by the old threader can be more easily and
> efficiently modeled in the backwards threader.  One a couple infrastructure
> items are addressed, I want to start looking at cutting back on the amount
> of work done in the old threader with the goal of starting to eliminate
> calls into it completely.

Maybe to rephrase my question - DOM/VRP now do no threading anymore?
And the "backwards" threader is named "backwards" due to its implementation
and not because it only threads across backedges?

Richard.

> Jeff

Reply via email to