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

Andrea Di Biagio andrea.dibiagio at gmail.com
Tue Feb 10 08:59:15 PST 2015


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.

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




More information about the llvm-commits mailing list