================ @@ -29,6 +29,14 @@ void BPFTargetInfo::getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const { Builder.defineMacro("__bpf__"); Builder.defineMacro("__BPF__"); + + std::string CPU = getTargetOpts().CPU; + if (CPU == "probe") + Builder.defineMacro("__bpf_cpu_version__", "0"); + else if (CPU.empty() || CPU == "generic") + Builder.defineMacro("__bpf_cpu_version__", "1"); + else + Builder.defineMacro("__bpf_cpu_version__", CPU.substr(1)); ---------------- 4ast wrote:
That works and somewhat similar to other archs. Like __amdgcn_processor__. I have slight preference to use capitol case __BPF_CPU_VERSION__. Let's add all groups too: HasJmpExt = true; HasJmp32 = true; HasAlu32 = true; HasJmpExt = true; HasJmp32 = true; HasAlu32 = true; HasLdsx = !Disable_ldsx; HasMovsx = !Disable_movsx; HasBswap = !Disable_bswap; HasSdivSmod = !Disable_sdiv_smod; HasGotol = !Disable_gotol; arm does __ARM_FEATURE_xx. We can do __BPF_FEATURE_ALU32, __BPF_FEATURE_GOTOL. https://github.com/llvm/llvm-project/pull/71856 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits