[PATCH] D121978: [X86] Rename FeatureCMPXCHG8B/FeatureCMPXCHG16B to FeatureCX8/CX16 to match CPUID.
    Kan Shengchen via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Mar 18 01:21:00 PDT 2022
    
    
  
skan added inline comments.
================
Comment at: llvm/lib/Target/X86/X86Subtarget.h:717-719
+    // CX16 is just the CPUID bit, the instruction also requires 64-bit mode.
+    return HasCX16 && is64Bit();
+  }
----------------
craig.topper wrote:
> skan wrote:
> > I have a little concern about the name:
> > 1.  `CMPXCHG16B`<-> `CX16` One use abbreviation but the other not, a little confusing
> > 2.  `useCMPXCHG16B` is not so reasonable, the function is used to check if we //could// use CX16
> > 
> > I'm afraid adding `useCMPXCHG16B` would make `hasCX16` useless.
> I should probably use hasCX16() in useCMPXCHG16B() instead of HasCX16. That would match with is64Bit().
> 
> useCMPXCHG16B name is kind of like the existing UseSSE and UseAVX predicates. Would canUseCMPXCHG16B or canUseCX16 be better?
> 
> Ultimately my goal is to get rid of the concept of a non-trivial feature from the other patch. The Subtarget interface is bad right now, and it’s mostly that way because naming things is hard.
> 
> I’m a little tempted to remove useCMPXCHG16B and just put the is64Bit check at the callers.
> I should probably use hasCX16() in useCMPXCHG16B() instead of HasCX16. That would match with is64Bit().
> 
> useCMPXCHG16B name is kind of like the existing UseSSE and UseAVX predicates. Would canUseCMPXCHG16B or canUseCX16 be better?
> 
Okay, then `UseCX16` makes sense for me.
> Ultimately my goal is to get rid of the concept of a non-trivial feature from the other patch. The Subtarget interface is bad right now, and it’s mostly that way because naming things is hard.
> 
This method can not get rid of non-trivial feature like `useAA`, which has an virtual interface.  I think non-trivial feature brings the flexibility, which gives the developer chance to hack the code quickly and see the difference, so it's important.
> I’m a little tempted to remove useCMPXCHG16B and just put the is64Bit check at the callers.
This brings burdon to the user, which is worrying.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D121978/new/
https://reviews.llvm.org/D121978
    
    
More information about the llvm-commits
mailing list