[llvm] 53e4ef7 - [Attributor][NFC] Cleanup internalize test case

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 7 21:41:00 PDT 2020


Author: Johannes Doerfert
Date: 2020-09-07T23:38:09-05:00
New Revision: 53e4ef7fc25903430436ce456909d97aaa0fd6b2

URL: https://github.com/llvm/llvm-project/commit/53e4ef7fc25903430436ce456909d97aaa0fd6b2
DIFF: https://github.com/llvm/llvm-project/commit/53e4ef7fc25903430436ce456909d97aaa0fd6b2.diff

LOG: [Attributor][NFC] Cleanup internalize test case

One run line was different and probably introduced for the manually
added function attribute & name checks. We can do this with the script
and a check prefix used for the other run lines as well.

Added: 
    

Modified: 
    llvm/test/Transforms/Attributor/internalize.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/Attributor/internalize.ll b/llvm/test/Transforms/Attributor/internalize.ll
index 8a244b5c998c..25f16474e834 100644
--- a/llvm/test/Transforms/Attributor/internalize.ll
+++ b/llvm/test/Transforms/Attributor/internalize.ll
@@ -12,16 +12,14 @@
 ; RUN: opt -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal  -attributor-max-iterations-verify -attributor-annotate-decl-cs -attributor-max-iterations=8 -attributor-allow-deep-wrappers -disable-inlining -S < %s | FileCheck %s --check-prefixes=CHECK,NOT_CGSCC_OPM,NOT_CGSCC_NPM,NOT_TUNIT_OPM,IS__TUNIT____,IS________NPM,IS__TUNIT_NPM,CHECK_ENABLED,NOT_CGSCC_OPM_ENABLED,NOT_CGSCC_NPM_ENABLED,NOT_TUNIT_OPM_ENABLED,IS__TUNIT_____ENABLED,IS________NPM_ENABLED,IS__TUNIT_NPM_ENABLED
 ; RUN: opt -attributor-cgscc -attributor-manifest-internal  -attributor-annotate-decl-cs -attributor-allow-deep-wrappers -disable-inlining -S < %s | FileCheck %s --check-prefixes=CHECK,NOT_TUNIT_NPM,NOT_TUNIT_OPM,NOT_CGSCC_NPM,IS__CGSCC____,IS________OPM,IS__CGSCC_OPM,CHECK_ENABLED,NOT_TUNIT_NPM_ENABLED,NOT_TUNIT_OPM_ENABLED,NOT_CGSCC_NPM_ENABLED,IS__CGSCC_____ENABLED,IS________OPM_ENABLED,IS__CGSCC_OPM_ENABLED
 ; RUN: opt -aa-pipeline=basic-aa -passes=attributor-cgscc -attributor-manifest-internal  -attributor-annotate-decl-cs -attributor-allow-deep-wrappers -disable-inlining -S < %s | FileCheck %s --check-prefixes=CHECK,NOT_TUNIT_NPM,NOT_TUNIT_OPM,NOT_CGSCC_OPM,IS__CGSCC____,IS________NPM,IS__CGSCC_NPM,CHECK_ENABLED,NOT_TUNIT_NPM_ENABLED,NOT_TUNIT_OPM_ENABLED,NOT_CGSCC_OPM_ENABLED,IS__CGSCC_____ENABLED,IS________NPM_ENABLED,IS__CGSCC_NPM_ENABLED
-; RUN: opt -attributor -attributor-cgscc -disable-inlining -attributor-allow-deep-wrappers -S < %s | FileCheck %s --check-prefix=DWRAPPER
 
 ; TEST 1: This function is of linkage `linkonce`, we cannot internalize this
 ;         function and use information derived from it
 ;
-; DWRAPPER-NOT: Function Attrs
-; DWRAPPER-NOT: inner1.internalized
+; CHECK-NOT: inner1.internalized
 define linkonce i32 @inner1(i32 %a, i32 %b) {
 ; CHECK-LABEL: define {{[^@]+}}@inner1
-; CHECK-SAME: (i32 [[A:%.*]], i32 [[B:%.*]])
+; CHECK-SAME: (i32 [[A:%.*]], i32 [[B:%.*]]) {
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[B]]
 ; CHECK-NEXT:    ret i32 [[C]]
@@ -34,11 +32,10 @@ entry:
 ; TEST 2: This function is of linkage `weak`, we cannot internalize this function and
 ;         use information derived from it
 ;
-; DWRAPPER-NOT: Function Attrs
-; DWRAPPER-NOT: inner2.internalized
+; CHECK-NOT: inner2.internalized
 define weak i32 @inner2(i32 %a, i32 %b) {
 ; CHECK-LABEL: define {{[^@]+}}@inner2
-; CHECK-SAME: (i32 [[A:%.*]], i32 [[B:%.*]])
+; CHECK-SAME: (i32 [[A:%.*]], i32 [[B:%.*]]) {
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[B]]
 ; CHECK-NEXT:    ret i32 [[C]]
@@ -51,17 +48,12 @@ entry:
 ; TEST 3: This function is of linkage `linkonce_odr`, which can be internalized using the
 ;         deep wrapper, and the IP information derived from this function can be used
 ;
-; DWRAPPER: Function Attrs: nofree norecurse nosync nounwind readnone willreturn
-; DWRAPPER: define private i32 @inner3.internalized(i32 %a, i32 %b)
-; DWRAPPER-NEXT: entry:
-; DWRAPPER-NEXT:   %c = add i32 %a, %b
-; DWRAPPER-NEXT:   ret i32 %c
 define linkonce_odr i32 @inner3(i32 %a, i32 %b) {
-; CHECK-LABEL: define {{[^@]+}}@inner3
-; CHECK-SAME: (i32 [[A:%.*]], i32 [[B:%.*]])
-; CHECK-NEXT:  entry:
-; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[B]]
-; CHECK-NEXT:    ret i32 [[C]]
+; CHECK_DISABLED-LABEL: define {{[^@]+}}@inner3
+; CHECK_DISABLED-SAME: (i32 [[A:%.*]], i32 [[B:%.*]]) {
+; CHECK_DISABLED-NEXT:  entry:
+; CHECK_DISABLED-NEXT:    [[C:%.*]] = add i32 [[A]], [[B]]
+; CHECK_DISABLED-NEXT:    ret i32 [[C]]
 ;
 entry:
   %c = add i32 %a, %b
@@ -71,17 +63,12 @@ entry:
 ; TEST 4: This function is of linkage `weak_odr`, which can be internalized using the deep
 ;         wrapper
 ;
-; DWRAPPER: Function Attrs: nofree norecurse nosync nounwind readnone willreturn
-; DWRAPPER: define private i32 @inner4.internalized(i32 %a, i32 %b)
-; DWRAPPER-NEXT: entry:
-; DWRAPPER-NEXT:   %c = add i32 %a, %b
-; DWRAPPER-NEXT:   ret i32 %c
 define weak_odr i32 @inner4(i32 %a, i32 %b) {
-; CHECK-LABEL: define {{[^@]+}}@inner4
-; CHECK-SAME: (i32 [[A:%.*]], i32 [[B:%.*]])
-; CHECK-NEXT:  entry:
-; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[B]]
-; CHECK-NEXT:    ret i32 [[C]]
+; CHECK_DISABLED-LABEL: define {{[^@]+}}@inner4
+; CHECK_DISABLED-SAME: (i32 [[A:%.*]], i32 [[B:%.*]]) {
+; CHECK_DISABLED-NEXT:  entry:
+; CHECK_DISABLED-NEXT:    [[C:%.*]] = add i32 [[A]], [[B]]
+; CHECK_DISABLED-NEXT:    ret i32 [[C]]
 ;
 entry:
   %c = add i32 %a, %b
@@ -91,10 +78,10 @@ entry:
 ; TEST 5: This function has linkage `linkonce_odr` but is never called (num of use = 0), so there
 ;         is no need to internalize this
 ;
-; DWRAPPER-NOT: inner5.internalized
+; CHECK-NOT: inner5.internalized
 define linkonce_odr i32 @inner5(i32 %a, i32 %b) {
 ; CHECK-LABEL: define {{[^@]+}}@inner5
-; CHECK-SAME: (i32 [[A:%.*]], i32 [[B:%.*]])
+; CHECK-SAME: (i32 [[A:%.*]], i32 [[B:%.*]]) {
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[B]]
 ; CHECK-NEXT:    ret i32 [[C]]
@@ -109,16 +96,8 @@ entry:
 ; Since the inner3 is internalized, the use of the original function should be replaced by the
 ;  copied one
 ;
-; DWRAPPER-NOT: call i32 @inner1.internalized
-; DWRAPPER: call i32 @inner1
-; DWRAPPER-NOT: call i32 @inner2.internalized
-; DWRAPPER: call i32 @inner2
-; DWRAPPER-NOT: call i32 @inner3
-; DWRAPPER: call i32 @inner3.internalized
-; DWRAPPER-NOT: call i32 @inner4
-; DWRAPPER: call i32 @inner4.internalized
 define i32 @outer1() {
-; CHECK_DISABLED-LABEL: define {{[^@]+}}@outer1()
+; CHECK_DISABLED-LABEL: define {{[^@]+}}@outer1() {
 ; CHECK_DISABLED-NEXT:  entry:
 ; CHECK_DISABLED-NEXT:    [[RET1:%.*]] = call i32 @inner1(i32 noundef 1, i32 noundef 2)
 ; CHECK_DISABLED-NEXT:    [[RET2:%.*]] = call i32 @inner2(i32 noundef 1, i32 noundef 2)
@@ -126,7 +105,7 @@ define i32 @outer1() {
 ; CHECK_DISABLED-NEXT:    [[RET4:%.*]] = call i32 @inner4(i32 [[RET3]], i32 [[RET3]])
 ; CHECK_DISABLED-NEXT:    ret i32 [[RET4]]
 ;
-; CHECK_ENABLED-LABEL: define {{[^@]+}}@outer1()
+; CHECK_ENABLED-LABEL: define {{[^@]+}}@outer1() {
 ; CHECK_ENABLED-NEXT:  entry:
 ; CHECK_ENABLED-NEXT:    [[RET1:%.*]] = call i32 @inner1(i32 noundef 1, i32 noundef 2)
 ; CHECK_ENABLED-NEXT:    [[RET2:%.*]] = call i32 @inner2(i32 noundef 1, i32 noundef 2)
@@ -145,28 +124,26 @@ entry:
 
 define linkonce_odr void @unused_arg(i8) {
 ; CHECK_DISABLED-LABEL: define {{[^@]+}}@unused_arg
-; CHECK_DISABLED-SAME: (i8 [[TMP0:%.*]])
+; CHECK_DISABLED-SAME: (i8 [[TMP0:%.*]]) {
 ; CHECK_DISABLED-NEXT:    unreachable
 ;
   unreachable
 }
 
 define void @unused_arg_caller() {
-; CHECK_DISABLED-LABEL: define {{[^@]+}}@unused_arg_caller()
+; CHECK_DISABLED-LABEL: define {{[^@]+}}@unused_arg_caller() {
 ; CHECK_DISABLED-NEXT:    call void @unused_arg(i8 noundef 0)
 ; CHECK_DISABLED-NEXT:    ret void
 ;
 ; IS__TUNIT_____ENABLED: Function Attrs: nofree noreturn nosync nounwind readnone willreturn
-; IS__TUNIT_____ENABLED-LABEL: define {{[^@]+}}@unused_arg_caller()
+; IS__TUNIT_____ENABLED-LABEL: define {{[^@]+}}@unused_arg_caller
+; IS__TUNIT_____ENABLED-SAME: () [[ATTR1:#.*]] {
 ; IS__TUNIT_____ENABLED-NEXT:    unreachable
 ;
 ; IS__CGSCC_____ENABLED: Function Attrs: nofree norecurse noreturn nosync nounwind readnone willreturn
-; IS__CGSCC_____ENABLED-LABEL: define {{[^@]+}}@unused_arg_caller()
+; IS__CGSCC_____ENABLED-LABEL: define {{[^@]+}}@unused_arg_caller
+; IS__CGSCC_____ENABLED-SAME: () [[ATTR2:#.*]] {
 ; IS__CGSCC_____ENABLED-NEXT:    unreachable
-;
-; DWRAPPER: Function Attrs: nofree norecurse noreturn nosync nounwind readnone willreturn
-; DWRAPPER-LABEL: define {{[^@]+}}@unused_arg_caller()
-; DWRAPPER-NEXT:    unreachable
 ;
   call void @unused_arg(i8 0)
   ret void


        


More information about the llvm-commits mailing list