[clang] [SPARC][clang] Add -m(no-)v8plus flags handling (PR #98713)

Sergei Barannikov via cfe-commits cfe-commits at lists.llvm.org
Wed Jul 31 09:34:35 PDT 2024


================
@@ -179,6 +179,13 @@ void sparc::getSparcTargetFeatures(const Driver &D, const ArgList &Args,
       Features.push_back("-hard-quad-float");
   }
 
+  if (Arg *A = Args.getLastArg(options::OPT_mv8plus, options::OPT_mno_v8plus)) {
+    if (A->getOption().matches(options::OPT_mv8plus))
----------------
s-barannikov wrote:

> In that case, would making these a no-op flag okay for now? As far as I understand it that would still be a compliant implementation, no?

AFAIK it is an ABI affecting flag, although I don't know if it changes anything except for ELF header's e_machine field compared to 32-bit V8/V9. It can't safely be ignored if we claim support for V8+. If we don't, and V8+ is otherwise compatible with 32-bit ABI, I think ignoring it and generating  instructions should be fine, probably with a warning.

> Codegen, etc. changes will happen in future patches but I can amend this one to include a placeholder `v8plus` feature bit in the backend.
> 
> What do you think about it?

I have little experience in target feature bits. It could be helpful to have a draft that adds some V8+ support to the backend and the corresponding feature bits.


https://github.com/llvm/llvm-project/pull/98713


More information about the cfe-commits mailing list