Re: [PATCH 2/2] perf annotate: Add fusion logic for AMD microarchs
From: Ravi Bangoria
Date: Fri Sep 10 2021 - 07:17:56 EST
>> +static bool x86__ins_is_fused(struct arch *arch, const char *ins1,
>> + const char *ins2)
>> +{
>> + if (strstarts(arch->vendor, "AuthenticAMD"))
>> + return amd__ins_is_fused(arch, ins1, ins2);
>> +
>> + return intel__ins_is_fused(arch, ins1, ins2);
>> +}
>> +
>
> Can we instead make x86__ins_is_fused be a pointer and instead of
> storing arch->vendor we set it to one of amd__ins_is_fused() or
> intel__ins_is_fused()?
>
> I.e. here:
>
>> static int x86__cpuid_parse(struct arch *arch, char *cpuid)
>> {
>> unsigned int family, model, stepping;
>> @@ -184,6 +216,9 @@ static int x86__cpuid_parse(struct arch *arch, char *cpuid)
>> if (ret == 3) {
>> arch->family = family;
>> arch->model = model;
>> + arch->vendor = strndup(cpuid, 12);
>
> x86__ins_is_fused = strstarts(cpuid, "AuthenticAMD") ?
> amd__ins_is_fused :
> intel__ins_is_fused;
Sure. Will post v2.
Thanks for the review Arnaldo,
Ravi