[llvm] 3b5e104 - Verify inferattrs doesn't infer unexpected attributes
Paul Robinson via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 10 07:54:48 PST 2021
Author: Paul Robinson
Date: 2021-12-10T07:54:35-08:00
New Revision: 3b5e104b2293f21f1192f27dd83a1a2be93d63bf
URL: https://github.com/llvm/llvm-project/commit/3b5e104b2293f21f1192f27dd83a1a2be93d63bf
DIFF: https://github.com/llvm/llvm-project/commit/3b5e104b2293f21f1192f27dd83a1a2be93d63bf.diff
LOG: Verify inferattrs doesn't infer unexpected attributes
Add --match-full-lines or `{{$}}` to ensure that no unexpected
attributes appear at the ends of lines. Account for the cases
where attributes were in fact appearing.
Differential Revision: https://reviews.llvm.org/D110720
Added:
Modified:
llvm/test/Transforms/InferFunctionAttrs/annotate.ll
llvm/test/Transforms/InferFunctionAttrs/no-proto.ll
llvm/test/Transforms/InferFunctionAttrs/nobuiltin.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/InferFunctionAttrs/annotate.ll b/llvm/test/Transforms/InferFunctionAttrs/annotate.ll
index f5625e1da7578..7bdb2a1d8e0c4 100644
--- a/llvm/test/Transforms/InferFunctionAttrs/annotate.ll
+++ b/llvm/test/Transforms/InferFunctionAttrs/annotate.ll
@@ -1,8 +1,8 @@
-; RUN: opt < %s -mtriple=x86_64-- -inferattrs -S | FileCheck --check-prefixes=CHECK,CHECK-NOLINUX,CHECK-UNKNOWN %s
-; RUN: opt < %s -mtriple=x86_64-- -passes=inferattrs -S | FileCheck --check-prefixes=CHECK,CHECK-NOLINUX,CHECK-UNKNOWN %s
-; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -inferattrs -S | FileCheck --check-prefixes=CHECK,CHECK-KNOWN,CHECK-NOLINUX,CHECK-DARWIN %s
-; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -inferattrs -S | FileCheck --check-prefixes=CHECK,CHECK-KNOWN,CHECK-LINUX %s
-; RUN: opt < %s -mtriple=nvptx -inferattrs -S | FileCheck --check-prefixes=CHECK-NOLINUX,CHECK-NVPTX %s
+; RUN: opt < %s -mtriple=x86_64-- -inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK,CHECK-NOLINUX,CHECK-OPEN,CHECK-UNKNOWN %s
+; RUN: opt < %s -mtriple=x86_64-- -passes=inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK,CHECK-NOLINUX,CHECK-OPEN,CHECK-UNKNOWN %s
+; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK,CHECK-KNOWN,CHECK-NOLINUX,CHECK-OPEN,CHECK-DARWIN %s
+; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK,CHECK-KNOWN,CHECK-LINUX %s
+; RUN: opt < %s -mtriple=nvptx -inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK-NOLINUX,CHECK-NVPTX %s
declare i32 @__nvvm_reflect(i8*)
; CHECK-NVPTX: declare noundef i32 @__nvvm_reflect(i8* noundef) [[NOFREE_NOUNWIND_READNONE:#[0-9]+]]
@@ -15,58 +15,76 @@ declare i32 @__nvvm_reflect(i8*)
; Use an opaque pointer type for all the (possibly opaque) structs.
%opaque = type opaque
-; CHECK: declare double @__acos_finite(double)
+; CHECK-LINUX: declare double @__acos_finite(double) [[NOFREE:#[0-9]+]]
+; CHECK-NOLINUX: declare double @__acos_finite(double)
declare double @__acos_finite(double)
-; CHECK: declare float @__acosf_finite(float)
+; CHECK-LINUX: declare float @__acosf_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__acosf_finite(float)
declare float @__acosf_finite(float)
-; CHECK: declare double @__acosh_finite(double)
+; CHECK-LINUX: declare double @__acosh_finite(double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__acosh_finite(double)
declare double @__acosh_finite(double)
-; CHECK: declare float @__acoshf_finite(float)
+; CHECK-LINUX: declare float @__acoshf_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__acoshf_finite(float)
declare float @__acoshf_finite(float)
-; CHECK: declare x86_fp80 @__acoshl_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__acoshl_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__acoshl_finite(x86_fp80)
declare x86_fp80 @__acoshl_finite(x86_fp80)
-; CHECK: declare x86_fp80 @__acosl_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__acosl_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__acosl_finite(x86_fp80)
declare x86_fp80 @__acosl_finite(x86_fp80)
-; CHECK: declare double @__asin_finite(double)
+; CHECK-LINUX: declare double @__asin_finite(double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__asin_finite(double)
declare double @__asin_finite(double)
-; CHECK: declare float @__asinf_finite(float)
+; CHECK-LINUX: declare float @__asinf_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__asinf_finite(float)
declare float @__asinf_finite(float)
-; CHECK: declare x86_fp80 @__asinl_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__asinl_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__asinl_finite(x86_fp80)
declare x86_fp80 @__asinl_finite(x86_fp80)
-; CHECK: declare double @__atan2_finite(double, double)
+; CHECK-LINUX: declare double @__atan2_finite(double, double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__atan2_finite(double, double)
declare double @__atan2_finite(double, double)
-; CHECK: declare float @__atan2f_finite(float, float)
+; CHECK-LINUX: declare float @__atan2f_finite(float, float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__atan2f_finite(float, float)
declare float @__atan2f_finite(float, float)
-; CHECK: declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80)
declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80)
-; CHECK: declare double @__atanh_finite(double)
+; CHECK-LINUX: declare double @__atanh_finite(double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__atanh_finite(double)
declare double @__atanh_finite(double)
-; CHECK: declare float @__atanhf_finite(float)
+; CHECK-LINUX: declare float @__atanhf_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__atanhf_finite(float)
declare float @__atanhf_finite(float)
-; CHECK: declare x86_fp80 @__atanhl_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__atanhl_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__atanhl_finite(x86_fp80)
declare x86_fp80 @__atanhl_finite(x86_fp80)
-; CHECK: declare double @__cosh_finite(double)
+; CHECK-LINUX: declare double @__cosh_finite(double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__cosh_finite(double)
declare double @__cosh_finite(double)
-; CHECK: declare float @__coshf_finite(float)
+; CHECK-LINUX: declare float @__coshf_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__coshf_finite(float)
declare float @__coshf_finite(float)
-; CHECK: declare x86_fp80 @__coshl_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__coshl_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__coshl_finite(x86_fp80)
declare x86_fp80 @__coshl_finite(x86_fp80)
; CHECK: declare double @__cospi(double)
@@ -75,76 +93,100 @@ declare double @__cospi(double)
; CHECK: declare float @__cospif(float)
declare float @__cospif(float)
-; CHECK: declare double @__exp10_finite(double)
+; CHECK-LINUX: declare double @__exp10_finite(double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__exp10_finite(double)
declare double @__exp10_finite(double)
-; CHECK: declare float @__exp10f_finite(float)
+; CHECK-LINUX: declare float @__exp10f_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__exp10f_finite(float)
declare float @__exp10f_finite(float)
-; CHECK: declare x86_fp80 @__exp10l_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__exp10l_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__exp10l_finite(x86_fp80)
declare x86_fp80 @__exp10l_finite(x86_fp80)
-; CHECK: declare double @__exp2_finite(double)
+; CHECK-LINUX: declare double @__exp2_finite(double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__exp2_finite(double)
declare double @__exp2_finite(double)
-; CHECK: declare float @__exp2f_finite(float)
+; CHECK-LINUX: declare float @__exp2f_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__exp2f_finite(float)
declare float @__exp2f_finite(float)
-; CHECK: declare x86_fp80 @__exp2l_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__exp2l_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__exp2l_finite(x86_fp80)
declare x86_fp80 @__exp2l_finite(x86_fp80)
-; CHECK: declare double @__exp_finite(double)
+; CHECK-LINUX: declare double @__exp_finite(double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__exp_finite(double)
declare double @__exp_finite(double)
-; CHECK: declare float @__expf_finite(float)
+; CHECK-LINUX: declare float @__expf_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__expf_finite(float)
declare float @__expf_finite(float)
-; CHECK: declare x86_fp80 @__expl_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__expl_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__expl_finite(x86_fp80)
declare x86_fp80 @__expl_finite(x86_fp80)
-; CHECK: declare double @__log10_finite(double)
+; CHECK-LINUX: declare double @__log10_finite(double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__log10_finite(double)
declare double @__log10_finite(double)
-; CHECK: declare float @__log10f_finite(float)
+; CHECK-LINUX: declare float @__log10f_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__log10f_finite(float)
declare float @__log10f_finite(float)
-; CHECK: declare x86_fp80 @__log10l_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__log10l_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__log10l_finite(x86_fp80)
declare x86_fp80 @__log10l_finite(x86_fp80)
-; CHECK: declare double @__log2_finite(double)
+; CHECK-LINUX: declare double @__log2_finite(double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__log2_finite(double)
declare double @__log2_finite(double)
-; CHECK: declare float @__log2f_finite(float)
+; CHECK-LINUX: declare float @__log2f_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__log2f_finite(float)
declare float @__log2f_finite(float)
-; CHECK: declare x86_fp80 @__log2l_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__log2l_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__log2l_finite(x86_fp80)
declare x86_fp80 @__log2l_finite(x86_fp80)
-; CHECK: declare double @__log_finite(double)
+; CHECK-LINUX: declare double @__log_finite(double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__log_finite(double)
declare double @__log_finite(double)
-; CHECK: declare float @__logf_finite(float)
+; CHECK-LINUX: declare float @__logf_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__logf_finite(float)
declare float @__logf_finite(float)
-; CHECK: declare x86_fp80 @__logl_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__logl_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__logl_finite(x86_fp80)
declare x86_fp80 @__logl_finite(x86_fp80)
-; CHECK: declare double @__pow_finite(double, double)
+; CHECK-LINUX: declare double @__pow_finite(double, double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__pow_finite(double, double)
declare double @__pow_finite(double, double)
-; CHECK: declare float @__powf_finite(float, float)
+; CHECK-LINUX: declare float @__powf_finite(float, float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__powf_finite(float, float)
declare float @__powf_finite(float, float)
-; CHECK: declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80)
declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80)
-; CHECK: declare double @__sinh_finite(double)
+; CHECK-LINUX: declare double @__sinh_finite(double) [[NOFREE]]
+; CHECK-NOLINUX: declare double @__sinh_finite(double)
declare double @__sinh_finite(double)
-; CHECK: declare float @__sinhf_finite(float)
+; CHECK-LINUX: declare float @__sinhf_finite(float) [[NOFREE]]
+; CHECK-NOLINUX: declare float @__sinhf_finite(float)
declare float @__sinhf_finite(float)
-; CHECK: declare x86_fp80 @__sinhl_finite(x86_fp80)
+; CHECK-LINUX: declare x86_fp80 @__sinhl_finite(x86_fp80) [[NOFREE]]
+; CHECK-NOLINUX: declare x86_fp80 @__sinhl_finite(x86_fp80)
declare x86_fp80 @__sinhl_finite(x86_fp80)
; CHECK: declare double @__sinpi(double)
@@ -670,7 +712,8 @@ declare float @nearbyintf(float)
; CHECK: declare x86_fp80 @nearbyintl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN]]
declare x86_fp80 @nearbyintl(x86_fp80)
-; CHECK: declare noundef i32 @open(i8* nocapture noundef readonly, i32 noundef, ...) [[NOFREE:#[0-9]+]]
+; CHECK-LINUX: declare noundef i32 @open(i8* nocapture noundef readonly, i32 noundef, ...) [[NOFREE]]
+; CHECK-OPEN: declare noundef i32 @open(i8* nocapture noundef readonly, i32 noundef, ...) [[NOFREE:#[0-9]+]]
declare i32 @open(i8*, i32, ...)
; CHECK-LINUX: declare noundef i32 @open64(i8* nocapture noundef readonly, i32 noundef, ...) [[NOFREE]]
diff --git a/llvm/test/Transforms/InferFunctionAttrs/no-proto.ll b/llvm/test/Transforms/InferFunctionAttrs/no-proto.ll
index 3cab0ab4bf40d..f5e8594bb1ac9 100644
--- a/llvm/test/Transforms/InferFunctionAttrs/no-proto.ll
+++ b/llvm/test/Transforms/InferFunctionAttrs/no-proto.ll
@@ -1,5 +1,5 @@
-; RUN: opt < %s -mtriple=x86_64-unknown-linux -inferattrs -S | FileCheck %s
-; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -inferattrs -S | FileCheck %s
+; RUN: opt < %s -mtriple=x86_64-unknown-linux -inferattrs -S | FileCheck --match-full-lines %s
+; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -inferattrs -S | FileCheck --match-full-lines %s
; Check that we don't modify libc functions with invalid prototypes.
diff --git a/llvm/test/Transforms/InferFunctionAttrs/nobuiltin.ll b/llvm/test/Transforms/InferFunctionAttrs/nobuiltin.ll
index 1239a22a3a05c..c32764890a01c 100644
--- a/llvm/test/Transforms/InferFunctionAttrs/nobuiltin.ll
+++ b/llvm/test/Transforms/InferFunctionAttrs/nobuiltin.ll
@@ -1,5 +1,5 @@
; RUN: opt -S -inferattrs < %s | FileCheck %s
-; CHECK: Function Attrs: nobuiltin allocsize(0)
+; CHECK: Function Attrs: nobuiltin allocsize(0){{$}}
; CHECK: declare i8* @_Znwm(i32)
declare i8* @_Znwm(i32) nobuiltin allocsize(0)
More information about the llvm-commits
mailing list