Author: Johannes Doerfert Date: 2023-07-14T13:53:37-07:00 New Revision: b9f1df7a04d7a3169623e437597aa4b32d99d8b3
URL: https://github.com/llvm/llvm-project/commit/b9f1df7a04d7a3169623e437597aa4b32d99d8b3 DIFF: https://github.com/llvm/llvm-project/commit/b9f1df7a04d7a3169623e437597aa4b32d99d8b3.diff LOG: Revert "[UTC] Add fallback support for specific metadata, and check their defs" This reverts commit 8a3fdf7b908978625e9a7e57fbb443e4e6f98976 as it is broken. See https://github.com/llvm/llvm-project/issues/63746. Effectively fixes: https://github.com/llvm/llvm-project/issues/63746 Added: Modified: clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.expected clang/test/utils/update_cc_test_checks/check-globals.test clang/test/utils/update_cc_test_checks/generated-funcs.test llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.globals.expected llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.globals.expected llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.globals.expected llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.globals.expected llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected llvm/test/tools/UpdateTestChecks/update_test_checks/various_ir_values.test llvm/utils/UpdateTestChecks/common.py llvm/utils/update_cc_test_checks.py llvm/utils/update_test_checks.py Removed: clang/test/utils/update_cc_test_checks/Inputs/annotations.c clang/test/utils/update_cc_test_checks/Inputs/annotations.c.expected clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.all.expected clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.all.expected clang/test/utils/update_cc_test_checks/annotations.test llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.noglobals.expected llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.transitiveglobals.expected ################################################################################ diff --git a/clang/test/utils/update_cc_test_checks/Inputs/annotations.c b/clang/test/utils/update_cc_test_checks/Inputs/annotations.c deleted file mode 100644 index f09b0f788e9b12..00000000000000 --- a/clang/test/utils/update_cc_test_checks/Inputs/annotations.c +++ /dev/null @@ -1,6 +0,0 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fblocks -ftrivial-auto-var-init=zero %s -emit-llvm -o - | FileCheck %s - -int foo() { - int x = x + 1; - return x; -} diff --git a/clang/test/utils/update_cc_test_checks/Inputs/annotations.c.expected b/clang/test/utils/update_cc_test_checks/Inputs/annotations.c.expected deleted file mode 100644 index b4eb9b0091900c..00000000000000 --- a/clang/test/utils/update_cc_test_checks/Inputs/annotations.c.expected +++ /dev/null @@ -1,21 +0,0 @@ -// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 3 -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fblocks -ftrivial-auto-var-init=zero %s -emit-llvm -o - | FileCheck %s - -// CHECK-LABEL: define dso_local i32 @foo -// CHECK-SAME: () #[[ATTR0:[0-9]+]] { -// CHECK-NEXT: entry: -// CHECK-NEXT: [[X:%.*]] = alloca i32, align 4 -// CHECK-NEXT: store i32 0, ptr [[X]], align 4, !annotation [[META2:![0-9]+]] -// CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[X]], align 4 -// CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[TMP0]], 1 -// CHECK-NEXT: store i32 [[ADD]], ptr [[X]], align 4 -// CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr [[X]], align 4 -// CHECK-NEXT: ret i32 [[TMP1]] -// -int foo() { - int x = x + 1; - return x; -} -//. -// CHECK: [[META2]] = !{!"auto-init"} -//. diff --git a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.all.expected b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.all.expected deleted file mode 100644 index 66959811660d65..00000000000000 --- a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.all.expected +++ /dev/null @@ -1,259 +0,0 @@ -// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals --include-generated-funcs -// Check that the CHECK lines are generated for clang-generated functions -// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fopenmp %s -emit-llvm -o - | FileCheck --check-prefix=OMP %s -// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu %s -emit-llvm -o - | FileCheck --check-prefix=NOOMP %s - -const int size = 1024 * 1024 * 32; - -double A[size]; - -void foo(void); - -int main(void) { - int i = 0; - -#pragma omp parallel for - for (i = 0; i < size; ++i) { - A[i] = 0.0; - } - - foo(); - - return 0; -} - -void foo(void) { - int i = 0; - -#pragma omp parallel for - for (i = 0; i < size; ++i) { - A[i] = 1.0; - } -} -//. -// OMP: @[[GLOB0:[0-9]+]] = private unnamed_addr constant [23 x i8] c" -// OMP: @[[GLOB1:[0-9]+]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 514, i32 0, i32 22, ptr @[[GLOB0]] }, align 8 -// OMP: @[[GLOB2:[0-9]+]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 0, i32 22, ptr @[[GLOB0]] }, align 8 -//. -// OMP: @A = global [33554432 x double] zeroinitializer, align 16 -// OMP: @size = constant i32 33554432, align 4 -//. -// NOOMP: @size = constant i32 33554432, align 4 -// NOOMP: @A = global [33554432 x double] zeroinitializer, align 16 -//. -// OMP-LABEL: @main( -// OMP-NEXT: entry: -// OMP-NEXT: [[RETVAL:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[I:%.*]] = alloca i32, align 4 -// OMP-NEXT: store i32 0, ptr [[RETVAL]], align 4 -// OMP-NEXT: store i32 0, ptr [[I]], align 4 -// OMP-NEXT: call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr @[[GLOB2]], i32 0, ptr @main.omp_outlined) -// OMP-NEXT: call void @foo() -// OMP-NEXT: ret i32 0 -// -// -// OMP-LABEL: @main.omp_outlined( -// OMP-NEXT: entry: -// OMP-NEXT: [[DOTGLOBAL_TID__ADDR:%.*]] = alloca ptr, align 8 -// OMP-NEXT: [[DOTBOUND_TID__ADDR:%.*]] = alloca ptr, align 8 -// OMP-NEXT: [[DOTOMP_IV:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[TMP:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[DOTOMP_LB:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[DOTOMP_UB:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[DOTOMP_STRIDE:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[DOTOMP_IS_LAST:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[I:%.*]] = alloca i32, align 4 -// OMP-NEXT: store ptr [[DOTGLOBAL_TID_:%.*]], ptr [[DOTGLOBAL_TID__ADDR]], align 8 -// OMP-NEXT: store ptr [[DOTBOUND_TID_:%.*]], ptr [[DOTBOUND_TID__ADDR]], align 8 -// OMP-NEXT: store i32 0, ptr [[DOTOMP_LB]], align 4 -// OMP-NEXT: store i32 33554431, ptr [[DOTOMP_UB]], align 4 -// OMP-NEXT: store i32 1, ptr [[DOTOMP_STRIDE]], align 4 -// OMP-NEXT: store i32 0, ptr [[DOTOMP_IS_LAST]], align 4 -// OMP-NEXT: [[TMP0:%.*]] = load ptr, ptr [[DOTGLOBAL_TID__ADDR]], align 8 -// OMP-NEXT: [[TMP1:%.*]] = load i32, ptr [[TMP0]], align 4 -// OMP-NEXT: call void @__kmpc_for_static_init_4(ptr @[[GLOB1]], i32 [[TMP1]], i32 34, ptr [[DOTOMP_IS_LAST]], ptr [[DOTOMP_LB]], ptr [[DOTOMP_UB]], ptr [[DOTOMP_STRIDE]], i32 1, i32 1) -// OMP-NEXT: [[TMP2:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4 -// OMP-NEXT: [[CMP:%.*]] = icmp sgt i32 [[TMP2]], 33554431 -// OMP-NEXT: br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[COND_FALSE:%.*]] -// OMP: cond.true: -// OMP-NEXT: br label [[COND_END:%.*]] -// OMP: cond.false: -// OMP-NEXT: [[TMP3:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4 -// OMP-NEXT: br label [[COND_END]] -// OMP: cond.end: -// OMP-NEXT: [[COND:%.*]] = phi i32 [ 33554431, [[COND_TRUE]] ], [ [[TMP3]], [[COND_FALSE]] ] -// OMP-NEXT: store i32 [[COND]], ptr [[DOTOMP_UB]], align 4 -// OMP-NEXT: [[TMP4:%.*]] = load i32, ptr [[DOTOMP_LB]], align 4 -// OMP-NEXT: store i32 [[TMP4]], ptr [[DOTOMP_IV]], align 4 -// OMP-NEXT: br label [[OMP_INNER_FOR_COND:%.*]] -// OMP: omp.inner.for.cond: -// OMP-NEXT: [[TMP5:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4 -// OMP-NEXT: [[TMP6:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4 -// OMP-NEXT: [[CMP1:%.*]] = icmp sle i32 [[TMP5]], [[TMP6]] -// OMP-NEXT: br i1 [[CMP1]], label [[OMP_INNER_FOR_BODY:%.*]], label [[OMP_INNER_FOR_END:%.*]] -// OMP: omp.inner.for.body: -// OMP-NEXT: [[TMP7:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4 -// OMP-NEXT: [[MUL:%.*]] = mul nsw i32 [[TMP7]], 1 -// OMP-NEXT: [[ADD:%.*]] = add nsw i32 0, [[MUL]] -// OMP-NEXT: store i32 [[ADD]], ptr [[I]], align 4 -// OMP-NEXT: [[TMP8:%.*]] = load i32, ptr [[I]], align 4 -// OMP-NEXT: [[IDXPROM:%.*]] = sext i32 [[TMP8]] to i64 -// OMP-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [33554432 x double], ptr @A, i64 0, i64 [[IDXPROM]] -// OMP-NEXT: store double 0.000000e+00, ptr [[ARRAYIDX]], align 8 -// OMP-NEXT: br label [[OMP_BODY_CONTINUE:%.*]] -// OMP: omp.body.continue: -// OMP-NEXT: br label [[OMP_INNER_FOR_INC:%.*]] -// OMP: omp.inner.for.inc: -// OMP-NEXT: [[TMP9:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4 -// OMP-NEXT: [[ADD2:%.*]] = add nsw i32 [[TMP9]], 1 -// OMP-NEXT: store i32 [[ADD2]], ptr [[DOTOMP_IV]], align 4 -// OMP-NEXT: br label [[OMP_INNER_FOR_COND]] -// OMP: omp.inner.for.end: -// OMP-NEXT: br label [[OMP_LOOP_EXIT:%.*]] -// OMP: omp.loop.exit: -// OMP-NEXT: call void @__kmpc_for_static_fini(ptr @[[GLOB1]], i32 [[TMP1]]) -// OMP-NEXT: ret void -// -// -// OMP-LABEL: @foo( -// OMP-NEXT: entry: -// OMP-NEXT: [[I:%.*]] = alloca i32, align 4 -// OMP-NEXT: store i32 0, ptr [[I]], align 4 -// OMP-NEXT: call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr @[[GLOB2]], i32 0, ptr @foo.omp_outlined) -// OMP-NEXT: ret void -// -// -// OMP-LABEL: @foo.omp_outlined( -// OMP-NEXT: entry: -// OMP-NEXT: [[DOTGLOBAL_TID__ADDR:%.*]] = alloca ptr, align 8 -// OMP-NEXT: [[DOTBOUND_TID__ADDR:%.*]] = alloca ptr, align 8 -// OMP-NEXT: [[DOTOMP_IV:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[TMP:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[DOTOMP_LB:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[DOTOMP_UB:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[DOTOMP_STRIDE:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[DOTOMP_IS_LAST:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[I:%.*]] = alloca i32, align 4 -// OMP-NEXT: store ptr [[DOTGLOBAL_TID_:%.*]], ptr [[DOTGLOBAL_TID__ADDR]], align 8 -// OMP-NEXT: store ptr [[DOTBOUND_TID_:%.*]], ptr [[DOTBOUND_TID__ADDR]], align 8 -// OMP-NEXT: store i32 0, ptr [[DOTOMP_LB]], align 4 -// OMP-NEXT: store i32 33554431, ptr [[DOTOMP_UB]], align 4 -// OMP-NEXT: store i32 1, ptr [[DOTOMP_STRIDE]], align 4 -// OMP-NEXT: store i32 0, ptr [[DOTOMP_IS_LAST]], align 4 -// OMP-NEXT: [[TMP0:%.*]] = load ptr, ptr [[DOTGLOBAL_TID__ADDR]], align 8 -// OMP-NEXT: [[TMP1:%.*]] = load i32, ptr [[TMP0]], align 4 -// OMP-NEXT: call void @__kmpc_for_static_init_4(ptr @[[GLOB1]], i32 [[TMP1]], i32 34, ptr [[DOTOMP_IS_LAST]], ptr [[DOTOMP_LB]], ptr [[DOTOMP_UB]], ptr [[DOTOMP_STRIDE]], i32 1, i32 1) -// OMP-NEXT: [[TMP2:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4 -// OMP-NEXT: [[CMP:%.*]] = icmp sgt i32 [[TMP2]], 33554431 -// OMP-NEXT: br i1 [[CMP]], label [[COND_TRUE:%.*]], label [[COND_FALSE:%.*]] -// OMP: cond.true: -// OMP-NEXT: br label [[COND_END:%.*]] -// OMP: cond.false: -// OMP-NEXT: [[TMP3:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4 -// OMP-NEXT: br label [[COND_END]] -// OMP: cond.end: -// OMP-NEXT: [[COND:%.*]] = phi i32 [ 33554431, [[COND_TRUE]] ], [ [[TMP3]], [[COND_FALSE]] ] -// OMP-NEXT: store i32 [[COND]], ptr [[DOTOMP_UB]], align 4 -// OMP-NEXT: [[TMP4:%.*]] = load i32, ptr [[DOTOMP_LB]], align 4 -// OMP-NEXT: store i32 [[TMP4]], ptr [[DOTOMP_IV]], align 4 -// OMP-NEXT: br label [[OMP_INNER_FOR_COND:%.*]] -// OMP: omp.inner.for.cond: -// OMP-NEXT: [[TMP5:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4 -// OMP-NEXT: [[TMP6:%.*]] = load i32, ptr [[DOTOMP_UB]], align 4 -// OMP-NEXT: [[CMP1:%.*]] = icmp sle i32 [[TMP5]], [[TMP6]] -// OMP-NEXT: br i1 [[CMP1]], label [[OMP_INNER_FOR_BODY:%.*]], label [[OMP_INNER_FOR_END:%.*]] -// OMP: omp.inner.for.body: -// OMP-NEXT: [[TMP7:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4 -// OMP-NEXT: [[MUL:%.*]] = mul nsw i32 [[TMP7]], 1 -// OMP-NEXT: [[ADD:%.*]] = add nsw i32 0, [[MUL]] -// OMP-NEXT: store i32 [[ADD]], ptr [[I]], align 4 -// OMP-NEXT: [[TMP8:%.*]] = load i32, ptr [[I]], align 4 -// OMP-NEXT: [[IDXPROM:%.*]] = sext i32 [[TMP8]] to i64 -// OMP-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [33554432 x double], ptr @A, i64 0, i64 [[IDXPROM]] -// OMP-NEXT: store double 1.000000e+00, ptr [[ARRAYIDX]], align 8 -// OMP-NEXT: br label [[OMP_BODY_CONTINUE:%.*]] -// OMP: omp.body.continue: -// OMP-NEXT: br label [[OMP_INNER_FOR_INC:%.*]] -// OMP: omp.inner.for.inc: -// OMP-NEXT: [[TMP9:%.*]] = load i32, ptr [[DOTOMP_IV]], align 4 -// OMP-NEXT: [[ADD2:%.*]] = add nsw i32 [[TMP9]], 1 -// OMP-NEXT: store i32 [[ADD2]], ptr [[DOTOMP_IV]], align 4 -// OMP-NEXT: br label [[OMP_INNER_FOR_COND]] -// OMP: omp.inner.for.end: -// OMP-NEXT: br label [[OMP_LOOP_EXIT:%.*]] -// OMP: omp.loop.exit: -// OMP-NEXT: call void @__kmpc_for_static_fini(ptr @[[GLOB1]], i32 [[TMP1]]) -// OMP-NEXT: ret void -// -// -// NOOMP-LABEL: @main( -// NOOMP-NEXT: entry: -// NOOMP-NEXT: [[RETVAL:%.*]] = alloca i32, align 4 -// NOOMP-NEXT: [[I:%.*]] = alloca i32, align 4 -// NOOMP-NEXT: store i32 0, ptr [[RETVAL]], align 4 -// NOOMP-NEXT: store i32 0, ptr [[I]], align 4 -// NOOMP-NEXT: store i32 0, ptr [[I]], align 4 -// NOOMP-NEXT: br label [[FOR_COND:%.*]] -// NOOMP: for.cond: -// NOOMP-NEXT: [[TMP0:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP0]], 33554432 -// NOOMP-NEXT: br i1 [[CMP]], label [[FOR_BODY:%.*]], label [[FOR_END:%.*]] -// NOOMP: for.body: -// NOOMP-NEXT: [[TMP1:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[IDXPROM:%.*]] = sext i32 [[TMP1]] to i64 -// NOOMP-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [33554432 x double], ptr @A, i64 0, i64 [[IDXPROM]] -// NOOMP-NEXT: store double 0.000000e+00, ptr [[ARRAYIDX]], align 8 -// NOOMP-NEXT: br label [[FOR_INC:%.*]] -// NOOMP: for.inc: -// NOOMP-NEXT: [[TMP2:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[INC:%.*]] = add nsw i32 [[TMP2]], 1 -// NOOMP-NEXT: store i32 [[INC]], ptr [[I]], align 4 -// NOOMP-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP2:![0-9]+]] -// NOOMP: for.end: -// NOOMP-NEXT: call void @foo() -// NOOMP-NEXT: ret i32 0 -// -// -// NOOMP-LABEL: @foo( -// NOOMP-NEXT: entry: -// NOOMP-NEXT: [[I:%.*]] = alloca i32, align 4 -// NOOMP-NEXT: store i32 0, ptr [[I]], align 4 -// NOOMP-NEXT: store i32 0, ptr [[I]], align 4 -// NOOMP-NEXT: br label [[FOR_COND:%.*]] -// NOOMP: for.cond: -// NOOMP-NEXT: [[TMP0:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP0]], 33554432 -// NOOMP-NEXT: br i1 [[CMP]], label [[FOR_BODY:%.*]], label [[FOR_END:%.*]] -// NOOMP: for.body: -// NOOMP-NEXT: [[TMP1:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[IDXPROM:%.*]] = sext i32 [[TMP1]] to i64 -// NOOMP-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [33554432 x double], ptr @A, i64 0, i64 [[IDXPROM]] -// NOOMP-NEXT: store double 1.000000e+00, ptr [[ARRAYIDX]], align 8 -// NOOMP-NEXT: br label [[FOR_INC:%.*]] -// NOOMP: for.inc: -// NOOMP-NEXT: [[TMP2:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[INC:%.*]] = add nsw i32 [[TMP2]], 1 -// NOOMP-NEXT: store i32 [[INC]], ptr [[I]], align 4 -// NOOMP-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP4:![0-9]+]] -// NOOMP: for.end: -// NOOMP-NEXT: ret void -// -//. -// OMP: attributes #[[ATTR0:[0-9]+]] = { noinline nounwind optnone "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" } -// OMP: attributes #[[ATTR1:[0-9]+]] = { noinline norecurse nounwind optnone "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" } -// OMP: attributes #[[ATTR2:[0-9]+]] = { nounwind } -//. -// NOOMP: attributes #[[ATTR0:[0-9]+]] = { noinline nounwind optnone "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" } -//. -// OMP: [[META0:![0-9]+]] = !{i32 1, !"wchar_size", i32 4} -// OMP: [[META1:![0-9]+]] = !{i32 7, !"openmp", i32 51} -// OMP: [[META2:![0-9]+]] = !{!"clang version {{.*}}"} -// OMP: [[META3:![0-9]+]] = !{[[META4:![0-9]+]]} -// OMP: [[META4]] = !{i64 2, i64 -1, i64 -1, i1 true} -//. -// NOOMP: [[META0:![0-9]+]] = !{i32 1, !"wchar_size", i32 4} -// NOOMP: [[META1:![0-9]+]] = !{!"clang version {{.*}}"} -// NOOMP: [[LOOP2]] = distinct !{[[LOOP2]], [[META3:![0-9]+]]} -// NOOMP: [[META3]] = !{!"llvm.loop.mustprogress"} -// NOOMP: [[LOOP4]] = distinct !{[[LOOP4]], [[META3]]} -//. diff --git a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected index 896d4ede3c053b..2479cb6e694326 100644 --- a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected +++ b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected @@ -1,4 +1,4 @@ -// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals smart --include-generated-funcs +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --include-generated-funcs // Check that the CHECK lines are generated for clang-generated functions // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fopenmp %s -emit-llvm -o - | FileCheck --check-prefix=OMP %s // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu %s -emit-llvm -o - | FileCheck --check-prefix=NOOMP %s @@ -227,8 +227,3 @@ void foo(void) { // NOOMP: for.end: // NOOMP-NEXT: ret void // -//. -// NOOMP: [[LOOP2]] = distinct !{[[LOOP2]], [[META3:![0-9]+]]} -// NOOMP: [[META3]] = !{!"llvm.loop.mustprogress"} -// NOOMP: [[LOOP4]] = distinct !{[[LOOP4]], [[META3]]} -//. diff --git a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.all.expected b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.all.expected deleted file mode 100644 index 219e5ceee6c784..00000000000000 --- a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.all.expected +++ /dev/null @@ -1,130 +0,0 @@ -// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals -// Check that the CHECK lines are generated for clang-generated functions -// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fopenmp %s -emit-llvm -o - | FileCheck --check-prefix=OMP %s -// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu %s -emit-llvm -o - | FileCheck --check-prefix=NOOMP %s - -const int size = 1024 * 1024 * 32; - -double A[size]; - -void foo(void); - -//. -// OMP: @[[GLOB0:[0-9]+]] = private unnamed_addr constant [23 x i8] c" -// OMP: @[[GLOB1:[0-9]+]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 514, i32 0, i32 22, ptr @[[GLOB0]] }, align 8 -// OMP: @[[GLOB2:[0-9]+]] = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 0, i32 22, ptr @[[GLOB0]] }, align 8 -//. -// OMP: @A = global [33554432 x double] zeroinitializer, align 16 -// OMP: @size = constant i32 33554432, align 4 -//. -// NOOMP: @size = constant i32 33554432, align 4 -// NOOMP: @A = global [33554432 x double] zeroinitializer, align 16 -//. -// OMP-LABEL: @main( -// OMP-NEXT: entry: -// OMP-NEXT: [[RETVAL:%.*]] = alloca i32, align 4 -// OMP-NEXT: [[I:%.*]] = alloca i32, align 4 -// OMP-NEXT: store i32 0, ptr [[RETVAL]], align 4 -// OMP-NEXT: store i32 0, ptr [[I]], align 4 -// OMP-NEXT: call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr @[[GLOB2]], i32 0, ptr @main.omp_outlined) -// OMP-NEXT: call void @foo() -// OMP-NEXT: ret i32 0 -// -// NOOMP-LABEL: @main( -// NOOMP-NEXT: entry: -// NOOMP-NEXT: [[RETVAL:%.*]] = alloca i32, align 4 -// NOOMP-NEXT: [[I:%.*]] = alloca i32, align 4 -// NOOMP-NEXT: store i32 0, ptr [[RETVAL]], align 4 -// NOOMP-NEXT: store i32 0, ptr [[I]], align 4 -// NOOMP-NEXT: store i32 0, ptr [[I]], align 4 -// NOOMP-NEXT: br label [[FOR_COND:%.*]] -// NOOMP: for.cond: -// NOOMP-NEXT: [[TMP0:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP0]], 33554432 -// NOOMP-NEXT: br i1 [[CMP]], label [[FOR_BODY:%.*]], label [[FOR_END:%.*]] -// NOOMP: for.body: -// NOOMP-NEXT: [[TMP1:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[IDXPROM:%.*]] = sext i32 [[TMP1]] to i64 -// NOOMP-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [33554432 x double], ptr @A, i64 0, i64 [[IDXPROM]] -// NOOMP-NEXT: store double 0.000000e+00, ptr [[ARRAYIDX]], align 8 -// NOOMP-NEXT: br label [[FOR_INC:%.*]] -// NOOMP: for.inc: -// NOOMP-NEXT: [[TMP2:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[INC:%.*]] = add nsw i32 [[TMP2]], 1 -// NOOMP-NEXT: store i32 [[INC]], ptr [[I]], align 4 -// NOOMP-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP2:![0-9]+]] -// NOOMP: for.end: -// NOOMP-NEXT: call void @foo() -// NOOMP-NEXT: ret i32 0 -// -int main(void) { - int i = 0; - -#pragma omp parallel for - for (i = 0; i < size; ++i) { - A[i] = 0.0; - } - - foo(); - - return 0; -} - -// OMP-LABEL: @foo( -// OMP-NEXT: entry: -// OMP-NEXT: [[I:%.*]] = alloca i32, align 4 -// OMP-NEXT: store i32 0, ptr [[I]], align 4 -// OMP-NEXT: call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr @[[GLOB2]], i32 0, ptr @foo.omp_outlined) -// OMP-NEXT: ret void -// -// NOOMP-LABEL: @foo( -// NOOMP-NEXT: entry: -// NOOMP-NEXT: [[I:%.*]] = alloca i32, align 4 -// NOOMP-NEXT: store i32 0, ptr [[I]], align 4 -// NOOMP-NEXT: store i32 0, ptr [[I]], align 4 -// NOOMP-NEXT: br label [[FOR_COND:%.*]] -// NOOMP: for.cond: -// NOOMP-NEXT: [[TMP0:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP0]], 33554432 -// NOOMP-NEXT: br i1 [[CMP]], label [[FOR_BODY:%.*]], label [[FOR_END:%.*]] -// NOOMP: for.body: -// NOOMP-NEXT: [[TMP1:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[IDXPROM:%.*]] = sext i32 [[TMP1]] to i64 -// NOOMP-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [33554432 x double], ptr @A, i64 0, i64 [[IDXPROM]] -// NOOMP-NEXT: store double 1.000000e+00, ptr [[ARRAYIDX]], align 8 -// NOOMP-NEXT: br label [[FOR_INC:%.*]] -// NOOMP: for.inc: -// NOOMP-NEXT: [[TMP2:%.*]] = load i32, ptr [[I]], align 4 -// NOOMP-NEXT: [[INC:%.*]] = add nsw i32 [[TMP2]], 1 -// NOOMP-NEXT: store i32 [[INC]], ptr [[I]], align 4 -// NOOMP-NEXT: br label [[FOR_COND]], !llvm.loop [[LOOP4:![0-9]+]] -// NOOMP: for.end: -// NOOMP-NEXT: ret void -// -void foo(void) { - int i = 0; - -#pragma omp parallel for - for (i = 0; i < size; ++i) { - A[i] = 1.0; - } -} -//. -// OMP: attributes #[[ATTR0:[0-9]+]] = { noinline nounwind optnone "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" } -// OMP: attributes #[[ATTR1:[0-9]+]] = { noinline norecurse nounwind optnone "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" } -// OMP: attributes #[[ATTR2:[0-9]+]] = { nounwind } -//. -// NOOMP: attributes #[[ATTR0:[0-9]+]] = { noinline nounwind optnone "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" } -//. -// OMP: [[META0:![0-9]+]] = !{i32 1, !"wchar_size", i32 4} -// OMP: [[META1:![0-9]+]] = !{i32 7, !"openmp", i32 51} -// OMP: [[META2:![0-9]+]] = !{!"clang version {{.*}}"} -// OMP: [[META3:![0-9]+]] = !{[[META4:![0-9]+]]} -// OMP: [[META4]] = !{i64 2, i64 -1, i64 -1, i1 true} -//. -// NOOMP: [[META0:![0-9]+]] = !{i32 1, !"wchar_size", i32 4} -// NOOMP: [[META1:![0-9]+]] = !{!"clang version {{.*}}"} -// NOOMP: [[LOOP2]] = distinct !{[[LOOP2]], [[META3:![0-9]+]]} -// NOOMP: [[META3]] = !{!"llvm.loop.mustprogress"} -// NOOMP: [[LOOP4]] = distinct !{[[LOOP4]], [[META3]]} -//. diff --git a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.expected b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.expected index 28c28e5c7a86cf..7f5f1c10fcf404 100644 --- a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.expected +++ b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.expected @@ -1,4 +1,4 @@ -// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --check-globals smart +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // Check that the CHECK lines are generated for clang-generated functions // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fopenmp %s -emit-llvm -o - | FileCheck --check-prefix=OMP %s // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu %s -emit-llvm -o - | FileCheck --check-prefix=NOOMP %s @@ -98,8 +98,3 @@ void foo(void) { A[i] = 1.0; } } -//. -// NOOMP: [[LOOP2]] = distinct !{[[LOOP2]], [[META3:![0-9]+]]} -// NOOMP: [[META3]] = !{!"llvm.loop.mustprogress"} -// NOOMP: [[LOOP4]] = distinct !{[[LOOP4]], [[META3]]} -//. diff --git a/clang/test/utils/update_cc_test_checks/annotations.test b/clang/test/utils/update_cc_test_checks/annotations.test deleted file mode 100644 index 1ef38e1746993d..00000000000000 --- a/clang/test/utils/update_cc_test_checks/annotations.test +++ /dev/null @@ -1,4 +0,0 @@ -## Test that !annotation metadata is matched correctly - -# RUN: cp %S/Inputs/annotations.c %t.c && %update_cc_test_checks --version 3 %t.c -# RUN: diff -u %S/Inputs/annotations.c.expected %t.c diff --git a/clang/test/utils/update_cc_test_checks/check-globals.test b/clang/test/utils/update_cc_test_checks/check-globals.test index 5f527fa1223223..9a2e0cca4c4c83 100644 --- a/clang/test/utils/update_cc_test_checks/check-globals.test +++ b/clang/test/utils/update_cc_test_checks/check-globals.test @@ -1,26 +1,26 @@ RUN: rm -rf %t && mkdir %t -# Check --check-globals all in normal mode and in --include-generated-funcs mode. +# Check --check-globals in normal mode and in --include-generated-funcs mode. RUN: cp %S/Inputs/check-globals.c %t/norm.c -RUN: %update_cc_test_checks %t/norm.c --check-globals all +RUN: %update_cc_test_checks %t/norm.c --check-globals RUN: FileCheck %s --input-file=%t/norm.c --match-full-lines -strict-whitespace \ RUN: -check-prefixes=BOTH,NRM RUN: cp %S/Inputs/check-globals.c %t/igf.c -RUN: %update_cc_test_checks %t/igf.c --check-globals all --include-generated-funcs +RUN: %update_cc_test_checks %t/igf.c --check-globals --include-generated-funcs RUN: FileCheck %s --input-file=%t/igf.c --match-full-lines -strict-whitespace \ RUN: -check-prefixes=BOTH,IGF # Check that repeating doesn't change it, such as duplicating '//.' occurrences. RUN: cp %t/norm.c %t/norm-again.c -RUN: %update_cc_test_checks %t/norm-again.c --check-globals all +RUN: %update_cc_test_checks %t/norm-again.c --check-globals RUN: diff -u %t/norm.c %t/norm-again.c RUN: rm %t/norm-again.c RUN: cp %t/igf.c %t/igf-again.c -RUN: %update_cc_test_checks %t/igf-again.c --check-globals all \ +RUN: %update_cc_test_checks %t/igf-again.c --check-globals \ RUN: --include-generated-funcs RUN: diff -u %t/igf.c %t/igf-again.c RUN: rm %t/igf-again.c @@ -74,8 +74,8 @@ BOTH-EMPTY: BOTH-NEXT://. BOTH-NEXT:// CHECK: attributes {{.*}} BOTH-NEXT://. - BOTH-NEXT:// CHECK: {{\[\[META0:!\[0-9\]\+\]\]}} = {{.*}} - BOTH-NEXT:// CHECK: {{\[\[META1:!\[0-9\]\+\]\]}} = {{.*}} + BOTH-NEXT:// CHECK: !0 = {{.*}} + BOTH-NEXT:// CHECK: !1 = {{.*}} BOTH-NEXT://. BOTH-NOT:{{.}} diff --git a/clang/test/utils/update_cc_test_checks/generated-funcs.test b/clang/test/utils/update_cc_test_checks/generated-funcs.test index ce06db5a417ec1..691969caf9fb6c 100644 --- a/clang/test/utils/update_cc_test_checks/generated-funcs.test +++ b/clang/test/utils/update_cc_test_checks/generated-funcs.test @@ -1,8 +1,8 @@ ## Test that CHECK lines are generated for clang-generated functions -# RUN: cp %S/Inputs/generated-funcs.c %t-generated.c && %update_cc_test_checks --include-generated-funcs --check-globals smart %t-generated.c +# RUN: cp %S/Inputs/generated-funcs.c %t-generated.c && %update_cc_test_checks --include-generated-funcs %t-generated.c # RUN: diff -u %S/Inputs/generated-funcs.c.generated.expected %t-generated.c -# RUN: cp %S/Inputs/generated-funcs.c %t-no-generated.c && %update_cc_test_checks --check-globals smart %t-no-generated.c +# RUN: cp %S/Inputs/generated-funcs.c %t-no-generated.c && %update_cc_test_checks %t-no-generated.c # RUN: diff -u %S/Inputs/generated-funcs.c.no-generated.expected %t-no-generated.c ## Check that re-running update_cc_test_checks doesn't change the output @@ -10,15 +10,3 @@ # RUN: diff -u %S/Inputs/generated-funcs.c.generated.expected %t-generated.c # RUN: %update_cc_test_checks %t-no-generated.c # RUN: diff -u %S/Inputs/generated-funcs.c.no-generated.expected %t-no-generated.c - -## Same as above for --check-globals all -# RUN: cp %S/Inputs/generated-funcs.c %t-generated.c && %update_cc_test_checks --include-generated-funcs --check-globals all %t-generated.c -# RUN: diff -u %S/Inputs/generated-funcs.c.generated.all.expected %t-generated.c -# RUN: cp %S/Inputs/generated-funcs.c %t-no-generated.c && %update_cc_test_checks --check-globals all %t-no-generated.c -# RUN: diff -u %S/Inputs/generated-funcs.c.no-generated.all.expected %t-no-generated.c - -## Check that re-running update_cc_test_checks doesn't change the output -# RUN: %update_cc_test_checks --include-generated-funcs %t-generated.c -# RUN: diff -u %S/Inputs/generated-funcs.c.generated.all.expected %t-generated.c -# RUN: %update_cc_test_checks %t-no-generated.c -# RUN: diff -u %S/Inputs/generated-funcs.c.no-generated.all.expected %t-no-generated.c diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.globals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.globals.expected index 2008bb215257ea..1fee1aa8dfc582 100644 --- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.globals.expected +++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.globals.expected @@ -36,7 +36,7 @@ exit: declare void @llvm.trap() noreturn cold declare void @_Z10sideeffectv() ;. -; CHECK: @G = external dso_local global i32, align 4 +; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = external dso_local global i32, align 4 ;. ; CHECK-LABEL: @foo( ; CHECK-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0 diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.globals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.globals.expected index deeda70e0c98b6..417fe2ac5cb4c9 100644 --- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.globals.expected +++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.globals.expected @@ -6,7 +6,7 @@ target triple = "x86_64-apple-macosx10.14.0" @G = external dso_local global i32, align 4 ;. -; CHECK: @G = external dso_local global i32, align 4 +; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = external dso_local global i32, align 4 ;. define void @foo(i32) { ; CHECK-LABEL: @foo( diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.globals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.globals.expected index 35c0abb51023c2..7bc04792948805 100644 --- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.globals.expected +++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.globals.expected @@ -37,7 +37,7 @@ exit: declare void @llvm.trap() noreturn cold declare void @_Z10sideeffectv() ;. -; REUSE: @G = external dso_local global i32, align 4 +; REUSE: @[[G:[a-zA-Z0-9_$"\\.-]+]] = external dso_local global i32, align 4 ;. ; REUSE-LABEL: @foo( ; REUSE-NEXT: [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0 diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.globals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.globals.expected index f5750c2f2d288a..0049c2ab6149f8 100644 --- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.globals.expected +++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.globals.expected @@ -7,7 +7,7 @@ target triple = "x86_64-apple-macosx10.14.0" @G = external dso_local global i32, align 4 ;. -; REUSE: @G = external dso_local global i32, align 4 +; REUSE: @[[G:[a-zA-Z0-9_$"\\.-]+]] = external dso_local global i32, align 4 ;. define void @foo(i32) { ; REUSE-LABEL: @foo( diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected index a867c34090123d..d71dc3e3410718 100644 --- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected +++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.globals.expected @@ -250,67 +250,67 @@ attributes #3 = { nounwind } ; CHECK: attributes #[[ATTR2:[0-9]+]] = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } ; CHECK: attributes #[[ATTR3]] = { nounwind } ;. -; CHECK: [[META0:![0-9]+]] = distinct !DICompileUnit(language: DW_LANG_C99, file: [[META1:![0-9]+]], producer: "clang version {{.*}}", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: [[META2:![0-9]+]], splitDebugInlining: false, nameTableKind: None) -; CHECK: [[META1]] = !DIFile(filename: "various_ir_values.c", directory: {{.*}}) -; CHECK: [[META2]] = !{} +; CHECK: [[META0:![0-9]+]] = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 11.0.0 (g...@github.com:llvm/llvm-project.git 1d5da8cd30fce1c0a2c2fa6ba656dbfaa36192c8)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None) +; CHECK: [[META1:![0-9]+]] = !DIFile(filename: "various_ir_values.c", directory: "/data/build/llvm-project") +; CHECK: [[META2:![0-9]+]] = !{} ; CHECK: [[META3:![0-9]+]] = !{i32 7, !"Dwarf Version", i32 4} ; CHECK: [[META4:![0-9]+]] = !{i32 2, !"Debug Info Version", i32 3} ; CHECK: [[META5:![0-9]+]] = !{i32 1, !"wchar_size", i32 4} -; CHECK: [[META6:![0-9]+]] = !{!"clang version {{.*}}"} -; CHECK: [[DBG7]] = distinct !DISubprogram(name: "foo", scope: [[META1]], file: [[META1]], line: 1, type: [[META8:![0-9]+]], scopeLine: 1, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: [[META0]], retainedNodes: [[META12:![0-9]+]]) -; CHECK: [[META8]] = !DISubroutineType(types: [[META9:![0-9]+]]) -; CHECK: [[META9]] = !{null, [[META10:![0-9]+]]} -; CHECK: [[META10]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: [[META11:![0-9]+]], size: 64) -; CHECK: [[META11]] = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -; CHECK: [[META12]] = !{[[META13]], [[META14]]} -; CHECK: [[META13]] = !DILocalVariable(name: "A", arg: 1, scope: [[DBG7]], file: [[META1]], line: 1, type: [[META10]]) -; CHECK: [[META14]] = !DILocalVariable(name: "i", scope: [[META15:![0-9]+]], file: [[META1]], line: 3, type: [[META11]]) -; CHECK: [[META15]] = distinct !DILexicalBlock(scope: [[DBG7]], file: [[META1]], line: 3, column: 3) +; CHECK: [[META6:![0-9]+]] = !{!"clang version 11.0.0 (g...@github.com:llvm/llvm-project.git 1d5da8cd30fce1c0a2c2fa6ba656dbfaa36192c8)"} +; CHECK: [[DBG7]] = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !8, scopeLine: 1, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !12) +; CHECK: [[META8:![0-9]+]] = !DISubroutineType(types: !9) +; CHECK: [[META9:![0-9]+]] = !{null, !10} +; CHECK: [[META10:![0-9]+]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !11, size: 64) +; CHECK: [[META11:![0-9]+]] = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +; CHECK: [[META12:![0-9]+]] = !{!13, !14} +; CHECK: [[META13]] = !DILocalVariable(name: "A", arg: 1, scope: !7, file: !1, line: 1, type: !10) +; CHECK: [[META14]] = !DILocalVariable(name: "i", scope: !15, file: !1, line: 3, type: !11) +; CHECK: [[META15:![0-9]+]] = distinct !DILexicalBlock(scope: !7, file: !1, line: 3, column: 3) ; CHECK: [[DIASSIGNID16]] = distinct !DIAssignID() -; CHECK: [[DBG17]] = !DILocation(line: 1, column: 15, scope: [[DBG7]]) -; CHECK: [[TBAA18]] = !{[[META19:![0-9]+]], [[META19]], i64 0} -; CHECK: [[META19]] = !{!"any pointer", [[META20:![0-9]+]], i64 0} -; CHECK: [[META20]] = !{!"omnipotent char", [[META21:![0-9]+]], i64 0} -; CHECK: [[META21]] = !{!"Simple C/C++ TBAA"} -; CHECK: [[DBG22]] = !DILocation(line: 3, column: 8, scope: [[META15]]) -; CHECK: [[DBG23]] = !DILocation(line: 3, column: 12, scope: [[META15]]) -; CHECK: [[TBAA24]] = !{[[META25:![0-9]+]], [[META25]], i64 0} -; CHECK: [[META25]] = !{!"int", [[META20]], i64 0} -; CHECK: [[DBG26]] = !DILocation(line: 3, column: 19, scope: [[META27:![0-9]+]]) -; CHECK: [[META27]] = distinct !DILexicalBlock(scope: [[META15]], file: [[META1]], line: 3, column: 3) -; CHECK: [[DBG28]] = !DILocation(line: 3, column: 24, scope: [[META27]]) -; CHECK: [[DBG29]] = !DILocation(line: 3, column: 23, scope: [[META27]]) -; CHECK: [[DBG30]] = !DILocation(line: 3, column: 21, scope: [[META27]]) -; CHECK: [[DBG31]] = !DILocation(line: 3, column: 3, scope: [[META15]]) +; CHECK: [[DBG17]] = !DILocation(line: 1, column: 15, scope: !7) +; CHECK: [[TBAA18]] = !{!19, !19, i64 0} +; CHECK: [[META19:![0-9]+]] = !{!"any pointer", !20, i64 0} +; CHECK: [[META20:![0-9]+]] = !{!"omnipotent char", !21, i64 0} +; CHECK: [[META21:![0-9]+]] = !{!"Simple C/C++ TBAA"} +; CHECK: [[DBG22]] = !DILocation(line: 3, column: 8, scope: !15) +; CHECK: [[DBG23]] = !DILocation(line: 3, column: 12, scope: !15) +; CHECK: [[TBAA24]] = !{!25, !25, i64 0} +; CHECK: [[META25:![0-9]+]] = !{!"int", !20, i64 0} +; CHECK: [[DBG26]] = !DILocation(line: 3, column: 19, scope: !27) +; CHECK: [[META27:![0-9]+]] = distinct !DILexicalBlock(scope: !15, file: !1, line: 3, column: 3) +; CHECK: [[DBG28]] = !DILocation(line: 3, column: 24, scope: !27) +; CHECK: [[DBG29]] = !DILocation(line: 3, column: 23, scope: !27) +; CHECK: [[DBG30]] = !DILocation(line: 3, column: 21, scope: !27) +; CHECK: [[DBG31]] = !DILocation(line: 3, column: 3, scope: !15) ; CHECK: [[PROF32]] = !{!"branch_weights", i32 1, i32 1048575} -; CHECK: [[DBG33]] = !DILocation(line: 3, column: 3, scope: [[META27]]) -; CHECK: [[DBG34]] = !DILocation(line: 4, column: 5, scope: [[META27]]) -; CHECK: [[DBG35]] = !DILocation(line: 4, column: 7, scope: [[META27]]) -; CHECK: [[DBG36]] = !DILocation(line: 4, column: 10, scope: [[META27]]) -; CHECK: [[DBG37]] = !DILocation(line: 3, column: 27, scope: [[META27]]) -; CHECK: [[LOOP38]] = distinct !{[[LOOP38]], [[DBG31]], [[META39:![0-9]+]]} -; CHECK: [[META39]] = !DILocation(line: 4, column: 12, scope: [[META15]]) -; CHECK: [[DBG40]] = !DILocation(line: 5, column: 1, scope: [[DBG7]]) -; CHECK: [[DBG41]] = distinct !DISubprogram(name: "bar", scope: [[META1]], file: [[META1]], line: 7, type: [[META8]], scopeLine: 7, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: [[META0]], retainedNodes: [[META42:![0-9]+]]) -; CHECK: [[META42]] = !{[[META43]], [[META44]]} -; CHECK: [[META43]] = !DILocalVariable(name: "A", arg: 1, scope: [[DBG41]], file: [[META1]], line: 7, type: [[META10]]) -; CHECK: [[META44]] = !DILocalVariable(name: "i", scope: [[META45:![0-9]+]], file: [[META1]], line: 9, type: [[META11]]) -; CHECK: [[META45]] = distinct !DILexicalBlock(scope: [[DBG41]], file: [[META1]], line: 9, column: 3) -; CHECK: [[DBG46]] = !DILocation(line: 7, column: 15, scope: [[DBG41]]) -; CHECK: [[DBG47]] = !DILocation(line: 9, column: 8, scope: [[META45]]) -; CHECK: [[DBG48]] = !DILocation(line: 9, column: 12, scope: [[META45]]) -; CHECK: [[DBG49]] = !DILocation(line: 9, column: 19, scope: [[META50:![0-9]+]]) -; CHECK: [[META50]] = distinct !DILexicalBlock(scope: [[META45]], file: [[META1]], line: 9, column: 3) -; CHECK: [[DBG51]] = !DILocation(line: 9, column: 24, scope: [[META50]]) -; CHECK: [[DBG52]] = !DILocation(line: 9, column: 23, scope: [[META50]]) -; CHECK: [[DBG53]] = !DILocation(line: 9, column: 21, scope: [[META50]]) -; CHECK: [[DBG54]] = !DILocation(line: 9, column: 3, scope: [[META45]]) -; CHECK: [[DBG55]] = !DILocation(line: 9, column: 3, scope: [[META50]]) -; CHECK: [[DBG56]] = !DILocation(line: 10, column: 5, scope: [[META50]]) -; CHECK: [[DBG57]] = !DILocation(line: 10, column: 7, scope: [[META50]]) -; CHECK: [[DBG58]] = !DILocation(line: 10, column: 10, scope: [[META50]]) -; CHECK: [[DBG59]] = !DILocation(line: 9, column: 27, scope: [[META50]]) -; CHECK: [[LOOP60]] = distinct !{[[LOOP60]], [[DBG54]], [[META61:![0-9]+]]} -; CHECK: [[META61]] = !DILocation(line: 10, column: 12, scope: [[META45]]) -; CHECK: [[DBG62]] = !DILocation(line: 11, column: 1, scope: [[DBG41]]) +; CHECK: [[DBG33]] = !DILocation(line: 3, column: 3, scope: !27) +; CHECK: [[DBG34]] = !DILocation(line: 4, column: 5, scope: !27) +; CHECK: [[DBG35]] = !DILocation(line: 4, column: 7, scope: !27) +; CHECK: [[DBG36]] = !DILocation(line: 4, column: 10, scope: !27) +; CHECK: [[DBG37]] = !DILocation(line: 3, column: 27, scope: !27) +; CHECK: [[LOOP38]] = distinct !{!38, !31, !39} +; CHECK: [[META39:![0-9]+]] = !DILocation(line: 4, column: 12, scope: !15) +; CHECK: [[DBG40]] = !DILocation(line: 5, column: 1, scope: !7) +; CHECK: [[DBG41]] = distinct !DISubprogram(name: "bar", scope: !1, file: !1, line: 7, type: !8, scopeLine: 7, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !42) +; CHECK: [[META42:![0-9]+]] = !{!43, !44} +; CHECK: [[META43]] = !DILocalVariable(name: "A", arg: 1, scope: !41, file: !1, line: 7, type: !10) +; CHECK: [[META44]] = !DILocalVariable(name: "i", scope: !45, file: !1, line: 9, type: !11) +; CHECK: [[META45:![0-9]+]] = distinct !DILexicalBlock(scope: !41, file: !1, line: 9, column: 3) +; CHECK: [[DBG46]] = !DILocation(line: 7, column: 15, scope: !41) +; CHECK: [[DBG47]] = !DILocation(line: 9, column: 8, scope: !45) +; CHECK: [[DBG48]] = !DILocation(line: 9, column: 12, scope: !45) +; CHECK: [[DBG49]] = !DILocation(line: 9, column: 19, scope: !50) +; CHECK: [[META50:![0-9]+]] = distinct !DILexicalBlock(scope: !45, file: !1, line: 9, column: 3) +; CHECK: [[DBG51]] = !DILocation(line: 9, column: 24, scope: !50) +; CHECK: [[DBG52]] = !DILocation(line: 9, column: 23, scope: !50) +; CHECK: [[DBG53]] = !DILocation(line: 9, column: 21, scope: !50) +; CHECK: [[DBG54]] = !DILocation(line: 9, column: 3, scope: !45) +; CHECK: [[DBG55]] = !DILocation(line: 9, column: 3, scope: !50) +; CHECK: [[DBG56]] = !DILocation(line: 10, column: 5, scope: !50) +; CHECK: [[DBG57]] = !DILocation(line: 10, column: 7, scope: !50) +; CHECK: [[DBG58]] = !DILocation(line: 10, column: 10, scope: !50) +; CHECK: [[DBG59]] = !DILocation(line: 9, column: 27, scope: !50) +; CHECK: [[LOOP60]] = distinct !{!60, !54, !61} +; CHECK: [[META61:![0-9]+]] = !DILocation(line: 10, column: 12, scope: !45) +; CHECK: [[DBG62]] = !DILocation(line: 11, column: 1, scope: !41) ;. diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.noglobals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.noglobals.expected deleted file mode 100644 index 1ecb8b5dc53309..00000000000000 --- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.noglobals.expected +++ /dev/null @@ -1,244 +0,0 @@ -; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; Just run it through opt, no passes needed. -; RUN: opt < %s -S | FileCheck %s - -; ModuleID = 'various_ir_values.c' -source_filename = "various_ir_values.c" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" - -; Function Attrs: nounwind uwtable -define dso_local void @foo(ptr %A) #0 !dbg !7 { -; CHECK-LABEL: @foo( -; CHECK-NEXT: entry: -; CHECK-NEXT: [[A_ADDR:%.*]] = alloca ptr, align 8, !DIAssignID [[DIASSIGNID16:![0-9]+]] -; CHECK-NEXT: [[I:%.*]] = alloca i32, align 4 -; CHECK-NEXT: call void @llvm.dbg.assign(metadata i1 undef, metadata [[META13:![0-9]+]], metadata !DIExpression(), metadata [[DIASSIGNID16]], metadata ptr [[A_ADDR]], metadata !DIExpression()), !dbg [[DBG17:![0-9]+]] -; CHECK-NEXT: store ptr [[A:%.*]], ptr [[A_ADDR]], align 8, !tbaa [[TBAA18:![0-9]+]] -; CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr [[A_ADDR]], metadata [[META13]], metadata !DIExpression()), !dbg [[DBG17]] -; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 4, ptr [[I]]) #[[ATTR3:[0-9]+]], !dbg [[DBG22:![0-9]+]] -; CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr [[I]], metadata [[META14:![0-9]+]], metadata !DIExpression()), !dbg [[DBG23:![0-9]+]] -; CHECK-NEXT: store i32 0, ptr [[I]], align 4, !dbg [[DBG23]], !tbaa [[TBAA24:![0-9]+]] -; CHECK-NEXT: br label [[FOR_COND:%.*]], !dbg [[DBG22]] -; CHECK: for.cond: -; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG26:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[A_ADDR]], align 8, !dbg [[DBG28:![0-9]+]], !tbaa [[TBAA18]] -; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[TMP1]], align 4, !dbg [[DBG29:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP0]], [[TMP2]], !dbg [[DBG30:![0-9]+]] -; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY:%.*]], label [[FOR_COND_CLEANUP:%.*]], !dbg [[DBG31:![0-9]+]], !prof [[PROF32:![0-9]+]] -; CHECK: for.cond.cleanup: -; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 4, ptr [[I]]) #[[ATTR3]], !dbg [[DBG33:![0-9]+]] -; CHECK-NEXT: br label [[FOR_END:%.*]] -; CHECK: for.body: -; CHECK-NEXT: [[TMP3:%.*]] = load ptr, ptr [[A_ADDR]], align 8, !dbg [[DBG34:![0-9]+]], !tbaa [[TBAA18]] -; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG35:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[IDXPROM:%.*]] = sext i32 [[TMP4]] to i64, !dbg [[DBG34]] -; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[TMP3]], i64 [[IDXPROM]], !dbg [[DBG34]] -; CHECK-NEXT: store i32 0, ptr [[ARRAYIDX]], align 4, !dbg [[DBG36:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: br label [[FOR_INC:%.*]], !dbg [[DBG34]] -; CHECK: for.inc: -; CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG37:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[INC:%.*]] = add nsw i32 [[TMP5]], 1, !dbg [[DBG37]] -; CHECK-NEXT: store i32 [[INC]], ptr [[I]], align 4, !dbg [[DBG37]], !tbaa [[TBAA24]] -; CHECK-NEXT: br label [[FOR_COND]], !dbg [[DBG33]], !llvm.loop [[LOOP38:![0-9]+]] -; CHECK: for.end: -; CHECK-NEXT: ret void, !dbg [[DBG40:![0-9]+]] -; -entry: - %A.addr = alloca ptr, align 8, !DIAssignID !62 - %i = alloca i32, align 4 - call void @llvm.dbg.assign(metadata i1 undef, metadata !13, metadata !DIExpression(), metadata !62, metadata ptr %A.addr, metadata !DIExpression()), !dbg !20 - store ptr %A, ptr %A.addr, align 8, !tbaa !16 - call void @llvm.dbg.declare(metadata ptr %A.addr, metadata !13, metadata !DIExpression()), !dbg !20 - call void @llvm.lifetime.start.p0(i64 4, ptr %i) #3, !dbg !21 - call void @llvm.dbg.declare(metadata ptr %i, metadata !14, metadata !DIExpression()), !dbg !22 - store i32 0, ptr %i, align 4, !dbg !22, !tbaa !23 - br label %for.cond, !dbg !21 - -for.cond: ; preds = %for.inc, %entry - %0 = load i32, ptr %i, align 4, !dbg !25, !tbaa !23 - %1 = load ptr, ptr %A.addr, align 8, !dbg !27, !tbaa !16 - %2 = load i32, ptr %1, align 4, !dbg !28, !tbaa !23 - %cmp = icmp slt i32 %0, %2, !dbg !29 - br i1 %cmp, label %for.body, label %for.cond.cleanup, !dbg !30, !prof !61 - -for.cond.cleanup: ; preds = %for.cond - call void @llvm.lifetime.end.p0(i64 4, ptr %i) #3, !dbg !31 - br label %for.end - -for.body: ; preds = %for.cond - %3 = load ptr, ptr %A.addr, align 8, !dbg !32, !tbaa !16 - %4 = load i32, ptr %i, align 4, !dbg !33, !tbaa !23 - %idxprom = sext i32 %4 to i64, !dbg !32 - %arrayidx = getelementptr inbounds i32, ptr %3, i64 %idxprom, !dbg !32 - store i32 0, ptr %arrayidx, align 4, !dbg !34, !tbaa !23 - br label %for.inc, !dbg !32 - -for.inc: ; preds = %for.body - %5 = load i32, ptr %i, align 4, !dbg !35, !tbaa !23 - %inc = add nsw i32 %5, 1, !dbg !35 - store i32 %inc, ptr %i, align 4, !dbg !35, !tbaa !23 - br label %for.cond, !dbg !31, !llvm.loop !36 - -for.end: ; preds = %for.cond.cleanup - ret void, !dbg !38 -} - -; Function Attrs: nounwind readnone speculatable willreturn -declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 - -; Function Attrs: argmemonly nounwind willreturn -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #2 - -; Function Attrs: argmemonly nounwind willreturn -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #2 - -; Function Attrs: nounwind uwtable -define dso_local void @bar(ptr %A) #0 !dbg !39 { -; CHECK-LABEL: @bar( -; CHECK-NEXT: entry: -; CHECK-NEXT: [[A_ADDR:%.*]] = alloca ptr, align 8 -; CHECK-NEXT: [[I:%.*]] = alloca i32, align 4 -; CHECK-NEXT: store ptr [[A:%.*]], ptr [[A_ADDR]], align 8, !tbaa [[TBAA18]] -; CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr [[A_ADDR]], metadata [[META43:![0-9]+]], metadata !DIExpression()), !dbg [[DBG46:![0-9]+]] -; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 4, ptr [[I]]) #[[ATTR3]], !dbg [[DBG47:![0-9]+]] -; CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr [[I]], metadata [[META44:![0-9]+]], metadata !DIExpression()), !dbg [[DBG48:![0-9]+]] -; CHECK-NEXT: store i32 0, ptr [[I]], align 4, !dbg [[DBG48]], !tbaa [[TBAA24]] -; CHECK-NEXT: br label [[FOR_COND:%.*]], !dbg [[DBG47]] -; CHECK: for.cond: -; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG49:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[A_ADDR]], align 8, !dbg [[DBG51:![0-9]+]], !tbaa [[TBAA18]] -; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[TMP1]], align 4, !dbg [[DBG52:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP0]], [[TMP2]], !dbg [[DBG53:![0-9]+]] -; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY:%.*]], label [[FOR_COND_CLEANUP:%.*]], !dbg [[DBG54:![0-9]+]] -; CHECK: for.cond.cleanup: -; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 4, ptr [[I]]) #[[ATTR3]], !dbg [[DBG55:![0-9]+]] -; CHECK-NEXT: br label [[FOR_END:%.*]] -; CHECK: for.body: -; CHECK-NEXT: [[TMP3:%.*]] = load ptr, ptr [[A_ADDR]], align 8, !dbg [[DBG56:![0-9]+]], !tbaa [[TBAA18]] -; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG57:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[IDXPROM:%.*]] = sext i32 [[TMP4]] to i64, !dbg [[DBG56]] -; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[TMP3]], i64 [[IDXPROM]], !dbg [[DBG56]] -; CHECK-NEXT: store i32 0, ptr [[ARRAYIDX]], align 4, !dbg [[DBG58:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: br label [[FOR_INC:%.*]], !dbg [[DBG56]] -; CHECK: for.inc: -; CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG59:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[INC:%.*]] = add nsw i32 [[TMP5]], 1, !dbg [[DBG59]] -; CHECK-NEXT: store i32 [[INC]], ptr [[I]], align 4, !dbg [[DBG59]], !tbaa [[TBAA24]] -; CHECK-NEXT: br label [[FOR_COND]], !dbg [[DBG55]], !llvm.loop [[LOOP60:![0-9]+]] -; CHECK: for.end: -; CHECK-NEXT: ret void, !dbg [[DBG62:![0-9]+]] -; -entry: - %A.addr = alloca ptr, align 8 - %i = alloca i32, align 4 - store ptr %A, ptr %A.addr, align 8, !tbaa !16 - call void @llvm.dbg.declare(metadata ptr %A.addr, metadata !41, metadata !DIExpression()), !dbg !44 - call void @llvm.lifetime.start.p0(i64 4, ptr %i) #3, !dbg !45 - call void @llvm.dbg.declare(metadata ptr %i, metadata !42, metadata !DIExpression()), !dbg !46 - store i32 0, ptr %i, align 4, !dbg !46, !tbaa !23 - br label %for.cond, !dbg !45 - -for.cond: ; preds = %for.inc, %entry - %0 = load i32, ptr %i, align 4, !dbg !47, !tbaa !23 - %1 = load ptr, ptr %A.addr, align 8, !dbg !49, !tbaa !16 - %2 = load i32, ptr %1, align 4, !dbg !50, !tbaa !23 - %cmp = icmp slt i32 %0, %2, !dbg !51 - br i1 %cmp, label %for.body, label %for.cond.cleanup, !dbg !52 - -for.cond.cleanup: ; preds = %for.cond - call void @llvm.lifetime.end.p0(i64 4, ptr %i) #3, !dbg !53 - br label %for.end - -for.body: ; preds = %for.cond - %3 = load ptr, ptr %A.addr, align 8, !dbg !54, !tbaa !16 - %4 = load i32, ptr %i, align 4, !dbg !55, !tbaa !23 - %idxprom = sext i32 %4 to i64, !dbg !54 - %arrayidx = getelementptr inbounds i32, ptr %3, i64 %idxprom, !dbg !54 - store i32 0, ptr %arrayidx, align 4, !dbg !56, !tbaa !23 - br label %for.inc, !dbg !54 - -for.inc: ; preds = %for.body - %5 = load i32, ptr %i, align 4, !dbg !57, !tbaa !23 - %inc = add nsw i32 %5, 1, !dbg !57 - store i32 %inc, ptr %i, align 4, !dbg !57, !tbaa !23 - br label %for.cond, !dbg !53, !llvm.loop !58 - -for.end: ; preds = %for.cond.cleanup - ret void, !dbg !60 -} - -declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) - -attributes #0 = { nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "denormal-fp-math"="ieee,ieee" "denormal-fp-math-f32"="ieee,ieee" "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" } -attributes #1 = { nounwind readnone speculatable willreturn } -attributes #2 = { argmemonly nounwind willreturn } -attributes #3 = { nounwind } - -!llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!3, !4, !5} -!llvm.ident = !{!6} - -!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 11.0.0 (g...@github.com:llvm/llvm-project.git 1d5da8cd30fce1c0a2c2fa6ba656dbfaa36192c8)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None) -!1 = !DIFile(filename: "various_ir_values.c", directory: "/data/build/llvm-project") -!2 = !{} -!3 = !{i32 7, !"Dwarf Version", i32 4} -!4 = !{i32 2, !"Debug Info Version", i32 3} -!5 = !{i32 1, !"wchar_size", i32 4} -!6 = !{!"clang version 11.0.0 (g...@github.com:llvm/llvm-project.git 1d5da8cd30fce1c0a2c2fa6ba656dbfaa36192c8)"} -!7 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !8, scopeLine: 1, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !12) -!8 = !DISubroutineType(types: !9) -!9 = !{null, !10} -!10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !11, size: 64) -!11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -!12 = !{!13, !14} -!13 = !DILocalVariable(name: "A", arg: 1, scope: !7, file: !1, line: 1, type: !10) -!14 = !DILocalVariable(name: "i", scope: !15, file: !1, line: 3, type: !11) -!15 = distinct !DILexicalBlock(scope: !7, file: !1, line: 3, column: 3) -!16 = !{!17, !17, i64 0} -!17 = !{!"any pointer", !18, i64 0} -!18 = !{!"omnipotent char", !19, i64 0} -!19 = !{!"Simple C/C++ TBAA"} -!20 = !DILocation(line: 1, column: 15, scope: !7) -!21 = !DILocation(line: 3, column: 8, scope: !15) -!22 = !DILocation(line: 3, column: 12, scope: !15) -!23 = !{!24, !24, i64 0} -!24 = !{!"int", !18, i64 0} -!25 = !DILocation(line: 3, column: 19, scope: !26) -!26 = distinct !DILexicalBlock(scope: !15, file: !1, line: 3, column: 3) -!27 = !DILocation(line: 3, column: 24, scope: !26) -!28 = !DILocation(line: 3, column: 23, scope: !26) -!29 = !DILocation(line: 3, column: 21, scope: !26) -!30 = !DILocation(line: 3, column: 3, scope: !15) -!31 = !DILocation(line: 3, column: 3, scope: !26) -!32 = !DILocation(line: 4, column: 5, scope: !26) -!33 = !DILocation(line: 4, column: 7, scope: !26) -!34 = !DILocation(line: 4, column: 10, scope: !26) -!35 = !DILocation(line: 3, column: 27, scope: !26) -!36 = distinct !{!36, !30, !37} -!37 = !DILocation(line: 4, column: 12, scope: !15) -!38 = !DILocation(line: 5, column: 1, scope: !7) -!39 = distinct !DISubprogram(name: "bar", scope: !1, file: !1, line: 7, type: !8, scopeLine: 7, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !40) -!40 = !{!41, !42} -!41 = !DILocalVariable(name: "A", arg: 1, scope: !39, file: !1, line: 7, type: !10) -!42 = !DILocalVariable(name: "i", scope: !43, file: !1, line: 9, type: !11) -!43 = distinct !DILexicalBlock(scope: !39, file: !1, line: 9, column: 3) -!44 = !DILocation(line: 7, column: 15, scope: !39) -!45 = !DILocation(line: 9, column: 8, scope: !43) -!46 = !DILocation(line: 9, column: 12, scope: !43) -!47 = !DILocation(line: 9, column: 19, scope: !48) -!48 = distinct !DILexicalBlock(scope: !43, file: !1, line: 9, column: 3) -!49 = !DILocation(line: 9, column: 24, scope: !48) -!50 = !DILocation(line: 9, column: 23, scope: !48) -!51 = !DILocation(line: 9, column: 21, scope: !48) -!52 = !DILocation(line: 9, column: 3, scope: !43) -!53 = !DILocation(line: 9, column: 3, scope: !48) -!54 = !DILocation(line: 10, column: 5, scope: !48) -!55 = !DILocation(line: 10, column: 7, scope: !48) -!56 = !DILocation(line: 10, column: 10, scope: !48) -!57 = !DILocation(line: 9, column: 27, scope: !48) -!58 = distinct !{!58, !52, !59} -!59 = !DILocation(line: 10, column: 12, scope: !43) -!60 = !DILocation(line: 11, column: 1, scope: !39) -!61 = !{!"branch_weights", i32 1, i32 1048575} -!62 = distinct !DIAssignID() diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.transitiveglobals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.transitiveglobals.expected deleted file mode 100644 index debe0911d91120..00000000000000 --- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.funcsig.transitiveglobals.expected +++ /dev/null @@ -1,305 +0,0 @@ -; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals smart -; Just run it through opt, no passes needed. -; RUN: opt < %s -S | FileCheck %s - -; ModuleID = 'various_ir_values.c' -source_filename = "various_ir_values.c" -target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" - -; Function Attrs: nounwind uwtable -define dso_local void @foo(ptr %A) #0 !dbg !7 { -; CHECK-LABEL: @foo( -; CHECK-NEXT: entry: -; CHECK-NEXT: [[A_ADDR:%.*]] = alloca ptr, align 8, !DIAssignID [[DIASSIGNID16:![0-9]+]] -; CHECK-NEXT: [[I:%.*]] = alloca i32, align 4 -; CHECK-NEXT: call void @llvm.dbg.assign(metadata i1 undef, metadata [[META13:![0-9]+]], metadata !DIExpression(), metadata [[DIASSIGNID16]], metadata ptr [[A_ADDR]], metadata !DIExpression()), !dbg [[DBG17:![0-9]+]] -; CHECK-NEXT: store ptr [[A:%.*]], ptr [[A_ADDR]], align 8, !tbaa [[TBAA18:![0-9]+]] -; CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr [[A_ADDR]], metadata [[META13]], metadata !DIExpression()), !dbg [[DBG17]] -; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 4, ptr [[I]]) #[[ATTR3:[0-9]+]], !dbg [[DBG22:![0-9]+]] -; CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr [[I]], metadata [[META14:![0-9]+]], metadata !DIExpression()), !dbg [[DBG23:![0-9]+]] -; CHECK-NEXT: store i32 0, ptr [[I]], align 4, !dbg [[DBG23]], !tbaa [[TBAA24:![0-9]+]] -; CHECK-NEXT: br label [[FOR_COND:%.*]], !dbg [[DBG22]] -; CHECK: for.cond: -; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG26:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[A_ADDR]], align 8, !dbg [[DBG28:![0-9]+]], !tbaa [[TBAA18]] -; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[TMP1]], align 4, !dbg [[DBG29:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP0]], [[TMP2]], !dbg [[DBG30:![0-9]+]] -; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY:%.*]], label [[FOR_COND_CLEANUP:%.*]], !dbg [[DBG31:![0-9]+]], !prof [[PROF32:![0-9]+]] -; CHECK: for.cond.cleanup: -; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 4, ptr [[I]]) #[[ATTR3]], !dbg [[DBG33:![0-9]+]] -; CHECK-NEXT: br label [[FOR_END:%.*]] -; CHECK: for.body: -; CHECK-NEXT: [[TMP3:%.*]] = load ptr, ptr [[A_ADDR]], align 8, !dbg [[DBG34:![0-9]+]], !tbaa [[TBAA18]] -; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG35:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[IDXPROM:%.*]] = sext i32 [[TMP4]] to i64, !dbg [[DBG34]] -; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[TMP3]], i64 [[IDXPROM]], !dbg [[DBG34]] -; CHECK-NEXT: store i32 0, ptr [[ARRAYIDX]], align 4, !dbg [[DBG36:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: br label [[FOR_INC:%.*]], !dbg [[DBG34]] -; CHECK: for.inc: -; CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG37:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[INC:%.*]] = add nsw i32 [[TMP5]], 1, !dbg [[DBG37]] -; CHECK-NEXT: store i32 [[INC]], ptr [[I]], align 4, !dbg [[DBG37]], !tbaa [[TBAA24]] -; CHECK-NEXT: br label [[FOR_COND]], !dbg [[DBG33]], !llvm.loop [[LOOP38:![0-9]+]] -; CHECK: for.end: -; CHECK-NEXT: ret void, !dbg [[DBG40:![0-9]+]] -; -entry: - %A.addr = alloca ptr, align 8, !DIAssignID !62 - %i = alloca i32, align 4 - call void @llvm.dbg.assign(metadata i1 undef, metadata !13, metadata !DIExpression(), metadata !62, metadata ptr %A.addr, metadata !DIExpression()), !dbg !20 - store ptr %A, ptr %A.addr, align 8, !tbaa !16 - call void @llvm.dbg.declare(metadata ptr %A.addr, metadata !13, metadata !DIExpression()), !dbg !20 - call void @llvm.lifetime.start.p0(i64 4, ptr %i) #3, !dbg !21 - call void @llvm.dbg.declare(metadata ptr %i, metadata !14, metadata !DIExpression()), !dbg !22 - store i32 0, ptr %i, align 4, !dbg !22, !tbaa !23 - br label %for.cond, !dbg !21 - -for.cond: ; preds = %for.inc, %entry - %0 = load i32, ptr %i, align 4, !dbg !25, !tbaa !23 - %1 = load ptr, ptr %A.addr, align 8, !dbg !27, !tbaa !16 - %2 = load i32, ptr %1, align 4, !dbg !28, !tbaa !23 - %cmp = icmp slt i32 %0, %2, !dbg !29 - br i1 %cmp, label %for.body, label %for.cond.cleanup, !dbg !30, !prof !61 - -for.cond.cleanup: ; preds = %for.cond - call void @llvm.lifetime.end.p0(i64 4, ptr %i) #3, !dbg !31 - br label %for.end - -for.body: ; preds = %for.cond - %3 = load ptr, ptr %A.addr, align 8, !dbg !32, !tbaa !16 - %4 = load i32, ptr %i, align 4, !dbg !33, !tbaa !23 - %idxprom = sext i32 %4 to i64, !dbg !32 - %arrayidx = getelementptr inbounds i32, ptr %3, i64 %idxprom, !dbg !32 - store i32 0, ptr %arrayidx, align 4, !dbg !34, !tbaa !23 - br label %for.inc, !dbg !32 - -for.inc: ; preds = %for.body - %5 = load i32, ptr %i, align 4, !dbg !35, !tbaa !23 - %inc = add nsw i32 %5, 1, !dbg !35 - store i32 %inc, ptr %i, align 4, !dbg !35, !tbaa !23 - br label %for.cond, !dbg !31, !llvm.loop !36 - -for.end: ; preds = %for.cond.cleanup - ret void, !dbg !38 -} - -; Function Attrs: nounwind readnone speculatable willreturn -declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 - -; Function Attrs: argmemonly nounwind willreturn -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #2 - -; Function Attrs: argmemonly nounwind willreturn -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #2 - -; Function Attrs: nounwind uwtable -define dso_local void @bar(ptr %A) #0 !dbg !39 { -; CHECK-LABEL: @bar( -; CHECK-NEXT: entry: -; CHECK-NEXT: [[A_ADDR:%.*]] = alloca ptr, align 8 -; CHECK-NEXT: [[I:%.*]] = alloca i32, align 4 -; CHECK-NEXT: store ptr [[A:%.*]], ptr [[A_ADDR]], align 8, !tbaa [[TBAA18]] -; CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr [[A_ADDR]], metadata [[META43:![0-9]+]], metadata !DIExpression()), !dbg [[DBG46:![0-9]+]] -; CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 4, ptr [[I]]) #[[ATTR3]], !dbg [[DBG47:![0-9]+]] -; CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr [[I]], metadata [[META44:![0-9]+]], metadata !DIExpression()), !dbg [[DBG48:![0-9]+]] -; CHECK-NEXT: store i32 0, ptr [[I]], align 4, !dbg [[DBG48]], !tbaa [[TBAA24]] -; CHECK-NEXT: br label [[FOR_COND:%.*]], !dbg [[DBG47]] -; CHECK: for.cond: -; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG49:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[A_ADDR]], align 8, !dbg [[DBG51:![0-9]+]], !tbaa [[TBAA18]] -; CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr [[TMP1]], align 4, !dbg [[DBG52:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[TMP0]], [[TMP2]], !dbg [[DBG53:![0-9]+]] -; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY:%.*]], label [[FOR_COND_CLEANUP:%.*]], !dbg [[DBG54:![0-9]+]] -; CHECK: for.cond.cleanup: -; CHECK-NEXT: call void @llvm.lifetime.end.p0(i64 4, ptr [[I]]) #[[ATTR3]], !dbg [[DBG55:![0-9]+]] -; CHECK-NEXT: br label [[FOR_END:%.*]] -; CHECK: for.body: -; CHECK-NEXT: [[TMP3:%.*]] = load ptr, ptr [[A_ADDR]], align 8, !dbg [[DBG56:![0-9]+]], !tbaa [[TBAA18]] -; CHECK-NEXT: [[TMP4:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG57:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[IDXPROM:%.*]] = sext i32 [[TMP4]] to i64, !dbg [[DBG56]] -; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[TMP3]], i64 [[IDXPROM]], !dbg [[DBG56]] -; CHECK-NEXT: store i32 0, ptr [[ARRAYIDX]], align 4, !dbg [[DBG58:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: br label [[FOR_INC:%.*]], !dbg [[DBG56]] -; CHECK: for.inc: -; CHECK-NEXT: [[TMP5:%.*]] = load i32, ptr [[I]], align 4, !dbg [[DBG59:![0-9]+]], !tbaa [[TBAA24]] -; CHECK-NEXT: [[INC:%.*]] = add nsw i32 [[TMP5]], 1, !dbg [[DBG59]] -; CHECK-NEXT: store i32 [[INC]], ptr [[I]], align 4, !dbg [[DBG59]], !tbaa [[TBAA24]] -; CHECK-NEXT: br label [[FOR_COND]], !dbg [[DBG55]], !llvm.loop [[LOOP60:![0-9]+]] -; CHECK: for.end: -; CHECK-NEXT: ret void, !dbg [[DBG62:![0-9]+]] -; -entry: - %A.addr = alloca ptr, align 8 - %i = alloca i32, align 4 - store ptr %A, ptr %A.addr, align 8, !tbaa !16 - call void @llvm.dbg.declare(metadata ptr %A.addr, metadata !41, metadata !DIExpression()), !dbg !44 - call void @llvm.lifetime.start.p0(i64 4, ptr %i) #3, !dbg !45 - call void @llvm.dbg.declare(metadata ptr %i, metadata !42, metadata !DIExpression()), !dbg !46 - store i32 0, ptr %i, align 4, !dbg !46, !tbaa !23 - br label %for.cond, !dbg !45 - -for.cond: ; preds = %for.inc, %entry - %0 = load i32, ptr %i, align 4, !dbg !47, !tbaa !23 - %1 = load ptr, ptr %A.addr, align 8, !dbg !49, !tbaa !16 - %2 = load i32, ptr %1, align 4, !dbg !50, !tbaa !23 - %cmp = icmp slt i32 %0, %2, !dbg !51 - br i1 %cmp, label %for.body, label %for.cond.cleanup, !dbg !52 - -for.cond.cleanup: ; preds = %for.cond - call void @llvm.lifetime.end.p0(i64 4, ptr %i) #3, !dbg !53 - br label %for.end - -for.body: ; preds = %for.cond - %3 = load ptr, ptr %A.addr, align 8, !dbg !54, !tbaa !16 - %4 = load i32, ptr %i, align 4, !dbg !55, !tbaa !23 - %idxprom = sext i32 %4 to i64, !dbg !54 - %arrayidx = getelementptr inbounds i32, ptr %3, i64 %idxprom, !dbg !54 - store i32 0, ptr %arrayidx, align 4, !dbg !56, !tbaa !23 - br label %for.inc, !dbg !54 - -for.inc: ; preds = %for.body - %5 = load i32, ptr %i, align 4, !dbg !57, !tbaa !23 - %inc = add nsw i32 %5, 1, !dbg !57 - store i32 %inc, ptr %i, align 4, !dbg !57, !tbaa !23 - br label %for.cond, !dbg !53, !llvm.loop !58 - -for.end: ; preds = %for.cond.cleanup - ret void, !dbg !60 -} - -declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) - -attributes #0 = { nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "denormal-fp-math"="ieee,ieee" "denormal-fp-math-f32"="ieee,ieee" "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" } -attributes #1 = { nounwind readnone speculatable willreturn } -attributes #2 = { argmemonly nounwind willreturn } -attributes #3 = { nounwind } - -!llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!3, !4, !5} -!llvm.ident = !{!6} - -!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 11.0.0 (g...@github.com:llvm/llvm-project.git 1d5da8cd30fce1c0a2c2fa6ba656dbfaa36192c8)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, splitDebugInlining: false, nameTableKind: None) -!1 = !DIFile(filename: "various_ir_values.c", directory: "/data/build/llvm-project") -!2 = !{} -!3 = !{i32 7, !"Dwarf Version", i32 4} -!4 = !{i32 2, !"Debug Info Version", i32 3} -!5 = !{i32 1, !"wchar_size", i32 4} -!6 = !{!"clang version 11.0.0 (g...@github.com:llvm/llvm-project.git 1d5da8cd30fce1c0a2c2fa6ba656dbfaa36192c8)"} -!7 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !8, scopeLine: 1, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !12) -!8 = !DISubroutineType(types: !9) -!9 = !{null, !10} -!10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !11, size: 64) -!11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -!12 = !{!13, !14} -!13 = !DILocalVariable(name: "A", arg: 1, scope: !7, file: !1, line: 1, type: !10) -!14 = !DILocalVariable(name: "i", scope: !15, file: !1, line: 3, type: !11) -!15 = distinct !DILexicalBlock(scope: !7, file: !1, line: 3, column: 3) -!16 = !{!17, !17, i64 0} -!17 = !{!"any pointer", !18, i64 0} -!18 = !{!"omnipotent char", !19, i64 0} -!19 = !{!"Simple C/C++ TBAA"} -!20 = !DILocation(line: 1, column: 15, scope: !7) -!21 = !DILocation(line: 3, column: 8, scope: !15) -!22 = !DILocation(line: 3, column: 12, scope: !15) -!23 = !{!24, !24, i64 0} -!24 = !{!"int", !18, i64 0} -!25 = !DILocation(line: 3, column: 19, scope: !26) -!26 = distinct !DILexicalBlock(scope: !15, file: !1, line: 3, column: 3) -!27 = !DILocation(line: 3, column: 24, scope: !26) -!28 = !DILocation(line: 3, column: 23, scope: !26) -!29 = !DILocation(line: 3, column: 21, scope: !26) -!30 = !DILocation(line: 3, column: 3, scope: !15) -!31 = !DILocation(line: 3, column: 3, scope: !26) -!32 = !DILocation(line: 4, column: 5, scope: !26) -!33 = !DILocation(line: 4, column: 7, scope: !26) -!34 = !DILocation(line: 4, column: 10, scope: !26) -!35 = !DILocation(line: 3, column: 27, scope: !26) -!36 = distinct !{!36, !30, !37} -!37 = !DILocation(line: 4, column: 12, scope: !15) -!38 = !DILocation(line: 5, column: 1, scope: !7) -!39 = distinct !DISubprogram(name: "bar", scope: !1, file: !1, line: 7, type: !8, scopeLine: 7, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !40) -!40 = !{!41, !42} -!41 = !DILocalVariable(name: "A", arg: 1, scope: !39, file: !1, line: 7, type: !10) -!42 = !DILocalVariable(name: "i", scope: !43, file: !1, line: 9, type: !11) -!43 = distinct !DILexicalBlock(scope: !39, file: !1, line: 9, column: 3) -!44 = !DILocation(line: 7, column: 15, scope: !39) -!45 = !DILocation(line: 9, column: 8, scope: !43) -!46 = !DILocation(line: 9, column: 12, scope: !43) -!47 = !DILocation(line: 9, column: 19, scope: !48) -!48 = distinct !DILexicalBlock(scope: !43, file: !1, line: 9, column: 3) -!49 = !DILocation(line: 9, column: 24, scope: !48) -!50 = !DILocation(line: 9, column: 23, scope: !48) -!51 = !DILocation(line: 9, column: 21, scope: !48) -!52 = !DILocation(line: 9, column: 3, scope: !43) -!53 = !DILocation(line: 9, column: 3, scope: !48) -!54 = !DILocation(line: 10, column: 5, scope: !48) -!55 = !DILocation(line: 10, column: 7, scope: !48) -!56 = !DILocation(line: 10, column: 10, scope: !48) -!57 = !DILocation(line: 9, column: 27, scope: !48) -!58 = distinct !{!58, !52, !59} -!59 = !DILocation(line: 10, column: 12, scope: !43) -!60 = !DILocation(line: 11, column: 1, scope: !39) -!61 = !{!"branch_weights", i32 1, i32 1048575} -!62 = distinct !DIAssignID() -;. -; CHECK: [[META0:![0-9]+]] = distinct !DICompileUnit(language: DW_LANG_C99, file: [[META1:![0-9]+]], producer: "clang version {{.*}}", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: [[META2:![0-9]+]], splitDebugInlining: false, nameTableKind: None) -; CHECK: [[META1]] = !DIFile(filename: "various_ir_values.c", directory: {{.*}}) -; CHECK: [[META2]] = !{} -; CHECK: [[META7:![0-9]+]] = distinct !DISubprogram(name: "foo", scope: [[META1]], file: [[META1]], line: 1, type: [[META8:![0-9]+]], scopeLine: 1, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: [[META0]], retainedNodes: [[META12:![0-9]+]]) -; CHECK: [[META8]] = !DISubroutineType(types: [[META9:![0-9]+]]) -; CHECK: [[META9]] = !{null, [[META10:![0-9]+]]} -; CHECK: [[META10]] = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: [[META11:![0-9]+]], size: 64) -; CHECK: [[META11]] = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) -; CHECK: [[META12]] = !{[[META13]], [[META14]]} -; CHECK: [[META13]] = !DILocalVariable(name: "A", arg: 1, scope: [[META7]], file: [[META1]], line: 1, type: [[META10]]) -; CHECK: [[META14]] = !DILocalVariable(name: "i", scope: [[META15:![0-9]+]], file: [[META1]], line: 3, type: [[META11]]) -; CHECK: [[META15]] = distinct !DILexicalBlock(scope: [[META7]], file: [[META1]], line: 3, column: 3) -; CHECK: [[DIASSIGNID16]] = distinct !DIAssignID() -; CHECK: [[DBG17]] = !DILocation(line: 1, column: 15, scope: [[META7]]) -; CHECK: [[TBAA18]] = !{[[META19:![0-9]+]], [[META19]], i64 0} -; CHECK: [[META19]] = !{!"any pointer", [[META20:![0-9]+]], i64 0} -; CHECK: [[META20]] = !{!"omnipotent char", [[META21:![0-9]+]], i64 0} -; CHECK: [[META21]] = !{!"Simple C/C++ TBAA"} -; CHECK: [[DBG22]] = !DILocation(line: 3, column: 8, scope: [[META15]]) -; CHECK: [[DBG23]] = !DILocation(line: 3, column: 12, scope: [[META15]]) -; CHECK: [[TBAA24]] = !{[[META25:![0-9]+]], [[META25]], i64 0} -; CHECK: [[META25]] = !{!"int", [[META20]], i64 0} -; CHECK: [[DBG26]] = !DILocation(line: 3, column: 19, scope: [[META27:![0-9]+]]) -; CHECK: [[META27]] = distinct !DILexicalBlock(scope: [[META15]], file: [[META1]], line: 3, column: 3) -; CHECK: [[DBG28]] = !DILocation(line: 3, column: 24, scope: [[META27]]) -; CHECK: [[DBG29]] = !DILocation(line: 3, column: 23, scope: [[META27]]) -; CHECK: [[DBG30]] = !DILocation(line: 3, column: 21, scope: [[META27]]) -; CHECK: [[DBG31]] = !DILocation(line: 3, column: 3, scope: [[META15]]) -; CHECK: [[PROF32]] = !{!"branch_weights", i32 1, i32 1048575} -; CHECK: [[DBG33]] = !DILocation(line: 3, column: 3, scope: [[META27]]) -; CHECK: [[DBG34]] = !DILocation(line: 4, column: 5, scope: [[META27]]) -; CHECK: [[DBG35]] = !DILocation(line: 4, column: 7, scope: [[META27]]) -; CHECK: [[DBG36]] = !DILocation(line: 4, column: 10, scope: [[META27]]) -; CHECK: [[DBG37]] = !DILocation(line: 3, column: 27, scope: [[META27]]) -; CHECK: [[LOOP38]] = distinct !{[[LOOP38]], [[DBG31]], [[META39:![0-9]+]]} -; CHECK: [[META39]] = !DILocation(line: 4, column: 12, scope: [[META15]]) -; CHECK: [[DBG40]] = !DILocation(line: 5, column: 1, scope: [[META7]]) -; CHECK: [[META41:![0-9]+]] = distinct !DISubprogram(name: "bar", scope: [[META1]], file: [[META1]], line: 7, type: [[META8]], scopeLine: 7, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: [[META0]], retainedNodes: [[META42:![0-9]+]]) -; CHECK: [[META42]] = !{[[META43]], [[META44]]} -; CHECK: [[META43]] = !DILocalVariable(name: "A", arg: 1, scope: [[META41]], file: [[META1]], line: 7, type: [[META10]]) -; CHECK: [[META44]] = !DILocalVariable(name: "i", scope: [[META45:![0-9]+]], file: [[META1]], line: 9, type: [[META11]]) -; CHECK: [[META45]] = distinct !DILexicalBlock(scope: [[META41]], file: [[META1]], line: 9, column: 3) -; CHECK: [[DBG46]] = !DILocation(line: 7, column: 15, scope: [[META41]]) -; CHECK: [[DBG47]] = !DILocation(line: 9, column: 8, scope: [[META45]]) -; CHECK: [[DBG48]] = !DILocation(line: 9, column: 12, scope: [[META45]]) -; CHECK: [[DBG49]] = !DILocation(line: 9, column: 19, scope: [[META50:![0-9]+]]) -; CHECK: [[META50]] = distinct !DILexicalBlock(scope: [[META45]], file: [[META1]], line: 9, column: 3) -; CHECK: [[DBG51]] = !DILocation(line: 9, column: 24, scope: [[META50]]) -; CHECK: [[DBG52]] = !DILocation(line: 9, column: 23, scope: [[META50]]) -; CHECK: [[DBG53]] = !DILocation(line: 9, column: 21, scope: [[META50]]) -; CHECK: [[DBG54]] = !DILocation(line: 9, column: 3, scope: [[META45]]) -; CHECK: [[DBG55]] = !DILocation(line: 9, column: 3, scope: [[META50]]) -; CHECK: [[DBG56]] = !DILocation(line: 10, column: 5, scope: [[META50]]) -; CHECK: [[DBG57]] = !DILocation(line: 10, column: 7, scope: [[META50]]) -; CHECK: [[DBG58]] = !DILocation(line: 10, column: 10, scope: [[META50]]) -; CHECK: [[DBG59]] = !DILocation(line: 9, column: 27, scope: [[META50]]) -; CHECK: [[LOOP60]] = distinct !{[[LOOP60]], [[DBG54]], [[META61:![0-9]+]]} -; CHECK: [[META61]] = !DILocation(line: 10, column: 12, scope: [[META45]]) -; CHECK: [[DBG62]] = !DILocation(line: 11, column: 1, scope: [[META41]]) -;. diff --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/various_ir_values.test b/llvm/test/tools/UpdateTestChecks/update_test_checks/various_ir_values.test index c8483ffbafa2d6..c65150eed0a8c1 100644 --- a/llvm/test/tools/UpdateTestChecks/update_test_checks/various_ir_values.test +++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/various_ir_values.test @@ -16,9 +16,3 @@ ## Also try the --check-globals flag # RUN: %update_test_checks %t.ll --check-globals # RUN: diff -u %t.ll %S/Inputs/various_ir_values.ll.funcsig.globals.expected -# RUN: cp -f %S/Inputs/various_ir_values.ll %t.ll && %update_test_checks %t.ll --function-signature --check-globals all -# RUN: diff -u %t.ll %S/Inputs/various_ir_values.ll.funcsig.globals.expected -# RUN: cp -f %S/Inputs/various_ir_values.ll %t.ll && %update_test_checks %t.ll --check-globals none -# RUN: diff -u %t.ll %S/Inputs/various_ir_values.ll.funcsig.noglobals.expected -# RUN: cp -f %S/Inputs/various_ir_values.ll %t.ll && %update_test_checks %t.ll --check-globals smart -# RUN: diff -u %t.ll %S/Inputs/various_ir_values.ll.funcsig.transitiveglobals.expected diff --git a/llvm/utils/UpdateTestChecks/common.py b/llvm/utils/UpdateTestChecks/common.py index 361e02970b5f81..f9c923fa91ac4b 100644 --- a/llvm/utils/UpdateTestChecks/common.py +++ b/llvm/utils/UpdateTestChecks/common.py @@ -24,10 +24,8 @@ 1: Initial version, used by tests that don't specify --version explicitly. 2: --function-signature is now enabled by default and also checks return type/attributes. -3: --check-globals now has a third option ('smart'). The others are now called - 'none' and 'all'. 'smart' is the default. """ -DEFAULT_VERSION = 3 +DEFAULT_VERSION = 2 class Regex(object): @@ -222,8 +220,6 @@ def parse_args(parser, argv): args = parser.parse_args(argv) if args.version >= 2: args.function_signature = True - if "check_globals" in args and args.check_globals == "default": - args.check_globals = "none" if args.version < 3 else "smart" return args @@ -885,8 +881,7 @@ def __init__( *, is_before_functions=False, is_number=False, - replace_number_with_counter=False, - match_literally=False, + replace_number_with_counter=False ): self.check_prefix = check_prefix self.check_key = check_key @@ -898,7 +893,6 @@ def __init__( # Some variable numbers (e.g. MCINST1234) will change based on unrelated # modifications to LLVM, replace those with an incrementing counter. self.replace_number_with_counter = replace_number_with_counter - self.match_literally = match_literally self.variable_mapping = {} # Return true if this kind of IR value is "local", basically if it matches '%{{.*}}'. @@ -910,10 +904,9 @@ def is_global_scope_ir_value_match(self, match): return self.global_ir_rhs_regexp is not None # Return the IR prefix and check prefix we use for this kind or IR value, - # e.g., (%, TMP) for locals. If the IR prefix is a regex, return the prefix - # used in the IR output + # e.g., (%, TMP) for locals. def get_ir_prefix_from_ir_value_match(self, match): - return re.search(self.ir_prefix, match[0])[0], self.check_prefix + return self.ir_prefix, self.check_prefix # Return the IR regexp we use for this kind or IR value, e.g., [\w.-]+? for locals def get_ir_regex_from_ir_value_re_match(self, match): @@ -982,15 +975,8 @@ def get_value_use(self, var, match, var_prefix=None): NamelessValue(r"ATTR", "#", r"#", r"[0-9]+", None), NamelessValue(r"ATTR", "#", r"attributes #", r"[0-9]+", r"{[^}]*}"), NamelessValue(r"GLOB", "@", r"@", r"[0-9]+", None), - NamelessValue(r"GLOB", "@", r"@", r"[0-9]+", r".+", is_before_functions=True), NamelessValue( - r"GLOBNAMED", - "@", - r"@", - r"[a-zA-Z0-9_$\"\\.-]*[a-zA-Z_$\"\\.-][a-zA-Z0-9_$\"\\.-]*", - r".+", - is_before_functions=True, - match_literally=True, + r"GLOB", "@", r"@", r'[a-zA-Z0-9_$"\\.-]+', r".+", is_before_functions=True ), NamelessValue(r"DBG", "!", r"!dbg ", r"![0-9]+", None), NamelessValue(r"DIASSIGNID", "!", r"!DIAssignID ", r"![0-9]+", None), @@ -1002,19 +988,6 @@ def get_value_use(self, var, match, var_prefix=None): NamelessValue(r"META", "!", r"metadata ", r"![0-9]+", None), NamelessValue(r"META", "!", r"", r"![0-9]+", r"(?:distinct |)!.*"), NamelessValue(r"ACC_GRP", "!", r"!llvm.access.group ", r"![0-9]+", None), - NamelessValue(r"META", "!", r"![a-z.]+ ", r"![0-9]+", None), -] - -global_nameless_values = [ - nameless_value - for nameless_value in ir_nameless_values - if nameless_value.global_ir_rhs_regexp is not None -] -# global variable names should be matched literally -global_nameless_values_w_unstable_ids = [ - nameless_value - for nameless_value in global_nameless_values - if not nameless_value.match_literally ] asm_nameless_values = [ @@ -1062,7 +1035,7 @@ def createPrefixMatch(prefix_str, prefix_re): if nameless_value.global_ir_rhs_regexp is not None: match = "^" + match IR_VALUE_REGEXP_STRING = createOrRegexp(IR_VALUE_REGEXP_STRING, match) -IR_VALUE_REGEXP_SUFFIX = r"([,\s\(\)\}]|\Z)" +IR_VALUE_REGEXP_SUFFIX = r"([,\s\(\)]|\Z)" IR_VALUE_RE = re.compile( IR_VALUE_REGEXP_PREFIX + r"(" @@ -1071,18 +1044,6 @@ def createPrefixMatch(prefix_str, prefix_re): + IR_VALUE_REGEXP_SUFFIX ) -GLOBAL_VALUE_REGEXP_STRING = r"" -for nameless_value in global_nameless_values_w_unstable_ids: - match = createPrefixMatch(nameless_value.ir_prefix, nameless_value.ir_regexp) - GLOBAL_VALUE_REGEXP_STRING = createOrRegexp(GLOBAL_VALUE_REGEXP_STRING, match) -GLOBAL_VALUE_RE = re.compile( - IR_VALUE_REGEXP_PREFIX - + r"(" - + GLOBAL_VALUE_REGEXP_STRING - + r")" - + IR_VALUE_REGEXP_SUFFIX -) - # Build the regexp that matches an "ASM value" (currently only for --asm-show-inst comments). ASM_VALUE_REGEXP_STRING = "" for nameless_value in asm_nameless_values: @@ -1101,7 +1062,6 @@ def createPrefixMatch(prefix_str, prefix_re): variable_group_in_ir_value_match = 3 attribute_group_in_ir_value_match = 4 - # Check a match for IR_VALUE_RE and inspect it to determine if it was a local # value, %..., global @..., debug number !dbg !..., etc. See the PREFIXES above. def get_idx_from_ir_value_match(match): @@ -1216,19 +1176,6 @@ def generalize_check_lines(lines, is_analyze, vars_seen, global_vars_seen): ) -def generalize_global_check_line(line, is_analyze, global_vars_seen): - [new_line] = generalize_check_lines_common( - [line], - is_analyze, - set(), - global_vars_seen, - global_nameless_values_w_unstable_ids, - GLOBAL_VALUE_RE, - False, - ) - return new_line - - def generalize_asm_check_lines(lines, vars_seen, global_vars_seen): return generalize_check_lines_common( lines, @@ -1494,7 +1441,7 @@ def add_analyze_checks( def build_global_values_dictionary(glob_val_dict, raw_tool_output, prefixes): - for nameless_value in itertools.chain(global_nameless_values, asm_nameless_values): + for nameless_value in itertools.chain(ir_nameless_values, asm_nameless_values): if nameless_value.global_ir_rhs_regexp is None: continue @@ -1521,74 +1468,6 @@ def build_global_values_dictionary(glob_val_dict, raw_tool_output, prefixes): glob_val_dict[prefix][nameless_value.check_prefix] = lines -def filter_globals_according_to_preference( - global_val_lines, global_vars_seen, nameless_value, global_check_setting -): - if global_check_setting == "none": - return [] - if global_check_setting == "all": - return global_val_lines - assert global_check_setting == "smart" - - if nameless_value.check_key == "#": - # attribute sets are usually better checked by --check-attributes - return [] - - def extract(line, nv): - p = ( - "^" - + nv.ir_prefix - + "(" - + nv.ir_regexp - + ") = (" - + nv.global_ir_rhs_regexp - + ")" - ) - match = re.match(p, line) - return (match.group(1), re.findall(nv.ir_regexp, match.group(2))) - - transitively_visible = set() - contains_refs_to = {} - - def add(var): - nonlocal transitively_visible - nonlocal contains_refs_to - if var in transitively_visible: - return - transitively_visible.add(var) - if not var in contains_refs_to: - return - for x in contains_refs_to[var]: - add(x) - - for line in global_val_lines: - (var, refs) = extract(line, nameless_value) - contains_refs_to[var] = refs - for var, check_key in global_vars_seen: - if check_key != nameless_value.check_key: - continue - add(var) - return [ - line - for line in global_val_lines - if extract(line, nameless_value)[0] in transitively_visible - ] - - -# The capture group is kept as is, followed by a {{.*}} glob -METADATA_FILTERS = [ - r"(\w+ version )[\d.]+ \(git@[\w.:/-]+\.git \w+\)", - r'(!DIFile\(filename: ".+", directory: )".+"', -] -METADATA_FILTERS_RE = [re.compile(s) for s in METADATA_FILTERS] - - -def filter_unstable_metadata(line): - for f in METADATA_FILTERS_RE: - line = f.sub(r"\1{{.*}}", line) - return line - - def add_global_checks( glob_val_dict, comment_marker, @@ -1597,10 +1476,11 @@ def add_global_checks( global_vars_seen_dict, is_analyze, is_before_functions, - global_check_setting, ): printed_prefixes = set() - for nameless_value in global_nameless_values: + for nameless_value in ir_nameless_values: + if nameless_value.global_ir_rhs_regexp is None: + continue if nameless_value.is_before_functions != is_before_functions: continue for p in prefix_list: @@ -1624,26 +1504,19 @@ def add_global_checks( check_lines = [] global_vars_seen_before = [key for key in global_vars_seen.keys()] - lines = glob_val_dict[checkprefix][nameless_value.check_prefix] - lines = filter_globals_according_to_preference( - lines, global_vars_seen_before, nameless_value, global_check_setting - ) - for line in lines: + for line in glob_val_dict[checkprefix][nameless_value.check_prefix]: if _global_value_regex: matched = False for regex in _global_value_regex: - if re.match("^@" + regex + " = ", line) or re.match( - "^!" + regex + " = ", line - ): + if re.match("^@" + regex + " = ", line): matched = True break if not matched: continue - new_line = generalize_global_check_line( - line, is_analyze, global_vars_seen + tmp = generalize_check_lines( + [line], is_analyze, set(), global_vars_seen ) - new_line = filter_unstable_metadata(new_line) - check_line = "%s %s: %s" % (comment_marker, checkprefix, new_line) + check_line = "%s %s: %s" % (comment_marker, checkprefix, tmp[0]) check_lines.append(check_line) if not check_lines: continue @@ -1727,15 +1600,6 @@ def get_autogennote_suffix(parser, args): ): continue value = getattr(args, action.dest) - if action.dest == "check_globals": - default_value = "none" if args.version < 3 else "smart" - if value == default_value: - continue - autogenerated_note_args += action.option_strings[0] + " " - if args.version < 3 and value == "all": - continue - autogenerated_note_args += "%s " % value - continue if action.const is not None: # action stores a constant (usually True/False) # Skip actions with diff erent constant values (this happens with boolean # --foo/--no-foo options) diff --git a/llvm/utils/update_cc_test_checks.py b/llvm/utils/update_cc_test_checks.py index 28c6bb0409f3af..e96d4167e6567f 100755 --- a/llvm/utils/update_cc_test_checks.py +++ b/llvm/utils/update_cc_test_checks.py @@ -205,10 +205,7 @@ def config(): ) parser.add_argument( "--check-globals", - nargs="?", - const="all", - default="default", - choices=["none", "smart", "all"], + action="store_true", help="Check global entries (global variables, metadata, attribute sets, ...) for functions", ) parser.add_argument("tests", nargs="+") @@ -439,7 +436,7 @@ def check_generator(my_output_lines, prefixes, func): is_filtered=builder.is_filtered(), ) - if ti.args.check_globals != 'none': + if ti.args.check_globals: generated_prefixes.extend( common.add_global_checks( builder.global_var_dict(), @@ -447,9 +444,8 @@ def check_generator(my_output_lines, prefixes, func): run_list, output_lines, global_vars_seen_dict, - False, True, - ti.args.check_globals, + True, ) ) generated_prefixes.extend( @@ -497,7 +493,7 @@ def check_generator(my_output_lines, prefixes, func): output_lines.pop() last_line = output_lines[-1].strip() if ( - ti.args.check_globals != 'none' + ti.args.check_globals and not has_checked_pre_function_globals ): generated_prefixes.extend( @@ -507,9 +503,8 @@ def check_generator(my_output_lines, prefixes, func): run_list, output_lines, global_vars_seen_dict, - False, True, - ti.args.check_globals, + True, ) ) has_checked_pre_function_globals = True @@ -536,7 +531,7 @@ def check_generator(my_output_lines, prefixes, func): if include_line: output_lines.append(line.rstrip("\n")) - if ti.args.check_globals != 'none': + if ti.args.check_globals: generated_prefixes.extend( common.add_global_checks( builder.global_var_dict(), @@ -544,9 +539,8 @@ def check_generator(my_output_lines, prefixes, func): run_list, output_lines, global_vars_seen_dict, + True, False, - False, - ti.args.check_globals, ) ) if ti.args.gen_unused_prefix_body: diff --git a/llvm/utils/update_test_checks.py b/llvm/utils/update_test_checks.py index 06c247c8010a90..56ff675ab78d27 100755 --- a/llvm/utils/update_test_checks.py +++ b/llvm/utils/update_test_checks.py @@ -79,10 +79,7 @@ def main(): ) parser.add_argument( "--check-globals", - nargs="?", - const="all", - default="default", - choices=["none", "smart", "all"], + action="store_true", help="Check global entries (global variables, metadata, attribute sets, ...) for functions", ) parser.add_argument("tests", nargs="+") @@ -198,7 +195,7 @@ def main(): common.dump_input_lines(output_lines, ti, prefix_set, ";") args = ti.args - if args.check_globals != 'none': + if args.check_globals: generated_prefixes.extend( common.add_global_checks( builder.global_var_dict(), @@ -208,7 +205,6 @@ def main(): global_vars_seen_dict, args.preserve_names, True, - args.check_globals, ) ) @@ -276,7 +272,6 @@ def main(): global_vars_seen_dict, args.preserve_names, True, - args.check_globals, ) ) has_checked_pre_function_globals = True @@ -306,7 +301,7 @@ def main(): continue is_in_function = is_in_function_start = True - if args.check_globals != 'none': + if args.check_globals: generated_prefixes.extend( common.add_global_checks( builder.global_var_dict(), @@ -316,7 +311,6 @@ def main(): global_vars_seen_dict, args.preserve_names, False, - args.check_globals, ) ) if ti.args.gen_unused_prefix_body: _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits