https://github.com/xlauko updated https://github.com/llvm/llvm-project/pull/220892
>From c10c08298af745321fde4a70582a08f83a0fdaae Mon Sep 17 00:00:00 2001 From: Henrich Lauko <[email protected]> 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@+2{{failed to parse CIR_InlineKindAttr parameter 'value' which is to be a `::cir::InlineKind`}} - // expected-error@below{{expected one of [no_inline, always_inline, inline_hint] for inlineKind}} - cir.call @f16() { inline_kind = #cir.inline_kind<nonsense> } : () -> () + // expected-error@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() _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
