[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
Fri Sep 4 23:39:49 PDT 2026


https://github.com/xlauko updated https://github.com/llvm/llvm-project/pull/220892

>From bde2ca2a3d1863b5069c8ec96ece237cc59e6f1b 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 838d8975177fd..143c9f6dc3795 100644
--- a/clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+++ b/clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
@@ -1799,14 +1799,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