[PATCH] [SimplifyCFG] Swap to using TargetTransformInfo for cost analysis.

Hal Finkel hfinkel at anl.gov
Tue Feb 10 09:12:13 PST 2015


----- Original Message -----
> From: "Andrea Di Biagio" <andrea.dibiagio at gmail.com>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "James Molloy" <james at jamesmolloy.co.uk>, reviews+D7506+public+d608f0951474be02 at reviews.llvm.org,
> "llvm-commits at cs.uiuc.edu for LLVM" <llvm-commits at cs.uiuc.edu>
> Sent: Tuesday, February 10, 2015 10:59:15 AM
> Subject: Re: [PATCH] [SimplifyCFG] Swap to using TargetTransformInfo for cost analysis.
> 
> Hi James, Hal
> 
> thanks for the feedback.
> 
> In that case, I'll see if I can come up with a fix to improve the
> cost
> of intrinsic calls for x86.
> On x86, the cost of cttz/ctlz would be either TCC_Basic or
> TCC_Expensive based on whether we have certain features.
> 
> @Hal: Does it mean that this patch would make the the code I added in
> CodeGenPrepare to speculate calls to cttz/ctlz redundant? I see that
> with this patch, some of the test cases in CodeGen/X86/lzcnt-tzcnt.ll
> are now optimized by SimplifyCFG. The only unoptimized cases are
> those
> where the 'then' block contains extra instructions. I guess D7507
> will
> take care of it.
> 
> Please correct me if I am wrong.

I think you're right; it should get the simple speculation case. Will it also get the cases where we clear the 'undef on zero' flag?

 -Hal

> 
> Thanks!
> Andrea
> 
> On Tue, Feb 10, 2015 at 4:27 PM, Hal Finkel <hfinkel at anl.gov> wrote:
> > ----- Original Message -----
> >> From: "James Molloy" <james at jamesmolloy.co.uk>
> >> To: reviews+D7506+public+d608f0951474be02 at reviews.llvm.org, "james
> >> molloy" <james.molloy at arm.com>, hfinkel at anl.gov,
> >> "t p northover" <t.p.northover at gmail.com>, "Andrea DiBiagio"
> >> <Andrea_DiBiagio at sn.scee.net>
> >> Cc: llvm-commits at cs.uiuc.edu
> >> Sent: Tuesday, February 10, 2015 10:22:07 AM
> >> Subject: Re: [PATCH] [SimplifyCFG] Swap to using
> >> TargetTransformInfo for cost analysis.
> >>
> >>
> >> Hi Andrea,
> >>
> >> Performance on AArch64 showed no major swings. However, it sounds
> >> to
> >> me like your TargetTransformInfo isn't behaving correctly. That's
> >> TTI's entire point, and the x86 one should surely return
> >> "TCC_Expensive" for such intrinsic calls.
> >>
> >> I see that the default TTI does return TCC_Basic for almost all
> >> intrinsics, and that is arguable behaviour. But there's no reason
> >> you shouldn't override this. In fact, it seems the right thing to
> >> do.
> >>
> >
> > I agree, x86 should override these. I'll add that we're going to
> > run into this more because we're starting to use the user-cost
> > interface for more things. The target's user-cost implementations
> > are not as well tuned as the cost interfaces used by the
> > vectorizer.
> >
> >  -Hal
> >
> >>
> >> Cheers,
> >>
> >>
> >> James
> >>
> >> On Tue Feb 10 2015 at 2:53:52 PM Andrea Di Biagio <
> >> Andrea_DiBiagio at sn.scee.net > wrote:
> >>
> >>
> >> REPOSITORY
> >> rL LLVM
> >>
> >> http://reviews.llvm.org/D7506
> >>
> >> EMAIL PREFERENCES
> >> http://reviews.llvm.org/ settings/panel/ emailpreferences/
> >>
> >>
> >>
> >> ______________________________ _________________
> >> llvm-commits mailing list
> >> llvm-commits at cs.uiuc.edu
> >> http://lists.cs.uiuc.edu/ mailman/listinfo/llvm-commits
> >>
> >
> > --
> > Hal Finkel
> > Assistant Computational Scientist
> > Leadership Computing Facility
> > Argonne National Laboratory
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list