[clang] [Clang][BPF] Add __BPF_FEATURE_GOTOX (PR #165456)

via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 28 11:37:31 PDT 2025


https://github.com/yonghong-song created https://github.com/llvm/llvm-project/pull/165456

Add a macro __BPF_FEATURE_GOTOX for bpf target for cpu v4. So the developer can easily detect whether insn gotox is supported or not.

>From 9cedf756afff96c3d1141fdfc68380b6d90d1e20 Mon Sep 17 00:00:00 2001
From: Yonghong Song <yonghong.song at linux.dev>
Date: Tue, 28 Oct 2025 11:33:31 -0700
Subject: [PATCH] [Clang][BPF] Add __BPF_FEATURE_GOTOX

Add a macro __BPF_FEATURE_GOTOX for bpf target for cpu v4.
So the developer can easily detect whether insn gotox is
supported or not.
---
 clang/lib/Basic/Targets/BPF.cpp                 | 1 +
 clang/test/Preprocessor/bpf-predefined-macros.c | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/clang/lib/Basic/Targets/BPF.cpp b/clang/lib/Basic/Targets/BPF.cpp
index 0411bcca51789..8de1083d758c7 100644
--- a/clang/lib/Basic/Targets/BPF.cpp
+++ b/clang/lib/Basic/Targets/BPF.cpp
@@ -75,6 +75,7 @@ void BPFTargetInfo::getTargetDefines(const LangOptions &Opts,
     Builder.defineMacro("__BPF_FEATURE_GOTOL");
     Builder.defineMacro("__BPF_FEATURE_ST");
     Builder.defineMacro("__BPF_FEATURE_LOAD_ACQ_STORE_REL");
+    Builder.defineMacro("__BPF_FEATURE_GOTOX");
   }
 }
 
diff --git a/clang/test/Preprocessor/bpf-predefined-macros.c b/clang/test/Preprocessor/bpf-predefined-macros.c
index cd8a2ec031925..a9ae8c58c3ba7 100644
--- a/clang/test/Preprocessor/bpf-predefined-macros.c
+++ b/clang/test/Preprocessor/bpf-predefined-macros.c
@@ -70,6 +70,9 @@ int u;
 #ifdef __BPF_FEATURE_LOAD_ACQ_STORE_REL
 int v;
 #endif
+#ifdef __BPF_FEATURE_GOTOX
+int w;
+#endif
 
 // CHECK: int b;
 // CHECK: int c;
@@ -110,6 +113,7 @@ int v;
 // CPU_V4: int u;
 
 // CPU_V4: int v;
+// CPU_V4: int w;
 
 // CPU_GENERIC: int g;
 



More information about the cfe-commits mailing list