On Thu, Aug 3, 2023 at 5:12 PM Aldy Hernandez <al...@redhat.com> wrote: > > > > On 8/3/23 16:29, Jeff Law wrote: > > > > > > On 8/3/23 08:23, Jan Hubicka wrote: > >>>> Jeff, an help would be appreciated here :) > >>>> > >>>> I will try to debug this. One option would be to disable branch > >>>> prediciton on vect_check for time being - it is not inlined anyway > >>> Not a lot of insight. The backwards threader uses a totally > >>> different API > >>> for the CFG/SSA updates and that API I don't think has made any > >>> significant > >>> effort to keep the profile up-to-date. > >> > >> OK, at least some hints where the missing profile updat should be, would > >> be good. There is update_profile in tree-ssa-threadupdate and > >> understaning what is missing would be nice > >> In general it would be nice to mind profile when updating CFG :) > > THe backwards threader doesn't use much of the code in > > tree-ssa-threadupdate IIRC. The bulk of the work for the backwards > > threader is done by copy_bbs. I've actually suggested those two > > implementations be totally separated from each other to avoid confusion. > > I just haven't had the time to do it (or much of anything with > > threading) myself. > > A couple cycles ago I separated most of code to distinguish between the > back and forward threaders. There is class jt_path_registry that is > common to both, and {fwd,back}_jt_path_registry for the forward and > backward threaders respectively. It's not perfect, but it's a start.
Yep, it's back_jt_path_registry::update_cfg / duplicate_thread_path that lacks the updates. Richard. > Aldy >