[llvm] [FunctionAttrs] Regenerate test checks (NFC) (PR #201576)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 4 05:49:36 PDT 2026


https://github.com/nikic created https://github.com/llvm/llvm-project/pull/201576

None

>From 4c65b58877f3f98d7c21a4b86abc03a7820ac2e6 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov at redhat.com>
Date: Thu, 4 Jun 2026 14:46:21 +0200
Subject: [PATCH] [FunctionAttrs] Regenerate test checks (NFC)

---
 .../FunctionAttrs/2009-01-02-LocalStores.ll   | 40 +++++---
 llvm/test/Transforms/FunctionAttrs/nofree.ll  | 93 ++++++++++---------
 llvm/test/Transforms/FunctionAttrs/optnone.ll | 22 ++---
 .../out-of-bounds-iterator-bug.ll             | 43 +++++++--
 4 files changed, 125 insertions(+), 73 deletions(-)

diff --git a/llvm/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll b/llvm/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll
index a3b065667702f..7bbd95282fa3f 100644
--- a/llvm/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll
+++ b/llvm/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll
@@ -1,23 +1,39 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
 ; RUN: opt < %s -passes=function-attrs -S | FileCheck %s
 
-; CHECK: define ptr @a(ptr readonly captures(none) %p)
 define ptr @a(ptr %p) {
-	%tmp = load ptr, ptr %p
-	ret ptr %tmp
+; CHECK-LABEL: define ptr @a(
+; CHECK-SAME: ptr readonly captures(none) [[P:%.*]]) #[[ATTR0:[0-9]+]] {
+; CHECK-NEXT:    [[TMP:%.*]] = load ptr, ptr [[P]], align 8
+; CHECK-NEXT:    ret ptr [[TMP]]
+;
+  %tmp = load ptr, ptr %p
+  ret ptr %tmp
 }
 
-; CHECK: define ptr @b(ptr %q)
 define ptr @b(ptr %q) {
-	%mem = alloca ptr
-	store ptr %q, ptr %mem
-	%tmp = call ptr @a(ptr %mem)
-	ret ptr %tmp
+; CHECK-LABEL: define ptr @b(
+; CHECK-SAME: ptr [[Q:%.*]]) #[[ATTR1:[0-9]+]] {
+; CHECK-NEXT:    [[MEM:%.*]] = alloca ptr, align 8
+; CHECK-NEXT:    store ptr [[Q]], ptr [[MEM]], align 8
+; CHECK-NEXT:    [[TMP:%.*]] = call ptr @a(ptr [[MEM]])
+; CHECK-NEXT:    ret ptr [[TMP]]
+;
+  %mem = alloca ptr
+  store ptr %q, ptr %mem
+  %tmp = call ptr @a(ptr %mem)
+  ret ptr %tmp
 }
 
-; CHECK: define ptr @c(ptr readnone returned captures(address_is_null, ret: address, provenance) %r)
 @g = global i32 0
 define ptr @c(ptr %r) {
-	%a = icmp eq ptr %r, null
-	store i32 1, ptr @g
-	ret ptr %r
+; CHECK-LABEL: define ptr @c(
+; CHECK-SAME: ptr readnone returned captures(address_is_null, ret: address, provenance) [[R:%.*]]) #[[ATTR2:[0-9]+]] {
+; CHECK-NEXT:    [[A:%.*]] = icmp eq ptr [[R]], null
+; CHECK-NEXT:    store i32 1, ptr @g, align 4
+; CHECK-NEXT:    ret ptr [[R]]
+;
+  %a = icmp eq ptr %r, null
+  store i32 1, ptr @g
+  ret ptr %r
 }
diff --git a/llvm/test/Transforms/FunctionAttrs/nofree.ll b/llvm/test/Transforms/FunctionAttrs/nofree.ll
index 89f030d915303..b896226405012 100644
--- a/llvm/test/Transforms/FunctionAttrs/nofree.ll
+++ b/llvm/test/Transforms/FunctionAttrs/nofree.ll
@@ -1,13 +1,11 @@
-; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-attributes
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-attributes --version 6
 ; RUN: opt < %s -passes=function-attrs -S | FileCheck %s
 
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
 define void @_Z4foo1Pi(ptr nocapture readnone %a) local_unnamed_addr #0 {
 ; CHECK: Function Attrs: uwtable
-; CHECK-LABEL: @_Z4foo1Pi(
-; CHECK-NEXT:  entry:
+; CHECK-LABEL: define void @_Z4foo1Pi(
+; CHECK-SAME: ptr readnone captures(none) [[A:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
 ; CHECK-NEXT:    tail call void @_Z3extv()
 ; CHECK-NEXT:    ret void
 ;
@@ -20,9 +18,10 @@ declare void @_Z3extv() local_unnamed_addr
 
 define void @_Z4foo2Pi(ptr nocapture %a) local_unnamed_addr #1 {
 ; CHECK: Function Attrs: nounwind uwtable
-; CHECK-LABEL: @_Z4foo2Pi(
-; CHECK-NEXT:  entry:
-; CHECK-NEXT:    tail call void @free(ptr [[A:%.*]]) #[[ATTR2:[0-9]+]]
+; CHECK-LABEL: define void @_Z4foo2Pi(
+; CHECK-SAME: ptr captures(none) [[A:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    tail call void @free(ptr [[A]]) #[[ATTR2:[0-9]+]]
 ; CHECK-NEXT:    ret void
 ;
 entry:
@@ -34,9 +33,10 @@ declare void @free(ptr nocapture) local_unnamed_addr #2
 
 define i32 @_Z4foo3Pi(ptr nocapture readonly %a) local_unnamed_addr #3 {
 ; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable
-; CHECK-LABEL: @_Z4foo3Pi(
-; CHECK-NEXT:  entry:
-; CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[A:%.*]], align 4
+; CHECK-LABEL: define i32 @_Z4foo3Pi(
+; CHECK-SAME: ptr readonly captures(none) [[A:%.*]]) local_unnamed_addr #[[ATTR3:[0-9]+]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    [[TMP0:%.*]] = load i32, ptr [[A]], align 4
 ; CHECK-NEXT:    ret i32 [[TMP0]]
 ;
 entry:
@@ -46,9 +46,10 @@ entry:
 
 define double @_Z4foo4Pd(ptr nocapture readonly %a) local_unnamed_addr #1 {
 ; CHECK: Function Attrs: nounwind uwtable
-; CHECK-LABEL: @_Z4foo4Pd(
-; CHECK-NEXT:  entry:
-; CHECK-NEXT:    [[TMP0:%.*]] = load double, ptr [[A:%.*]], align 8
+; CHECK-LABEL: define double @_Z4foo4Pd(
+; CHECK-SAME: ptr readonly captures(none) [[A:%.*]]) local_unnamed_addr #[[ATTR1]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    [[TMP0:%.*]] = load double, ptr [[A]], align 8
 ; CHECK-NEXT:    [[CALL:%.*]] = tail call double @cos(double [[TMP0]]) #[[ATTR2]]
 ; CHECK-NEXT:    ret double [[CALL]]
 ;
@@ -62,9 +63,10 @@ declare double @cos(double) local_unnamed_addr #2
 
 define noalias ptr @_Z4foo5Pm(ptr nocapture readonly %a) local_unnamed_addr #1 {
 ; CHECK: Function Attrs: nounwind uwtable
-; CHECK-LABEL: @_Z4foo5Pm(
-; CHECK-NEXT:  entry:
-; CHECK-NEXT:    [[TMP0:%.*]] = load i64, ptr [[A:%.*]], align 8
+; CHECK-LABEL: define noalias ptr @_Z4foo5Pm(
+; CHECK-SAME: ptr readonly captures(none) [[A:%.*]]) local_unnamed_addr #[[ATTR1]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    [[TMP0:%.*]] = load i64, ptr [[A]], align 8
 ; CHECK-NEXT:    [[CALL:%.*]] = tail call noalias ptr @malloc(i64 [[TMP0]]) #[[ATTR2]]
 ; CHECK-NEXT:    ret ptr [[CALL]]
 ;
@@ -78,9 +80,10 @@ declare noalias ptr @malloc(i64) local_unnamed_addr #2
 
 define noalias ptr @_Z4foo6Pm(ptr nocapture %a) local_unnamed_addr #1 {
 ; CHECK: Function Attrs: nounwind uwtable
-; CHECK-LABEL: @_Z4foo6Pm(
-; CHECK-NEXT:  entry:
-; CHECK-NEXT:    [[TMP0:%.*]] = load i64, ptr [[A:%.*]], align 8
+; CHECK-LABEL: define noalias ptr @_Z4foo6Pm(
+; CHECK-SAME: ptr captures(none) [[A:%.*]]) local_unnamed_addr #[[ATTR1]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    [[TMP0:%.*]] = load i64, ptr [[A]], align 8
 ; CHECK-NEXT:    [[CALL:%.*]] = tail call ptr @realloc(ptr [[A]], i64 [[TMP0]]) #[[ATTR2]]
 ; CHECK-NEXT:    ret ptr [[CALL]]
 ;
@@ -94,14 +97,15 @@ declare noalias ptr @realloc(ptr nocapture, i64) local_unnamed_addr #2
 
 define void @_Z4foo7Pi(ptr %a) local_unnamed_addr #1 {
 ; CHECK: Function Attrs: nounwind uwtable
-; CHECK-LABEL: @_Z4foo7Pi(
-; CHECK-NEXT:  entry:
-; CHECK-NEXT:    [[ISNULL:%.*]] = icmp eq ptr [[A:%.*]], null
-; CHECK-NEXT:    br i1 [[ISNULL]], label [[DELETE_END:%.*]], label [[DELETE_NOTNULL:%.*]]
-; CHECK:       delete.notnull:
+; CHECK-LABEL: define void @_Z4foo7Pi(
+; CHECK-SAME: ptr [[A:%.*]]) local_unnamed_addr #[[ATTR1]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    [[ISNULL:%.*]] = icmp eq ptr [[A]], null
+; CHECK-NEXT:    br i1 [[ISNULL]], label %[[DELETE_END:.*]], label %[[DELETE_NOTNULL:.*]]
+; CHECK:       [[DELETE_NOTNULL]]:
 ; CHECK-NEXT:    tail call void @_ZdlPv(ptr [[A]]) #[[ATTR6:[0-9]+]]
-; CHECK-NEXT:    br label [[DELETE_END]]
-; CHECK:       delete.end:
+; CHECK-NEXT:    br label %[[DELETE_END]]
+; CHECK:       [[DELETE_END]]:
 ; CHECK-NEXT:    ret void
 ;
 entry:
@@ -120,14 +124,15 @@ declare void @_ZdlPv(ptr) local_unnamed_addr #4
 
 define void @_Z4foo8Pi(ptr %a) local_unnamed_addr #1 {
 ; CHECK: Function Attrs: nounwind uwtable
-; CHECK-LABEL: @_Z4foo8Pi(
-; CHECK-NEXT:  entry:
-; CHECK-NEXT:    [[ISNULL:%.*]] = icmp eq ptr [[A:%.*]], null
-; CHECK-NEXT:    br i1 [[ISNULL]], label [[DELETE_END:%.*]], label [[DELETE_NOTNULL:%.*]]
-; CHECK:       delete.notnull:
+; CHECK-LABEL: define void @_Z4foo8Pi(
+; CHECK-SAME: ptr [[A:%.*]]) local_unnamed_addr #[[ATTR1]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    [[ISNULL:%.*]] = icmp eq ptr [[A]], null
+; CHECK-NEXT:    br i1 [[ISNULL]], label %[[DELETE_END:.*]], label %[[DELETE_NOTNULL:.*]]
+; CHECK:       [[DELETE_NOTNULL]]:
 ; CHECK-NEXT:    tail call void @_ZdaPv(ptr [[A]]) #[[ATTR6]]
-; CHECK-NEXT:    br label [[DELETE_END]]
-; CHECK:       delete.end:
+; CHECK-NEXT:    br label %[[DELETE_END]]
+; CHECK:       [[DELETE_END]]:
 ; CHECK-NEXT:    ret void
 ;
 entry:
@@ -146,9 +151,10 @@ declare void @may_free()
 
 define void @nofree_callsite_attr(ptr %a) {
 ; CHECK: Function Attrs: nofree
-; CHECK-LABEL: @nofree_callsite_attr(
-; CHECK-NEXT:  entry:
-; CHECK-NEXT:    call void @may_free() #[[ATTR5:[0-9]+]]
+; CHECK-LABEL: define void @nofree_callsite_attr(
+; CHECK-SAME: ptr readnone captures(none) [[A:%.*]]) #[[ATTR5:[0-9]+]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    call void @may_free() #[[ATTR5]]
 ; CHECK-NEXT:    ret void
 ;
 entry:
@@ -157,8 +163,9 @@ entry:
 }
 
 define void @unknown_call(ptr %fn) {
-; CHECK-LABEL: @unknown_call(
-; CHECK-NEXT:    call void [[FN:%.*]]()
+; CHECK-LABEL: define void @unknown_call(
+; CHECK-SAME: ptr readonly captures(none) [[FN:%.*]]) {
+; CHECK-NEXT:    call void [[FN]]()
 ; CHECK-NEXT:    ret void
 ;
   call void %fn()
@@ -166,8 +173,10 @@ define void @unknown_call(ptr %fn) {
 }
 
 define void @unknown_nofree_call(ptr %fn) {
-; CHECK-LABEL: @unknown_nofree_call(
-; CHECK-NEXT:    call void [[FN:%.*]]() #[[ATTR5]]
+; CHECK: Function Attrs: nofree
+; CHECK-LABEL: define void @unknown_nofree_call(
+; CHECK-SAME: ptr readonly captures(none) [[FN:%.*]]) #[[ATTR5]] {
+; CHECK-NEXT:    call void [[FN]]() #[[ATTR5]]
 ; CHECK-NEXT:    ret void
 ;
   call void %fn() nofree
diff --git a/llvm/test/Transforms/FunctionAttrs/optnone.ll b/llvm/test/Transforms/FunctionAttrs/optnone.ll
index 9b5054c4eff96..7713c180d502c 100644
--- a/llvm/test/Transforms/FunctionAttrs/optnone.ll
+++ b/llvm/test/Transforms/FunctionAttrs/optnone.ll
@@ -1,24 +1,24 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-attributes --version 6
 ; RUN: opt < %s -passes=function-attrs -S | FileCheck %s
 
 @x = global i32 0
 
 define void @test_opt(ptr %p) {
-; CHECK-LABEL: @test_opt
-; CHECK: (ptr readnone captures(none) %p) #0 {
+; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
+; CHECK-LABEL: define void @test_opt(
+; CHECK-SAME: ptr readnone captures(none) [[P:%.*]]) #[[ATTR0:[0-9]+]] {
+; CHECK-NEXT:    ret void
+;
   ret void
 }
 
 define void @test_optnone(ptr %p) noinline optnone {
-; CHECK-LABEL: @test_optnone
-; CHECK: (ptr %p) #1 {
+; CHECK: Function Attrs: noinline optnone
+; CHECK-LABEL: define void @test_optnone(
+; CHECK-SAME: ptr [[P:%.*]]) #[[ATTR1:[0-9]+]] {
+; CHECK-NEXT:    ret void
+;
   ret void
 }
 
 declare i8 @strlen(ptr) noinline optnone
-; CHECK-LABEL: @strlen
-; CHECK: (ptr) #1
-
-; CHECK-LABEL: attributes #0
-; CHECK: = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) }
-; CHECK-LABEL: attributes #1
-; CHECK: = { noinline optnone }
diff --git a/llvm/test/Transforms/FunctionAttrs/out-of-bounds-iterator-bug.ll b/llvm/test/Transforms/FunctionAttrs/out-of-bounds-iterator-bug.ll
index 6acb0af13772a..c7b2c16eeda9b 100644
--- a/llvm/test/Transforms/FunctionAttrs/out-of-bounds-iterator-bug.ll
+++ b/llvm/test/Transforms/FunctionAttrs/out-of-bounds-iterator-bug.ll
@@ -1,3 +1,4 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
 ; RUN: opt -passes=function-attrs -S < %s | FileCheck %s
 
 ; This checks for a previously existing iterator wraparound bug in
@@ -7,8 +8,16 @@ declare void @llvm.va_start(ptr)
 declare void @llvm.va_end(ptr)
 
 define void @va_func(ptr readonly %b, ...) readonly nounwind willreturn {
-; CHECK-LABEL: define void @va_func(ptr readonly captures(none) %b, ...)
- entry:
+; CHECK-LABEL: define void @va_func(
+; CHECK-SAME: ptr readonly captures(none) [[B:%.*]], ...) #[[ATTR0:[0-9]+]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    [[VALIST:%.*]] = alloca i8, align 1
+; CHECK-NEXT:    call void @llvm.va_start.p0(ptr [[VALIST]])
+; CHECK-NEXT:    call void @llvm.va_end.p0(ptr [[VALIST]])
+; CHECK-NEXT:    [[X:%.*]] = call i32 @caller(ptr [[B]])
+; CHECK-NEXT:    ret void
+;
+  entry:
   %valist = alloca i8
   call void @llvm.va_start(ptr %valist)
   call void @llvm.va_end(ptr %valist)
@@ -17,15 +26,28 @@ define void @va_func(ptr readonly %b, ...) readonly nounwind willreturn {
 }
 
 define i32 @caller(ptr %x) {
-; CHECK-LABEL: define noundef i32 @caller(ptr readonly captures(address) %x)
- entry:
+; CHECK-LABEL: define noundef i32 @caller(
+; CHECK-SAME: ptr readonly captures(address) [[X:%.*]]) #[[ATTR0]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    call void (ptr, ...) @va_func(ptr null, i32 0, i32 0, i32 0, ptr [[X]])
+; CHECK-NEXT:    ret i32 42
+;
+  entry:
   call void(ptr,...) @va_func(ptr null, i32 0, i32 0, i32 0, ptr %x)
   ret i32 42
 }
 
 define void @va_func2(ptr readonly %b, ...) {
-; CHECK-LABEL: define void @va_func2(ptr readonly captures(address) %b, ...)
- entry:
+; CHECK-LABEL: define void @va_func2(
+; CHECK-SAME: ptr readonly captures(address) [[B:%.*]], ...) #[[ATTR1:[0-9]+]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    [[VALIST:%.*]] = alloca i8, align 1
+; CHECK-NEXT:    call void @llvm.va_start.p0(ptr [[VALIST]])
+; CHECK-NEXT:    call void @llvm.va_end.p0(ptr [[VALIST]])
+; CHECK-NEXT:    [[X:%.*]] = call i32 @caller(ptr [[B]])
+; CHECK-NEXT:    ret void
+;
+  entry:
   %valist = alloca i8
   call void @llvm.va_start(ptr %valist)
   call void @llvm.va_end(ptr %valist)
@@ -34,8 +56,13 @@ define void @va_func2(ptr readonly %b, ...) {
 }
 
 define i32 @caller2(ptr %x, ptr %y) {
-; CHECK-LABEL: define noundef i32 @caller2(ptr readonly captures(address) %x, ptr %y)
- entry:
+; CHECK-LABEL: define noundef i32 @caller2(
+; CHECK-SAME: ptr readonly captures(address) [[X:%.*]], ptr [[Y:%.*]]) #[[ATTR1]] {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    call void (ptr, ...) @va_func2(ptr [[X]], i32 0, i32 0, i32 0, ptr [[Y]])
+; CHECK-NEXT:    ret i32 42
+;
+  entry:
   call void(ptr,...) @va_func2(ptr %x, i32 0, i32 0, i32 0, ptr %y)
   ret i32 42
 }



More information about the llvm-commits mailing list