From 56be9123ca411b001cc6ebd84c36a62c72bd825c Mon Sep 17 00:00:00 2001 From: Johannes Doerfert Date: Fri, 6 Jan 2023 14:15:02 -0800 Subject: [PATCH] [Attributor][OpenMP][NFC] Cleanup tests via update script --- .../Attributor/ArgumentPromotion/array.ll | 12 ++-- llvm/test/Transforms/Attributor/callgraph.ll | 14 ++--- .../Transforms/Attributor/dereferenceable-1.ll | 8 +-- llvm/test/Transforms/Attributor/openmp_parallel.ll | 72 +++++++++++----------- llvm/test/Transforms/Attributor/pointer-info.ll | 4 +- .../value-simplify-pointer-info-struct.ll | 20 ++---- .../test/Transforms/OpenMP/always_inline_device.ll | 4 +- .../OpenMP/reduced_pointer_info_assertion.ll | 58 ++++++++++------- .../OpenMP/remove_noinline_attributes.ll | 18 +++--- 9 files changed, 105 insertions(+), 105 deletions(-) diff --git a/llvm/test/Transforms/Attributor/ArgumentPromotion/array.ll b/llvm/test/Transforms/Attributor/ArgumentPromotion/array.ll index 8c86c6f..f010b02 100644 --- a/llvm/test/Transforms/Attributor/ArgumentPromotion/array.ll +++ b/llvm/test/Transforms/Attributor/ArgumentPromotion/array.ll @@ -10,12 +10,12 @@ define void @caller() { ; TUNIT-LABEL: define {{[^@]+}}@caller() { ; TUNIT-NEXT: entry: ; TUNIT-NEXT: [[LEFT:%.*]] = alloca [3 x i32], align 4 -; TUNIT-NEXT: [[TMP1:%.*]] = load i32, ptr [[LEFT]], align 4 -; TUNIT-NEXT: [[DOT0_1:%.*]] = getelementptr [3 x i32], ptr [[LEFT]], i64 0, i64 1 -; TUNIT-NEXT: [[TMP2:%.*]] = load i32, ptr [[DOT0_1]], align 4 -; TUNIT-NEXT: [[DOT0_2:%.*]] = getelementptr [3 x i32], ptr [[LEFT]], i64 0, i64 2 -; TUNIT-NEXT: [[TMP3:%.*]] = load i32, ptr [[DOT0_2]], align 4 -; TUNIT-NEXT: call void @callee(i32 [[TMP1]], i32 [[TMP2]], i32 [[TMP3]]) +; TUNIT-NEXT: [[TMP0:%.*]] = load i32, ptr [[LEFT]], align 4 +; TUNIT-NEXT: [[LEFT_0_1:%.*]] = getelementptr [3 x i32], ptr [[LEFT]], i64 0, i64 1 +; TUNIT-NEXT: [[TMP1:%.*]] = load i32, ptr [[LEFT_0_1]], align 4 +; TUNIT-NEXT: [[LEFT_0_2:%.*]] = getelementptr [3 x i32], ptr [[LEFT]], i64 0, i64 2 +; TUNIT-NEXT: [[TMP2:%.*]] = load i32, ptr [[LEFT_0_2]], align 4 +; TUNIT-NEXT: call void @callee(i32 [[TMP0]], i32 [[TMP1]], i32 [[TMP2]]) ; TUNIT-NEXT: ret void ; ; CGSCC-LABEL: define {{[^@]+}}@caller() { diff --git a/llvm/test/Transforms/Attributor/callgraph.ll b/llvm/test/Transforms/Attributor/callgraph.ll index 97b6f34..5a754d7 100644 --- a/llvm/test/Transforms/Attributor/callgraph.ll +++ b/llvm/test/Transforms/Attributor/callgraph.ll @@ -3,7 +3,7 @@ ; RUN: opt -passes=attributor -attributor-print-call-graph -S -disable-output < %s | FileCheck %s --check-prefixes=DOT define dso_local void @func1() { -; CHECK-LABEL: define {{[^@]+}}@func1( +; CHECK-LABEL: @func1( ; CHECK-NEXT: br label [[TMP2:%.*]] ; CHECK: 1: ; CHECK-NEXT: unreachable @@ -27,7 +27,7 @@ declare void @func3() declare void @func4() define dso_local void @func2() { -; CHECK-LABEL: define {{[^@]+}}@func2( +; CHECK-LABEL: @func2( ; CHECK-NEXT: call void @func4() ; CHECK-NEXT: ret void ; @@ -37,7 +37,7 @@ define dso_local void @func2() { define void @func5(i32 %0) { -; CHECK-LABEL: define {{[^@]+}}@func5( +; CHECK-LABEL: @func5( ; CHECK-NEXT: [[TMP2:%.*]] = icmp ne i32 [[TMP0:%.*]], 0 ; CHECK-NEXT: [[TMP3:%.*]] = select i1 [[TMP2]], ptr @func4, ptr @func3 ; CHECK-NEXT: call void [[TMP3]]() @@ -50,7 +50,7 @@ define void @func5(i32 %0) { } define void @broker(ptr %unknown) !callback !0 { -; CHECK-LABEL: define {{[^@]+}}@broker( +; CHECK-LABEL: @broker( ; CHECK-NEXT: call void [[UNKNOWN:%.*]]() ; CHECK-NEXT: ret void ; @@ -59,7 +59,7 @@ define void @broker(ptr %unknown) !callback !0 { } define void @func6() { -; CHECK-LABEL: define {{[^@]+}}@func6( +; CHECK-LABEL: @func6( ; CHECK-NEXT: call void @broker(ptr nocapture nofree noundef @func3) ; CHECK-NEXT: ret void ; @@ -68,7 +68,7 @@ define void @func6() { } define void @func7(ptr %unknown) { -; CHECK-LABEL: define {{[^@]+}}@func7( +; CHECK-LABEL: @func7( ; CHECK-NEXT: call void [[UNKNOWN:%.*]](), !callees !2 ; CHECK-NEXT: ret void ; @@ -78,7 +78,7 @@ define void @func7(ptr %unknown) { ; Check there's no crash if something that isn't a function appears in !callees define void @undef_in_callees() { -; CHECK-LABEL: define {{[^@]+}}@undef_in_callees( +; CHECK-LABEL: @undef_in_callees( ; CHECK-NEXT: cond.end.i: ; CHECK-NEXT: call void undef(ptr undef, i32 undef, ptr undef), !callees !3 ; CHECK-NEXT: ret void diff --git a/llvm/test/Transforms/Attributor/dereferenceable-1.ll b/llvm/test/Transforms/Attributor/dereferenceable-1.ll index 2ad0744..8ec8b74 100644 --- a/llvm/test/Transforms/Attributor/dereferenceable-1.ll +++ b/llvm/test/Transforms/Attributor/dereferenceable-1.ll @@ -15,8 +15,8 @@ define ptr @test1(ptr dereferenceable(4) %0, ptr dereferenceable(8) %1, i1 zeroe ; CHECK: Function Attrs: nofree norecurse nosync nounwind willreturn memory(none) ; CHECK-LABEL: define {{[^@]+}}@test1 ; CHECK-SAME: (ptr nofree nonnull readnone dereferenceable(4) "no-capture-maybe-returned" [[TMP0:%.*]], ptr nofree nonnull readnone dereferenceable(8) "no-capture-maybe-returned" [[TMP1:%.*]], i1 zeroext [[TMP2:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { -; CHECK-NEXT: [[TMP5:%.*]] = select i1 [[TMP2]], ptr [[TMP0]], ptr [[TMP1]] -; CHECK-NEXT: ret ptr [[TMP5]] +; CHECK-NEXT: [[TMP4:%.*]] = select i1 [[TMP2]], ptr [[TMP0]], ptr [[TMP1]] +; CHECK-NEXT: ret ptr [[TMP4]] ; %4 = select i1 %2, ptr %0, ptr %1 ret ptr %4 @@ -27,8 +27,8 @@ define ptr @test2(ptr dereferenceable_or_null(4) %0, ptr dereferenceable(8) %1, ; CHECK: Function Attrs: nofree norecurse nosync nounwind willreturn memory(none) ; CHECK-LABEL: define {{[^@]+}}@test2 ; CHECK-SAME: (ptr nofree readnone dereferenceable_or_null(4) "no-capture-maybe-returned" [[TMP0:%.*]], ptr nofree nonnull readnone dereferenceable(8) "no-capture-maybe-returned" [[TMP1:%.*]], i1 zeroext [[TMP2:%.*]]) local_unnamed_addr #[[ATTR0]] { -; CHECK-NEXT: [[TMP5:%.*]] = select i1 [[TMP2]], ptr [[TMP0]], ptr [[TMP1]] -; CHECK-NEXT: ret ptr [[TMP5]] +; CHECK-NEXT: [[TMP4:%.*]] = select i1 [[TMP2]], ptr [[TMP0]], ptr [[TMP1]] +; CHECK-NEXT: ret ptr [[TMP4]] ; %4 = select i1 %2, ptr %0, ptr %1 ret ptr %4 diff --git a/llvm/test/Transforms/Attributor/openmp_parallel.ll b/llvm/test/Transforms/Attributor/openmp_parallel.ll index a0a2d1e..3ea7899 100644 --- a/llvm/test/Transforms/Attributor/openmp_parallel.ll +++ b/llvm/test/Transforms/Attributor/openmp_parallel.ll @@ -76,33 +76,33 @@ define internal void @.omp_outlined.(ptr noalias nocapture readonly %.global_tid ; TUNIT-NEXT: store i32 1, ptr [[DOTOMP_STRIDE]], align 4 ; TUNIT-NEXT: call void @llvm.lifetime.start.p0(i64 noundef 4, ptr nocapture nofree noundef nonnull align 4 dereferenceable(4) [[DOTOMP_IS_LAST]]) ; TUNIT-NEXT: store i32 0, ptr [[DOTOMP_IS_LAST]], align 4 -; TUNIT-NEXT: [[TMP4:%.*]] = load i32, ptr [[DOTGLOBAL_TID_]], align 4 -; TUNIT-NEXT: call void @__kmpc_for_static_init_4(ptr noundef nonnull align 8 dereferenceable(24) @[[GLOB1]], i32 [[TMP4]], i32 noundef 34, ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_IS_LAST]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_LB]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_UB]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_STRIDE]], i32 noundef 1, i32 noundef 1) -; TUNIT-NEXT: [[TMP5:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4 -; TUNIT-NEXT: [[CMP4:%.*]] = icmp sgt i32 [[TMP5]], 197 -; TUNIT-NEXT: [[COND:%.*]] = select i1 [[CMP4]], i32 197, i32 [[TMP5]] +; TUNIT-NEXT: [[TMP0:%.*]] = load i32, ptr [[DOTGLOBAL_TID_]], align 4 +; TUNIT-NEXT: call void @__kmpc_for_static_init_4(ptr noundef nonnull align 8 dereferenceable(24) @[[GLOB1]], i32 [[TMP0]], i32 noundef 34, ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_IS_LAST]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_LB]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_UB]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_STRIDE]], i32 noundef 1, i32 noundef 1) +; TUNIT-NEXT: [[TMP1:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4 +; TUNIT-NEXT: [[CMP4:%.*]] = icmp sgt i32 [[TMP1]], 197 +; TUNIT-NEXT: [[COND:%.*]] = select i1 [[CMP4]], i32 197, i32 [[TMP1]] ; TUNIT-NEXT: store i32 [[COND]], ptr [[DOTOMP_UB]], align 4 -; TUNIT-NEXT: [[TMP6:%.*]] = load i32, ptr [[DOTOMP_LB]], align 4 -; TUNIT-NEXT: [[CMP513:%.*]] = icmp sgt i32 [[TMP6]], [[COND]] +; TUNIT-NEXT: [[TMP2:%.*]] = load i32, ptr [[DOTOMP_LB]], align 4 +; TUNIT-NEXT: [[CMP513:%.*]] = icmp sgt i32 [[TMP2]], [[COND]] ; TUNIT-NEXT: br i1 [[CMP513]], label [[OMP_LOOP_EXIT:%.*]], label [[OMP_INNER_FOR_BODY_LR_PH:%.*]] ; TUNIT: omp.inner.for.body.lr.ph: -; TUNIT-NEXT: [[TMP7:%.*]] = load ptr, ptr [[B]], align 8 -; TUNIT-NEXT: [[TMP8:%.*]] = load ptr, ptr [[A]], align 8 -; TUNIT-NEXT: [[TMP9:%.*]] = sext i32 [[TMP6]] to i64 -; TUNIT-NEXT: [[TMP10:%.*]] = sext i32 [[COND]] to i64 +; TUNIT-NEXT: [[TMP3:%.*]] = load ptr, ptr [[B]], align 8 +; TUNIT-NEXT: [[TMP4:%.*]] = load ptr, ptr [[A]], align 8 +; TUNIT-NEXT: [[TMP5:%.*]] = sext i32 [[TMP2]] to i64 +; TUNIT-NEXT: [[TMP6:%.*]] = sext i32 [[COND]] to i64 ; TUNIT-NEXT: br label [[OMP_INNER_FOR_BODY:%.*]] ; TUNIT: omp.inner.for.body: -; TUNIT-NEXT: [[INDVARS_IV:%.*]] = phi i64 [ [[INDVARS_IV_NEXT:%.*]], [[OMP_INNER_FOR_BODY]] ], [ [[TMP9]], [[OMP_INNER_FOR_BODY_LR_PH]] ] +; TUNIT-NEXT: [[INDVARS_IV:%.*]] = phi i64 [ [[INDVARS_IV_NEXT:%.*]], [[OMP_INNER_FOR_BODY]] ], [ [[TMP5]], [[OMP_INNER_FOR_BODY_LR_PH]] ] ; TUNIT-NEXT: [[INDVARS_IV_NEXT]] = add nsw i64 [[INDVARS_IV]], 1 -; TUNIT-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds float, ptr [[TMP7]], i64 [[INDVARS_IV_NEXT]] -; TUNIT-NEXT: [[TMP11:%.*]] = load float, ptr [[ARRAYIDX]], align 4 -; TUNIT-NEXT: [[CONV7:%.*]] = fadd float [[TMP11]], 1.000000e+00 -; TUNIT-NEXT: [[ARRAYIDX9:%.*]] = getelementptr inbounds float, ptr [[TMP8]], i64 [[INDVARS_IV_NEXT]] +; TUNIT-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds float, ptr [[TMP3]], i64 [[INDVARS_IV_NEXT]] +; TUNIT-NEXT: [[TMP7:%.*]] = load float, ptr [[ARRAYIDX]], align 4 +; TUNIT-NEXT: [[CONV7:%.*]] = fadd float [[TMP7]], 1.000000e+00 +; TUNIT-NEXT: [[ARRAYIDX9:%.*]] = getelementptr inbounds float, ptr [[TMP4]], i64 [[INDVARS_IV_NEXT]] ; TUNIT-NEXT: store float [[CONV7]], ptr [[ARRAYIDX9]], align 4 -; TUNIT-NEXT: [[CMP5:%.*]] = icmp slt i64 [[INDVARS_IV]], [[TMP10]] +; TUNIT-NEXT: [[CMP5:%.*]] = icmp slt i64 [[INDVARS_IV]], [[TMP6]] ; TUNIT-NEXT: br i1 [[CMP5]], label [[OMP_INNER_FOR_BODY]], label [[OMP_LOOP_EXIT]] ; TUNIT: omp.loop.exit: -; TUNIT-NEXT: call void @__kmpc_for_static_fini(ptr noundef nonnull align 8 dereferenceable(24) @[[GLOB1]], i32 [[TMP4]]) +; TUNIT-NEXT: call void @__kmpc_for_static_fini(ptr noundef nonnull align 8 dereferenceable(24) @[[GLOB1]], i32 [[TMP0]]) ; TUNIT-NEXT: call void @llvm.lifetime.end.p0(i64 noundef 4, ptr nocapture nofree noundef nonnull align 4 dereferenceable(4) [[DOTOMP_IS_LAST]]) ; TUNIT-NEXT: call void @llvm.lifetime.end.p0(i64 noundef 4, ptr nocapture nofree noundef nonnull align 4 dereferenceable(4) [[DOTOMP_STRIDE]]) ; TUNIT-NEXT: call void @llvm.lifetime.end.p0(i64 noundef 4, ptr nocapture nofree noundef nonnull align 4 dereferenceable(4) [[DOTOMP_UB]]) @@ -132,33 +132,33 @@ define internal void @.omp_outlined.(ptr noalias nocapture readonly %.global_tid ; CGSCC-NEXT: store i32 1, ptr [[DOTOMP_STRIDE]], align 4 ; CGSCC-NEXT: call void @llvm.lifetime.start.p0(i64 noundef 4, ptr nocapture nofree noundef nonnull align 4 dereferenceable(4) [[DOTOMP_IS_LAST]]) ; CGSCC-NEXT: store i32 0, ptr [[DOTOMP_IS_LAST]], align 4 -; CGSCC-NEXT: [[TMP5:%.*]] = load i32, ptr [[DOTGLOBAL_TID_]], align 4 -; CGSCC-NEXT: call void @__kmpc_for_static_init_4(ptr noundef nonnull align 8 dereferenceable(24) @[[GLOB1]], i32 [[TMP5]], i32 noundef 34, ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_IS_LAST]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_LB]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_UB]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_STRIDE]], i32 noundef 1, i32 noundef 1) -; CGSCC-NEXT: [[TMP6:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4 -; CGSCC-NEXT: [[CMP4:%.*]] = icmp sgt i32 [[TMP6]], [[SUB2]] -; CGSCC-NEXT: [[COND:%.*]] = select i1 [[CMP4]], i32 [[SUB2]], i32 [[TMP6]] +; CGSCC-NEXT: [[TMP1:%.*]] = load i32, ptr [[DOTGLOBAL_TID_]], align 4 +; CGSCC-NEXT: call void @__kmpc_for_static_init_4(ptr noundef nonnull align 8 dereferenceable(24) @[[GLOB1]], i32 [[TMP1]], i32 noundef 34, ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_IS_LAST]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_LB]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_UB]], ptr noundef nonnull align 4 dereferenceable(4) [[DOTOMP_STRIDE]], i32 noundef 1, i32 noundef 1) +; CGSCC-NEXT: [[TMP2:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4 +; CGSCC-NEXT: [[CMP4:%.*]] = icmp sgt i32 [[TMP2]], [[SUB2]] +; CGSCC-NEXT: [[COND:%.*]] = select i1 [[CMP4]], i32 [[SUB2]], i32 [[TMP2]] ; CGSCC-NEXT: store i32 [[COND]], ptr [[DOTOMP_UB]], align 4 -; CGSCC-NEXT: [[TMP7:%.*]] = load i32, ptr [[DOTOMP_LB]], align 4 -; CGSCC-NEXT: [[CMP513:%.*]] = icmp sgt i32 [[TMP7]], [[COND]] +; CGSCC-NEXT: [[TMP3:%.*]] = load i32, ptr [[DOTOMP_LB]], align 4 +; CGSCC-NEXT: [[CMP513:%.*]] = icmp sgt i32 [[TMP3]], [[COND]] ; CGSCC-NEXT: br i1 [[CMP513]], label [[OMP_LOOP_EXIT:%.*]], label [[OMP_INNER_FOR_BODY_LR_PH:%.*]] ; CGSCC: omp.inner.for.body.lr.ph: -; CGSCC-NEXT: [[TMP8:%.*]] = load ptr, ptr [[B]], align 8 -; CGSCC-NEXT: [[TMP9:%.*]] = load ptr, ptr [[A]], align 8 -; CGSCC-NEXT: [[TMP10:%.*]] = sext i32 [[TMP7]] to i64 -; CGSCC-NEXT: [[TMP11:%.*]] = sext i32 [[COND]] to i64 +; CGSCC-NEXT: [[TMP4:%.*]] = load ptr, ptr [[B]], align 8 +; CGSCC-NEXT: [[TMP5:%.*]] = load ptr, ptr [[A]], align 8 +; CGSCC-NEXT: [[TMP6:%.*]] = sext i32 [[TMP3]] to i64 +; CGSCC-NEXT: [[TMP7:%.*]] = sext i32 [[COND]] to i64 ; CGSCC-NEXT: br label [[OMP_INNER_FOR_BODY:%.*]] ; CGSCC: omp.inner.for.body: -; CGSCC-NEXT: [[INDVARS_IV:%.*]] = phi i64 [ [[INDVARS_IV_NEXT:%.*]], [[OMP_INNER_FOR_BODY]] ], [ [[TMP10]], [[OMP_INNER_FOR_BODY_LR_PH]] ] +; CGSCC-NEXT: [[INDVARS_IV:%.*]] = phi i64 [ [[INDVARS_IV_NEXT:%.*]], [[OMP_INNER_FOR_BODY]] ], [ [[TMP6]], [[OMP_INNER_FOR_BODY_LR_PH]] ] ; CGSCC-NEXT: [[INDVARS_IV_NEXT]] = add nsw i64 [[INDVARS_IV]], 1 -; CGSCC-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds float, ptr [[TMP8]], i64 [[INDVARS_IV_NEXT]] -; CGSCC-NEXT: [[TMP12:%.*]] = load float, ptr [[ARRAYIDX]], align 4 -; CGSCC-NEXT: [[CONV7:%.*]] = fadd float [[TMP12]], 1.000000e+00 -; CGSCC-NEXT: [[ARRAYIDX9:%.*]] = getelementptr inbounds float, ptr [[TMP9]], i64 [[INDVARS_IV_NEXT]] +; CGSCC-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds float, ptr [[TMP4]], i64 [[INDVARS_IV_NEXT]] +; CGSCC-NEXT: [[TMP8:%.*]] = load float, ptr [[ARRAYIDX]], align 4 +; CGSCC-NEXT: [[CONV7:%.*]] = fadd float [[TMP8]], 1.000000e+00 +; CGSCC-NEXT: [[ARRAYIDX9:%.*]] = getelementptr inbounds float, ptr [[TMP5]], i64 [[INDVARS_IV_NEXT]] ; CGSCC-NEXT: store float [[CONV7]], ptr [[ARRAYIDX9]], align 4 -; CGSCC-NEXT: [[CMP5:%.*]] = icmp slt i64 [[INDVARS_IV]], [[TMP11]] +; CGSCC-NEXT: [[CMP5:%.*]] = icmp slt i64 [[INDVARS_IV]], [[TMP7]] ; CGSCC-NEXT: br i1 [[CMP5]], label [[OMP_INNER_FOR_BODY]], label [[OMP_LOOP_EXIT]] ; CGSCC: omp.loop.exit: -; CGSCC-NEXT: call void @__kmpc_for_static_fini(ptr noundef nonnull align 8 dereferenceable(24) @[[GLOB1]], i32 [[TMP5]]) +; CGSCC-NEXT: call void @__kmpc_for_static_fini(ptr noundef nonnull align 8 dereferenceable(24) @[[GLOB1]], i32 [[TMP1]]) ; CGSCC-NEXT: call void @llvm.lifetime.end.p0(i64 noundef 4, ptr nocapture nofree noundef nonnull align 4 dereferenceable(4) [[DOTOMP_IS_LAST]]) ; CGSCC-NEXT: call void @llvm.lifetime.end.p0(i64 noundef 4, ptr nocapture nofree noundef nonnull align 4 dereferenceable(4) [[DOTOMP_STRIDE]]) ; CGSCC-NEXT: call void @llvm.lifetime.end.p0(i64 noundef 4, ptr nocapture nofree noundef nonnull align 4 dereferenceable(4) [[DOTOMP_UB]]) diff --git a/llvm/test/Transforms/Attributor/pointer-info.ll b/llvm/test/Transforms/Attributor/pointer-info.ll index bbc2f90..823f4d2 100644 --- a/llvm/test/Transforms/Attributor/pointer-info.ll +++ b/llvm/test/Transforms/Attributor/pointer-info.ll @@ -44,8 +44,8 @@ define void @bar(ptr noundef byval(%struct.test.a) align 8 %dev) { ; CHECK: Function Attrs: nofree norecurse nosync nounwind willreturn memory(argmem: write) ; CHECK-LABEL: define {{[^@]+}}@bar ; CHECK-SAME: (ptr noalias nocapture nofree noundef nonnull writeonly byval([[STRUCT_TEST_A:%.*]]) align 8 dereferenceable(24) [[DEV:%.*]]) #[[ATTR1:[0-9]+]] { -; CHECK-NEXT: [[TMP2:%.*]] = getelementptr inbounds [[STRUCT_TEST_B:%.*]], ptr [[DEV]], i64 0, i32 1 -; CHECK-NEXT: store i32 1, ptr [[TMP2]], align 4 +; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds [[STRUCT_TEST_B:%.*]], ptr [[DEV]], i64 0, i32 1 +; CHECK-NEXT: store i32 1, ptr [[TMP1]], align 4 ; CHECK-NEXT: ret void ; %1 = getelementptr inbounds %struct.test.b, ptr %dev, i64 0, i32 1 diff --git a/llvm/test/Transforms/Attributor/value-simplify-pointer-info-struct.ll b/llvm/test/Transforms/Attributor/value-simplify-pointer-info-struct.ll index 7050ffc..3d78ff2 100644 --- a/llvm/test/Transforms/Attributor/value-simplify-pointer-info-struct.ll +++ b/llvm/test/Transforms/Attributor/value-simplify-pointer-info-struct.ll @@ -1,8 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-attributes --check-globals -; RUN: opt -passes=attributor -enable-new-pm=0 -attributor-manifest-internal -attributor-max-iterations-verify -attributor-annotate-decl-cs -attributor-max-iterations=9 -S < %s | FileCheck %s --check-prefixes=CHECK,NOT_CGSCC_NPM,NOT_CGSCC_OPM,NOT_TUNIT_NPM,IS__TUNIT____,IS________OPM,IS__TUNIT_OPM -; RUN: opt -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -attributor-max-iterations-verify -attributor-annotate-decl-cs -attributor-max-iterations=9 -S < %s | FileCheck %s --check-prefixes=CHECK,NOT_CGSCC_OPM,NOT_CGSCC_NPM,NOT_TUNIT_OPM,IS__TUNIT____,IS________NPM,IS__TUNIT_NPM -; RUN: opt -passes=attributor-cgscc -enable-new-pm=0 -attributor-manifest-internal -attributor-annotate-decl-cs -S < %s | FileCheck %s --check-prefixes=CHECK,NOT_TUNIT_NPM,NOT_TUNIT_OPM,NOT_CGSCC_NPM,IS__CGSCC____,IS________OPM,IS__CGSCC_OPM -; RUN: opt -aa-pipeline=basic-aa -passes=attributor-cgscc -attributor-manifest-internal -attributor-annotate-decl-cs -S < %s | FileCheck %s --check-prefixes=CHECK,NOT_TUNIT_NPM,NOT_TUNIT_OPM,NOT_CGSCC_OPM,IS__CGSCC____,IS________NPM,IS__CGSCC_NPM +; RUN: opt -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal -attributor-max-iterations-verify -attributor-annotate-decl-cs -attributor-max-iterations=9 -S < %s | FileCheck %s --check-prefixes=CHECK,TUNIT +; RUN: opt -aa-pipeline=basic-aa -passes=attributor-cgscc -attributor-manifest-internal -attributor-annotate-decl-cs -S < %s | FileCheck %s --check-prefixes=CHECK,CGSCC ; target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" @@ -215,15 +213,5 @@ if.end7: ; preds = %if.then5, %if.end4 ; CHECK: attributes #[[ATTR2]] = { nofree norecurse nosync nounwind willreturn memory(none) } ;. ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: -; IS__CGSCC_NPM: {{.*}} -; IS__CGSCC_OPM: {{.*}} -; IS__CGSCC____: {{.*}} -; IS__TUNIT_NPM: {{.*}} -; IS__TUNIT_OPM: {{.*}} -; IS__TUNIT____: {{.*}} -; IS________NPM: {{.*}} -; IS________OPM: {{.*}} -; NOT_CGSCC_NPM: {{.*}} -; NOT_CGSCC_OPM: {{.*}} -; NOT_TUNIT_NPM: {{.*}} -; NOT_TUNIT_OPM: {{.*}} +; CGSCC: {{.*}} +; TUNIT: {{.*}} diff --git a/llvm/test/Transforms/OpenMP/always_inline_device.ll b/llvm/test/Transforms/OpenMP/always_inline_device.ll index cc4a528..a4c749f 100644 --- a/llvm/test/Transforms/OpenMP/always_inline_device.ll +++ b/llvm/test/Transforms/OpenMP/always_inline_device.ll @@ -11,7 +11,7 @@ ; Function Attrs: convergent norecurse nounwind define weak void @__omp_offloading_fd02_c0934fc2_foo_l4() #0 { ; CHECK: Function Attrs: convergent norecurse nounwind -; CHECK-LABEL: define {{[^@]+}}@__omp_offloading_fd02_c0934fc2_foo_l4( +; CHECK-LABEL: @__omp_offloading_fd02_c0934fc2_foo_l4( ; CHECK-NEXT: entry: ; CHECK-NEXT: [[TMP0:%.*]] = call i32 @__kmpc_target_init(ptr @[[GLOB1:[0-9]+]], i8 2, i1 false) ; CHECK-NEXT: [[THREAD_ID_IN_BLOCK:%.*]] = call i32 @__kmpc_get_hardware_thread_id_in_block() @@ -58,7 +58,7 @@ declare void @__kmpc_target_deinit(ptr, i8) ; Function Attrs: convergent nounwind define hidden void @bar() #1 { ; CHECK: Function Attrs: alwaysinline convergent nounwind -; CHECK-LABEL: define {{[^@]+}}@bar( +; CHECK-LABEL: @bar( ; CHECK-NEXT: entry: ; CHECK-NEXT: ret void ; diff --git a/llvm/test/Transforms/OpenMP/reduced_pointer_info_assertion.ll b/llvm/test/Transforms/OpenMP/reduced_pointer_info_assertion.ll index ff4a329..0f8c0be 100644 --- a/llvm/test/Transforms/OpenMP/reduced_pointer_info_assertion.ll +++ b/llvm/test/Transforms/OpenMP/reduced_pointer_info_assertion.ll @@ -1,4 +1,4 @@ -; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --include-generated-funcs ; RUN: opt < %s -S -passes=openmp-opt | FileCheck %s --check-prefix=MODULE ; RUN: opt < %s -S -passes=openmp-opt-cgscc | FileCheck %s --check-prefix=CGSCC @@ -7,34 +7,12 @@ target triple = "nvptx64-nvidia-cuda" declare noalias ptr @alloc() define internal i32 @nblist() { -; MODULE-LABEL: define {{[^@]+}}@nblist( -; MODULE-NEXT: [[TMP1:%.*]] = call ptr @alloc() -; MODULE-NEXT: call fastcc void @rec.internalized(ptr [[TMP1]], i64 0) -; MODULE-NEXT: ret i32 0 -; -; CGSCC-LABEL: define {{[^@]+}}@nblist( -; CGSCC-NEXT: [[TMP1:%.*]] = call ptr @alloc() -; CGSCC-NEXT: call fastcc void @rec(ptr [[TMP1]], i64 0) -; CGSCC-NEXT: ret i32 0 -; %1 = call ptr @alloc() call fastcc void @rec(ptr %1, i64 0) ret i32 0 } define fastcc void @rec(ptr %0, i64 %1) { -; MODULE-LABEL: define {{[^@]+}}@rec( -; MODULE-NEXT: [[TMP3:%.*]] = getelementptr i32, ptr [[TMP0:%.*]], i64 [[TMP1:%.*]] -; MODULE-NEXT: store i32 0, ptr [[TMP3]], align 4 -; MODULE-NEXT: call fastcc void @rec(ptr [[TMP0]], i64 0) -; MODULE-NEXT: ret void -; -; CGSCC-LABEL: define {{[^@]+}}@rec( -; CGSCC-NEXT: [[TMP3:%.*]] = getelementptr i32, ptr [[TMP0:%.*]], i64 [[TMP1:%.*]] -; CGSCC-NEXT: store i32 0, ptr [[TMP3]], align 4 -; CGSCC-NEXT: call fastcc void @rec(ptr [[TMP0]], i64 0) -; CGSCC-NEXT: ret void -; ; CHECK-LABEL: define {{[^@]+}}@rec( ; CHECK-NEXT: [[TMP3:%.*]] = getelementptr i32, ptr [[TMP0:%.*]], i64 [[TMP1:%.*]] ; CHECK-NEXT: store i32 0, ptr [[TMP3]], align 4 @@ -50,3 +28,37 @@ define fastcc void @rec(ptr %0, i64 %1) { !0 = !{i32 7, !"openmp", i32 50} !1 = !{i32 7, !"openmp-device", i32 50} +; MODULE-LABEL: define {{[^@]+}}@nblist +; MODULE-SAME: () #[[ATTR0:[0-9]+]] { +; MODULE-NEXT: [[TMP1:%.*]] = call ptr @alloc() +; MODULE-NEXT: call fastcc void @rec.internalized(ptr [[TMP1]], i64 0) +; MODULE-NEXT: ret i32 0 +; +; +; MODULE-LABEL: define {{[^@]+}}@rec.internalized +; MODULE-SAME: (ptr nocapture writeonly [[TMP0:%.*]], i64 [[TMP1:%.*]]) #[[ATTR1:[0-9]+]] { +; MODULE-NEXT: call fastcc void @rec.internalized(ptr nocapture writeonly [[TMP0]], i64 0) #[[ATTR2:[0-9]+]] +; MODULE-NEXT: ret void +; +; +; MODULE-LABEL: define {{[^@]+}}@rec +; MODULE-SAME: (ptr [[TMP0:%.*]], i64 [[TMP1:%.*]]) { +; MODULE-NEXT: [[TMP3:%.*]] = getelementptr i32, ptr [[TMP0]], i64 [[TMP1]] +; MODULE-NEXT: store i32 0, ptr [[TMP3]], align 4 +; MODULE-NEXT: call fastcc void @rec(ptr [[TMP0]], i64 0) +; MODULE-NEXT: ret void +; +; +; CGSCC-LABEL: define {{[^@]+}}@nblist() { +; CGSCC-NEXT: [[TMP1:%.*]] = call ptr @alloc() +; CGSCC-NEXT: call fastcc void @rec(ptr [[TMP1]], i64 0) +; CGSCC-NEXT: ret i32 0 +; +; +; CGSCC-LABEL: define {{[^@]+}}@rec +; CGSCC-SAME: (ptr [[TMP0:%.*]], i64 [[TMP1:%.*]]) { +; CGSCC-NEXT: [[TMP3:%.*]] = getelementptr i32, ptr [[TMP0]], i64 [[TMP1]] +; CGSCC-NEXT: store i32 0, ptr [[TMP3]], align 4 +; CGSCC-NEXT: call fastcc void @rec(ptr [[TMP0]], i64 0) +; CGSCC-NEXT: ret void +; diff --git a/llvm/test/Transforms/OpenMP/remove_noinline_attributes.ll b/llvm/test/Transforms/OpenMP/remove_noinline_attributes.ll index ecf34f3..8da4e45 100644 --- a/llvm/test/Transforms/OpenMP/remove_noinline_attributes.ll +++ b/llvm/test/Transforms/OpenMP/remove_noinline_attributes.ll @@ -6,7 +6,7 @@ declare void @unknown() ; __kmpc functions define void @__kmpc_noinline() noinline nounwind { ; CHECK: Function Attrs: nounwind -; CHECK-LABEL: define {{[^@]+}}@__kmpc_noinline( +; CHECK-LABEL: @__kmpc_noinline( ; CHECK-NEXT: call void @unknown() ; CHECK-NEXT: ret void ; @@ -16,7 +16,7 @@ define void @__kmpc_noinline() noinline nounwind { ; omp_X functions define void @omp_noinline() noinline nounwind { ; CHECK: Function Attrs: nounwind -; CHECK-LABEL: define {{[^@]+}}@omp_noinline( +; CHECK-LABEL: @omp_noinline( ; CHECK-NEXT: call void @unknown() ; CHECK-NEXT: ret void ; @@ -26,7 +26,7 @@ define void @omp_noinline() noinline nounwind { ; _OMP namespace define void @_ZN4ompx_noinline() noinline nounwind { ; CHECK: Function Attrs: nounwind -; CHECK-LABEL: define {{[^@]+}}@_ZN4ompx_noinline( +; CHECK-LABEL: @_ZN4ompx_noinline( ; CHECK-NEXT: call void @unknown() ; CHECK-NEXT: ret void ; @@ -38,7 +38,7 @@ define void @_ZN4ompx_noinline() noinline nounwind { define void @__kmpc_noinline_optnone() noinline optnone nounwind { ; CHECK: Function Attrs: noinline nounwind optnone -; CHECK-LABEL: define {{[^@]+}}@__kmpc_noinline_optnone( +; CHECK-LABEL: @__kmpc_noinline_optnone( ; CHECK-NEXT: call void @unknown() ; CHECK-NEXT: ret void ; @@ -47,7 +47,7 @@ define void @__kmpc_noinline_optnone() noinline optnone nounwind { } define void @omp_noinline_optnone() noinline optnone nounwind { ; CHECK: Function Attrs: noinline nounwind optnone -; CHECK-LABEL: define {{[^@]+}}@omp_noinline_optnone( +; CHECK-LABEL: @omp_noinline_optnone( ; CHECK-NEXT: call void @unknown() ; CHECK-NEXT: ret void ; @@ -57,7 +57,7 @@ define void @omp_noinline_optnone() noinline optnone nounwind { ; _OMP namespace define void @_ZN4ompx_noinline_optnone() noinline optnone nounwind { ; CHECK: Function Attrs: noinline nounwind optnone -; CHECK-LABEL: define {{[^@]+}}@_ZN4ompx_noinline_optnone( +; CHECK-LABEL: @_ZN4ompx_noinline_optnone( ; CHECK-NEXT: call void @unknown() ; CHECK-NEXT: ret void ; @@ -66,7 +66,7 @@ define void @_ZN4ompx_noinline_optnone() noinline optnone nounwind { } define void @a___kmpc_noinline() noinline nounwind { ; CHECK: Function Attrs: noinline nounwind -; CHECK-LABEL: define {{[^@]+}}@a___kmpc_noinline( +; CHECK-LABEL: @a___kmpc_noinline( ; CHECK-NEXT: call void @unknown() ; CHECK-NEXT: ret void ; @@ -75,7 +75,7 @@ define void @a___kmpc_noinline() noinline nounwind { } define void @a_omp_noinline() noinline nounwind { ; CHECK: Function Attrs: noinline nounwind -; CHECK-LABEL: define {{[^@]+}}@a_omp_noinline( +; CHECK-LABEL: @a_omp_noinline( ; CHECK-NEXT: call void @unknown() ; CHECK-NEXT: ret void ; @@ -84,7 +84,7 @@ define void @a_omp_noinline() noinline nounwind { } define void @a__ZN4ompx_noinline() noinline nounwind { ; CHECK: Function Attrs: noinline nounwind -; CHECK-LABEL: define {{[^@]+}}@a__ZN4ompx_noinline( +; CHECK-LABEL: @a__ZN4ompx_noinline( ; CHECK-NEXT: call void @unknown() ; CHECK-NEXT: ret void ; -- 2.7.4