erichkeane 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; ---------------- 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. 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