[llvm-branch-commits] [clang] [CIR] Drop the redundant suffix from the inline kind mnemonic (PR #220892)
Henrich Lauko via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Sep 3 12:47:26 PDT 2026
https://github.com/xlauko updated https://github.com/llvm/llvm-project/pull/220892
>From 978cf2c6f20340a198bfb9aa53a946f24f7e4ad5 Mon Sep 17 00:00:00 2001
From: Henrich Lauko <hlauko at nvidia.com>
Date: Thu, 3 Sep 2026 12:44:31 +0000
Subject: [PATCH] [CIR] Drop the redundant suffix from the inline kind mnemonic
inline_kind was the one CIR enum attribute mnemonic still repeating what its
C++ enum class name says. The attribute now spells
`#cir.inline<always_inline>`. The operation argument keeps the name
inline_kind, since that is the accessor name, so the printed form reads
`inline_kind = #cir.inline<always_inline>`.
The enum's summary also becomes "inline kind" rather than the camelCase
"inlineKind", which is what generated docs show now that CIR_InlineKindAttr
no longer overrides it.
25 CHECK lines change across four test files. Nine are in an
aarch64-registered-target test, unsupported in an X86-only build, but the
substitution matches the two CIR tests that do run.
---
clang/include/clang/CIR/Dialect/IR/CIRAttrs.td | 5 ++---
.../CIR/CodeGen/callsite-inline-attributes.cpp | 18 +++++++++---------
clang/test/CIR/IR/inline-attrs.cir | 12 ++++++------
clang/test/CIR/IR/invalid-call.cir | 4 ++--
.../sme-inline-callees-streaming-attrs.c | 18 +++++++++---------
5 files changed, 28 insertions(+), 29 deletions(-)
diff --git a/clang/include/clang/CIR/Dialect/IR/CIRAttrs.td b/clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
index 8ff2c1ac4402f..c87748c523920 100644
--- a/clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+++ b/clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
@@ -1675,14 +1675,13 @@ def CIR_TypeInfoAttr : CIR_ValueLikeAttr<"TypeInfo", "typeinfo"> {
// InlineKindAttr
//===----------------------------------------------------------------------===//
-def CIR_InlineKind : CIR_I32Enum<"InlineKind", "inlineKind", [
+def CIR_InlineKind : CIR_I32Enum<"InlineKind", "inline kind", [
I32EnumAttrCase<"NoInline", 1, "no_inline">,
I32EnumAttrCase<"AlwaysInline", 2, "always_inline">,
I32EnumAttrCase<"InlineHint", 3, "inline_hint">
]>;
-def CIR_InlineKindAttr: CIR_EnumAttr<CIR_InlineKind, "inline_kind"> {
- let summary = "Inline kind attribute";
+def CIR_InlineKindAttr: CIR_EnumAttr<CIR_InlineKind, "inline"> {
let description = [{ Inline Kind attributes. `no_inline` and `always_inline`
spellings correspond to the attributes of the same name, and `inline_hint`
is the `inline` keyword in the language.}];
diff --git a/clang/test/CIR/CodeGen/callsite-inline-attributes.cpp b/clang/test/CIR/CodeGen/callsite-inline-attributes.cpp
index d9916e725ca50..272645461ed81 100644
--- a/clang/test/CIR/CodeGen/callsite-inline-attributes.cpp
+++ b/clang/test/CIR/CodeGen/callsite-inline-attributes.cpp
@@ -14,39 +14,39 @@ void caller() {
[[clang::always_inline]]
callee();
- // CIR: cir.call @_Z6calleev() {inline_kind = #cir.inline_kind<always_inline>}
+ // CIR: cir.call @_Z6calleev() {inline_kind = #cir.inline<always_inline>}
// LLVM: call void @_Z6calleev() #[[ALWAYSINLINE:.*]]
[[clang::noinline]]
callee();
- // CIR: cir.call @_Z6calleev() {inline_kind = #cir.inline_kind<no_inline>}
+ // CIR: cir.call @_Z6calleev() {inline_kind = #cir.inline<no_inline>}
// LLVM: call void @_Z6calleev() #[[NOINLINE:.*]]
[[clang::always_inline]]
fptr();
- // CIR: cir.call %{{.*}}() {inline_kind = #cir.inline_kind<always_inline>}
+ // CIR: cir.call %{{.*}}() {inline_kind = #cir.inline<always_inline>}
// LLVM: call void %{{.*}}() #[[ALWAYSINLINE]]
[[clang::noinline]]
fptr();
- // CIR: cir.call %{{.*}}() {inline_kind = #cir.inline_kind<no_inline>}
+ // CIR: cir.call %{{.*}}() {inline_kind = #cir.inline<no_inline>}
// LLVM: call void %{{.*}}() #[[NOINLINE]]
[[clang::always_inline]]
{
callee();
- // CIR: cir.call @_Z6calleev() {inline_kind = #cir.inline_kind<always_inline>}
+ // CIR: cir.call @_Z6calleev() {inline_kind = #cir.inline<always_inline>}
// LLVM: call void @_Z6calleev() #[[ALWAYSINLINE]]
fptr();
- // CIR: cir.call %{{.*}}() {inline_kind = #cir.inline_kind<always_inline>}
+ // CIR: cir.call %{{.*}}() {inline_kind = #cir.inline<always_inline>}
// LLVM: call void %{{.*}}() #[[ALWAYSINLINE]]
}
[[clang::noinline]]
{
callee();
- // CIR: cir.call @_Z6calleev() {inline_kind = #cir.inline_kind<no_inline>}
+ // CIR: cir.call @_Z6calleev() {inline_kind = #cir.inline<no_inline>}
// LLVM: call void @_Z6calleev() #[[NOINLINE]]
fptr();
- // CIR: cir.call %{{.*}}() {inline_kind = #cir.inline_kind<no_inline>}
+ // CIR: cir.call %{{.*}}() {inline_kind = #cir.inline<no_inline>}
// LLVM: call void %{{.*}}() #[[NOINLINE]]
}
@@ -54,7 +54,7 @@ void caller() {
{
[[clang::always_inline]]
callee();
- // CIR: cir.call @_Z6calleev() {inline_kind = #cir.inline_kind<always_inline>}
+ // CIR: cir.call @_Z6calleev() {inline_kind = #cir.inline<always_inline>}
// LLVM: call void @_Z6calleev() #[[ALWAYSINLINE]]
}
}
diff --git a/clang/test/CIR/IR/inline-attrs.cir b/clang/test/CIR/IR/inline-attrs.cir
index 5a09432532927..2e6bd83b8c727 100644
--- a/clang/test/CIR/IR/inline-attrs.cir
+++ b/clang/test/CIR/IR/inline-attrs.cir
@@ -40,12 +40,12 @@ module {
cir.func private @callee()
// // CHECK-LABEL: cir.func no_inline dso_local @caller()
cir.func no_inline dso_local @caller() {
- cir.call @callee() {inline_kind = #cir.inline_kind<always_inline>} : () -> ()
- // CHECK: cir.call @callee() {inline_kind = #cir.inline_kind<always_inline>} : () -> ()
- cir.call @callee() {inline_kind = #cir.inline_kind<no_inline>} : () -> ()
- // CHECK: cir.call @callee() {inline_kind = #cir.inline_kind<no_inline>} : () -> ()
- cir.call @callee() {inline_kind = #cir.inline_kind<inline_hint>} : () -> ()
- // CHECK: cir.call @callee() {inline_kind = #cir.inline_kind<inline_hint>} : () -> ()
+ cir.call @callee() {inline_kind = #cir.inline<always_inline>} : () -> ()
+ // CHECK: cir.call @callee() {inline_kind = #cir.inline<always_inline>} : () -> ()
+ cir.call @callee() {inline_kind = #cir.inline<no_inline>} : () -> ()
+ // CHECK: cir.call @callee() {inline_kind = #cir.inline<no_inline>} : () -> ()
+ cir.call @callee() {inline_kind = #cir.inline<inline_hint>} : () -> ()
+ // CHECK: cir.call @callee() {inline_kind = #cir.inline<inline_hint>} : () -> ()
cir.call @callee() {inline_kind = 2} : () -> ()
// CHECK: cir.call @callee() : () -> ()
cir.call @callee() {inline_kind = 6} : () -> ()
diff --git a/clang/test/CIR/IR/invalid-call.cir b/clang/test/CIR/IR/invalid-call.cir
index c21c32563c70f..fa01b53dd07b1 100644
--- a/clang/test/CIR/IR/invalid-call.cir
+++ b/clang/test/CIR/IR/invalid-call.cir
@@ -100,7 +100,7 @@ cir.func @f15() {
cir.func private @f16()
cir.func @f17() {
// expected-error at +2{{failed to parse CIR_InlineKindAttr parameter 'value' which is to be a `::cir::InlineKind`}}
- // expected-error at below{{expected one of [no_inline, always_inline, inline_hint] for inlineKind}}
- cir.call @f16() { inline_kind = #cir.inline_kind<nonsense> } : () -> ()
+ // expected-error at below{{expected one of [no_inline, always_inline, inline_hint] for inline kind}}
+ cir.call @f16() { inline_kind = #cir.inline<nonsense> } : () -> ()
cir.return
}
diff --git a/clang/test/CodeGen/AArch64/sme-inline-callees-streaming-attrs.c b/clang/test/CodeGen/AArch64/sme-inline-callees-streaming-attrs.c
index b7872dfad6551..dd9fa35c3333b 100644
--- a/clang/test/CodeGen/AArch64/sme-inline-callees-streaming-attrs.c
+++ b/clang/test/CodeGen/AArch64/sme-inline-callees-streaming-attrs.c
@@ -45,8 +45,8 @@ void caller(void) {
// CHECK-NEXT: call void @fn_streaming_new_zt0
// CIR-LABEL: @caller()
-// CIR: cir.call @fn() {inline_kind = #cir.inline_kind<always_inline>}
-// CIR: cir.call @fn_streaming_compatible() {inline_kind = #cir.inline_kind<always_inline>}
+// CIR: cir.call @fn() {inline_kind = #cir.inline<always_inline>}
+// CIR: cir.call @fn_streaming_compatible() {inline_kind = #cir.inline<always_inline>}
// CIR: cir.call @fn_streaming()
// CIR-NOT: inline_kind
// CIR: cir.call @fn_locally_streaming()
@@ -75,7 +75,7 @@ FN_ATTR void caller_streaming_compatible(void) __arm_streaming_compatible {
// CIR-LABEL: @caller_streaming_compatible()
// CIR: cir.call @fn()
// CIR-NOT: inline_kind
-// CIR: cir.call @fn_streaming_compatible() {inline_kind = #cir.inline_kind<always_inline>}
+// CIR: cir.call @fn_streaming_compatible() {inline_kind = #cir.inline<always_inline>}
// CIR: cir.call @fn_streaming()
// CIR-NOT: inline_kind
// CIR: cir.call @fn_locally_streaming()
@@ -104,9 +104,9 @@ FN_ATTR void caller_streaming(void) __arm_streaming {
// CIR-LABEL: @caller_streaming()
// CIR: cir.call @fn()
// CIR-NOT: inline_kind
-// CIR: cir.call @fn_streaming_compatible() {inline_kind = #cir.inline_kind<always_inline>}
-// CIR: cir.call @fn_streaming() {inline_kind = #cir.inline_kind<always_inline>}
-// CIR: cir.call @fn_locally_streaming() {inline_kind = #cir.inline_kind<always_inline>}
+// CIR: cir.call @fn_streaming_compatible() {inline_kind = #cir.inline<always_inline>}
+// CIR: cir.call @fn_streaming() {inline_kind = #cir.inline<always_inline>}
+// CIR: cir.call @fn_locally_streaming() {inline_kind = #cir.inline<always_inline>}
// CIR: cir.call @fn_streaming_new_za()
// CIR-NOT: inline_kind
// CIR: cir.call @fn_streaming_new_zt0()
@@ -132,9 +132,9 @@ void caller_locally_streaming(void) {
// CIR-LABEL: @caller_locally_streaming()
// CIR: cir.call @fn()
// CIR-NOT: inline_kind
-// CIR: cir.call @fn_streaming_compatible() {inline_kind = #cir.inline_kind<always_inline>}
-// CIR: cir.call @fn_streaming() {inline_kind = #cir.inline_kind<always_inline>}
-// CIR: cir.call @fn_locally_streaming() {inline_kind = #cir.inline_kind<always_inline>}
+// CIR: cir.call @fn_streaming_compatible() {inline_kind = #cir.inline<always_inline>}
+// CIR: cir.call @fn_streaming() {inline_kind = #cir.inline<always_inline>}
+// CIR: cir.call @fn_locally_streaming() {inline_kind = #cir.inline<always_inline>}
// CIR: cir.call @fn_streaming_new_za()
// CIR-NOT: inline_kind
// CIR: cir.call @fn_streaming_new_zt0()
More information about the llvm-branch-commits
mailing list