craig.topper added inline comments.

================
Comment at: clang/lib/CodeGen/CodeGenModule.cpp:1752
   StringRef TargetCPU = getTarget().getTargetOpts().CPU;
+  StringRef TuneCPU = getTarget().getTargetOpts().TuneCPU;
   std::vector<std::string> Features;
----------------
erichkeane wrote:
> craig.topper wrote:
> > erichkeane wrote:
> > > Does this lead to a situation in 'attribute-target' where we have a 
> > > 'tune' setting to a processor that is 'before' the 'TargetCPU'?  Should 
> > > this enforce some sort of hierarchy to make sure we only do it if it is 
> > > 'newer' (read, more feature rich) than the target?
> > TuneCPU is only supposed to control microarchitectural things like should i 
> > prefer an "ADD 1" over "INC" instruction. Or should I use more immediate 
> > controlled shuffles over a single variable controlled shuffle. As such that 
> > things we get from tune don't have a straightforward relationship with 
> > architectural features.
> My concern is more.  Say:
> 
> TargetCPU == "nahalem"
> 
> Does it make sense for 
> TuneCPU == "pentium"?
> 
> It would seem to me that is pretty nonsensical.  I've definitely seen the 
> reverse (in within x86_64 at least, where Tune is newer than Target), but 
> tuning for an older CPU seems like nonsense.
From a behavior standpoint, its not any different than what this does today

-march=pentium -msse4.2 -mpopcnt -mfxsr <other nehalem features>


I don't think gcc enforces any ordering.  



CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D85384/new/

https://reviews.llvm.org/D85384

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to