From c2e88a8a6b03b7cdbeef807b60f030ba10abcfa8 Mon Sep 17 00:00:00 2001 From: Alexey Bataev Date: Mon, 4 Dec 2017 21:30:42 +0000 Subject: [PATCH] [OPENMP] Fix PR35486: crash when collapsing loops with dependent iteration spaces. Though it is incorrect from point of view of OpenMP standard to have dependent iteration space in OpenMP loops, compiler should not crash. Patch fixes this problem. llvm-svn: 319700 --- clang/lib/CodeGen/CGStmtOpenMP.cpp | 3 +++ .../test/OpenMP/distribute_firstprivate_codegen.cpp | 2 ++ clang/test/OpenMP/distribute_lastprivate_codegen.cpp | 3 +++ .../distribute_parallel_for_lastprivate_codegen.cpp | 6 ++++++ ...tribute_parallel_for_simd_lastprivate_codegen.cpp | 6 ++++++ .../OpenMP/distribute_simd_firstprivate_codegen.cpp | 2 ++ .../OpenMP/distribute_simd_lastprivate_codegen.cpp | 3 +++ .../OpenMP/distribute_simd_reduction_codegen.cpp | 3 +++ clang/test/OpenMP/for_codegen.cpp | 12 +++++++++++- clang/test/OpenMP/for_firstprivate_codegen.cpp | 3 +++ clang/test/OpenMP/for_lastprivate_codegen.cpp | 4 ++++ clang/test/OpenMP/for_linear_codegen.cpp | 8 ++++---- clang/test/OpenMP/for_reduction_codegen.cpp | 1 + clang/test/OpenMP/for_reduction_codegen_UDR.cpp | 1 + clang/test/OpenMP/parallel_for_linear_codegen.cpp | 8 ++++---- clang/test/OpenMP/taskloop_reduction_codegen.cpp | 1 + .../test/OpenMP/taskloop_simd_reduction_codegen.cpp | 1 + .../OpenMP/teams_distribute_collapse_codegen.cpp | 2 ++ .../OpenMP/teams_distribute_lastprivate_codegen.cpp | 3 +++ ..._distribute_parallel_for_firstprivate_codegen.cpp | 1 + ...s_distribute_parallel_for_lastprivate_codegen.cpp | 6 ++++++ ...teams_distribute_parallel_for_private_codegen.cpp | 7 +++++-- ...ams_distribute_parallel_for_reduction_codegen.cpp | 3 +++ ...ribute_parallel_for_simd_firstprivate_codegen.cpp | 1 + ...tribute_parallel_for_simd_lastprivate_codegen.cpp | 6 ++++++ ..._distribute_parallel_for_simd_private_codegen.cpp | 7 +++++-- ...istribute_parallel_for_simd_reduction_codegen.cpp | 5 ++++- .../test/OpenMP/teams_distribute_private_codegen.cpp | 5 +++-- 28 files changed, 97 insertions(+), 16 deletions(-) diff --git a/clang/lib/CodeGen/CGStmtOpenMP.cpp b/clang/lib/CodeGen/CGStmtOpenMP.cpp index 72847fa2827d..f96d4f3fd653 100644 --- a/clang/lib/CodeGen/CGStmtOpenMP.cpp +++ b/clang/lib/CodeGen/CGStmtOpenMP.cpp @@ -121,6 +121,9 @@ public: /// of used expression from loop statement. class OMPLoopScope : public CodeGenFunction::RunCleanupsScope { void emitPreInitStmt(CodeGenFunction &CGF, const OMPLoopDirective &S) { + CodeGenFunction::OMPPrivateScope PreCondScope(CGF); + CGF.EmitOMPPrivateLoopCounters(S, PreCondScope); + (void)PreCondScope.Privatize(); if (auto *LD = dyn_cast(&S)) { if (auto *PreInits = cast_or_null(LD->getPreInits())) { for (const auto *I : PreInits->decls()) diff --git a/clang/test/OpenMP/distribute_firstprivate_codegen.cpp b/clang/test/OpenMP/distribute_firstprivate_codegen.cpp index 718fc875254c..eaeb46988e5b 100644 --- a/clang/test/OpenMP/distribute_firstprivate_codegen.cpp +++ b/clang/test/OpenMP/distribute_firstprivate_codegen.cpp @@ -222,6 +222,7 @@ int main() { // CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK: {{.*}} = alloca i{{[0-9]+}}, +// CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK-DAG: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK-DAG: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -318,6 +319,7 @@ int main() { // CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK: {{.*}} = alloca i{{[0-9]+}}, +// CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK-DAG: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK-DAG: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], diff --git a/clang/test/OpenMP/distribute_lastprivate_codegen.cpp b/clang/test/OpenMP/distribute_lastprivate_codegen.cpp index abcbfd8d69c4..bd9dae956f1c 100644 --- a/clang/test/OpenMP/distribute_lastprivate_codegen.cpp +++ b/clang/test/OpenMP/distribute_lastprivate_codegen.cpp @@ -74,6 +74,7 @@ int main() { // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, + // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G_PRIVATE:%.+]] = alloca double, // LAMBDA: [[G1_PRIVATE:%.+]] = alloca double, @@ -202,6 +203,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -303,6 +305,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV1:%.+]] = alloca [2 x i{{[0-9]+}}], diff --git a/clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp b/clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp index 2e8da79c03bd..506885809a7e 100644 --- a/clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp @@ -74,6 +74,7 @@ int main() { // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, + // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G_PRIVATE:%.+]] = alloca double, // LAMBDA: [[G1_PRIVATE:%.+]] = alloca double, @@ -141,6 +142,7 @@ int main() { // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, + // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // private alloca's // LAMBDA: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, @@ -273,6 +275,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -371,6 +374,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -486,6 +490,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -566,6 +571,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], diff --git a/clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp b/clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp index 5b34622c5579..a2ae550cde78 100644 --- a/clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp +++ b/clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp @@ -74,6 +74,7 @@ int main() { // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, + // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G_PRIVATE:%.+]] = alloca double, // LAMBDA: [[G1_PRIVATE:%.+]] = alloca double, @@ -150,6 +151,7 @@ int main() { // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, + // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // private alloca's // LAMBDA: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, @@ -283,6 +285,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -381,6 +384,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -496,6 +500,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -576,6 +581,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], diff --git a/clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp b/clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp index 8db26a4c05d7..fad709f38294 100644 --- a/clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp +++ b/clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp @@ -222,6 +222,7 @@ int main() { // CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK: {{.*}} = alloca i{{[0-9]+}}, +// CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK-DAG: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK-DAG: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -318,6 +319,7 @@ int main() { // CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK: {{.*}} = alloca i{{[0-9]+}}, +// CHECK: {{.*}} = alloca i{{[0-9]+}}, // CHECK-DAG: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK-DAG: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], diff --git a/clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp b/clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp index bc4604d1c259..df842a009879 100644 --- a/clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp +++ b/clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp @@ -74,6 +74,7 @@ int main() { // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, + // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G_PRIVATE:%.+]] = alloca double, // LAMBDA: [[G1_PRIVATE:%.+]] = alloca double, @@ -213,6 +214,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -314,6 +316,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV1:%.+]] = alloca [2 x i{{[0-9]+}}], diff --git a/clang/test/OpenMP/distribute_simd_reduction_codegen.cpp b/clang/test/OpenMP/distribute_simd_reduction_codegen.cpp index c061ba926b8a..8485d8d27d52 100644 --- a/clang/test/OpenMP/distribute_simd_reduction_codegen.cpp +++ b/clang/test/OpenMP/distribute_simd_reduction_codegen.cpp @@ -57,6 +57,7 @@ int main() { // LAMBDA: alloca i{{.+}}, // LAMBDA: alloca i{{.+}}, // LAMBDA: alloca i{{.+}}, + // LAMBDA: alloca i{{.+}}, // LAMBDA: [[SIVAR_PRIV:%.+]] = alloca i{{.+}}, // LAMBDA: store{{.+}} [[SIVAR_ARG]], {{.+}} [[SIVAR_ADDR]], // LAMBDA: [[SIVAR_REF:%.+]] = load{{.+}}, {{.+}} [[SIVAR_ADDR]] @@ -132,6 +133,7 @@ int main() { // CHECK: alloca i{{.+}}, // CHECK: alloca i{{.+}}, // CHECK: alloca i{{.+}}, +// CHECK: alloca i{{.+}}, // CHECK: [[SIVAR_PRIV:%.+]] = alloca i{{.+}}, // CHECK: store{{.+}} [[SIVAR_ARG]], {{.+}} [[SIVAR_ADDR]], // CHECK: [[SIVAR_REF:%.+]] = load{{.+}}, {{.+}} [[SIVAR_ADDR]] @@ -176,6 +178,7 @@ int main() { // CHECK: alloca i{{.+}}, // CHECK: alloca i{{.+}}, // CHECK: alloca i{{.+}}, +// CHECK: alloca i{{.+}}, // CHECK: [[TVAR_PRIV:%.+]] = alloca i{{.+}}, // CHECK: store{{.+}} [[TVAR_ARG]], {{.+}} [[TVAR_ADDR]], // CHECK: [[TVAR_REF:%.+]] = load{{.+}}, {{.+}} [[TVAR_ADDR]] diff --git a/clang/test/OpenMP/for_codegen.cpp b/clang/test/OpenMP/for_codegen.cpp index 9ea167fb1fd7..6d719f4486a7 100644 --- a/clang/test/OpenMP/for_codegen.cpp +++ b/clang/test/OpenMP/for_codegen.cpp @@ -16,6 +16,16 @@ // CHECK-DAG: [[J:@.+]] = global i8 2, // CHECK-DAG: [[K:@.+]] = global i8 3, +// CHECK-LABEL: loop_with_counter_collapse +void loop_with_counter_collapse() { + // CHECK: call void @__kmpc_for_static_init_8(%ident_t* @ + // CHECK: call void @__kmpc_for_static_fini(%ident_t* @ + #pragma omp for collapse(2) + for (int i = 0; i < 4; i++) { + for (int j = i; j < 4; j++) { + } + } +} // CHECK-LABEL: define {{.*void}} @{{.*}}without_schedule_clause{{.*}}(float* {{.+}}, float* {{.+}}, float* {{.+}}, float* {{.+}}) void without_schedule_clause(float *a, float *b, float *c, float *d) { // CHECK: [[GTID:%.+]] = call i32 @__kmpc_global_thread_num([[IDENT_T_TY]]* [[DEFAULT_LOC:[@%].+]]) @@ -330,8 +340,8 @@ void runtime(float *a, float *b, float *c, float *d) { // CHECK-LABEL: test_precond void test_precond() { // CHECK: [[A_ADDR:%.+]] = alloca i8, - // CHECK: [[CAP:%.+]] = alloca i8, // CHECK: [[I_ADDR:%.+]] = alloca i8, + // CHECK: [[CAP:%.+]] = alloca i8, char a = 0; // CHECK: store i8 0, // CHECK: store i32 diff --git a/clang/test/OpenMP/for_firstprivate_codegen.cpp b/clang/test/OpenMP/for_firstprivate_codegen.cpp index 590739203fd5..0f4b02a532db 100644 --- a/clang/test/OpenMP/for_firstprivate_codegen.cpp +++ b/clang/test/OpenMP/for_firstprivate_codegen.cpp @@ -81,6 +81,7 @@ int main() { // LAMBDA: alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, + // LAMBDA: alloca i{{[0-9]+}}, // LAMBDA: [[G_PRIVATE_ADDR:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G1_PRIVATE_ADDR:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G1_PRIVATE_REF:%.+]] = alloca i{{[0-9]+}}*, @@ -154,6 +155,7 @@ int main() { // BLOCKS: alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, + // BLOCKS: alloca i{{[0-9]+}}, // BLOCKS: [[G_PRIVATE_ADDR:%.+]] = alloca i{{[0-9]+}}, // BLOCKS: [[G1_PRIVATE_ADDR:%.+]] = alloca i{{[0-9]+}}, // BLOCKS: [[SIVAR2_PRIVATE_ADDR:%.+]] = alloca i{{[0-9]+}}, @@ -218,6 +220,7 @@ int main() { // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], // CHECK: [[S_ARR_PRIV:%.+]] = alloca [2 x [[S_FLOAT_TY]]], diff --git a/clang/test/OpenMP/for_lastprivate_codegen.cpp b/clang/test/OpenMP/for_lastprivate_codegen.cpp index 47c24ed10265..7054c0e1c5a9 100644 --- a/clang/test/OpenMP/for_lastprivate_codegen.cpp +++ b/clang/test/OpenMP/for_lastprivate_codegen.cpp @@ -213,6 +213,7 @@ int main() { // LAMBDA: alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, + // LAMBDA: alloca i{{[0-9]+}}, // LAMBDA: [[A_PRIV:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[B_PRIV:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[C_PRIV:%.+]] = alloca i{{[0-9]+}}, @@ -407,6 +408,7 @@ int main() { // BLOCKS: alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, +// BLOCKS: alloca i{{[0-9]+}}, // BLOCKS: [[A_PRIV:%.+]] = alloca i{{[0-9]+}}, // BLOCKS: [[B_PRIV:%.+]] = alloca i{{[0-9]+}}, // BLOCKS: [[C_PRIV:%.+]] = alloca i{{[0-9]+}}, @@ -477,6 +479,7 @@ int main() { // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], // CHECK: [[S_ARR_PRIV:%.+]] = alloca [2 x [[S_FLOAT_TY]]], @@ -673,6 +676,7 @@ int main() { // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i{{[0-9]+}}, // CHECK: [[A_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[B_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[C_PRIV:%.+]] = alloca i{{[0-9]+}}, diff --git a/clang/test/OpenMP/for_linear_codegen.cpp b/clang/test/OpenMP/for_linear_codegen.cpp index 16a67c0b91d2..e25de36a6f6e 100644 --- a/clang/test/OpenMP/for_linear_codegen.cpp +++ b/clang/test/OpenMP/for_linear_codegen.cpp @@ -181,8 +181,8 @@ int main() { // LAMBDA: define{{.*}} internal{{.*}} void [[OMP_REGION]](i32* noalias %{{.+}}, i32* noalias %{{.+}}) // LAMBDA: alloca i{{[0-9]+}}, - // LAMBDA: [[G_START_ADDR:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, + // LAMBDA: [[G_START_ADDR:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, @@ -233,8 +233,8 @@ int main() { for (int i = 0; i < 2; ++i) { // BLOCKS: define{{.*}} internal{{.*}} void [[OMP_REGION]](i32* noalias %{{.+}}, i32* noalias %{{.+}}) // BLOCKS: alloca i{{[0-9]+}}, - // BLOCKS: [[G_START_ADDR:%.+]] = alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, + // BLOCKS: [[G_START_ADDR:%.+]] = alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, @@ -351,13 +351,13 @@ int main() { // CHECK: define internal void [[MAIN_MICROTASK]](i{{[0-9]+}}* noalias [[GTID_ADDR:%.+]], i{{[0-9]+}}* noalias %{{.+}}, float** dereferenceable(8) %{{.+}}, i64* dereferenceable(8) %{{.+}}) // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i{{[0-9]+}}, // CHECK: [[PVAR_START:%.+]] = alloca float*, // CHECK: [[LVAR_START:%.+]] = alloca i64, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, -// CHECK: alloca i{{[0-9]+}}, // CHECK: [[PVAR_PRIV:%.+]] = alloca float*, // CHECK: [[LVAR_PRIV:%.+]] = alloca i64, // CHECK: store i{{[0-9]+}}* [[GTID_ADDR]], i{{[0-9]+}}** [[GTID_ADDR_REF:%.+]] @@ -446,13 +446,13 @@ int main() { // CHECK: define internal void [[TMAIN_MICROTASK]](i{{[0-9]+}}* noalias [[GTID_ADDR:%.+]], i{{[0-9]+}}* noalias %{{.+}}, i32** dereferenceable(8) %{{.+}}, i32* dereferenceable(4) %{{.+}}) // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i{{[0-9]+}}, // CHECK: [[PVAR_START:%.+]] = alloca i32*, // CHECK: [[LVAR_START:%.+]] = alloca i32, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, -// CHECK: alloca i{{[0-9]+}}, // CHECK: [[PVAR_PRIV:%.+]] = alloca i32*, // CHECK: [[LVAR_PRIV:%.+]] = alloca i32, // CHECK: [[LVAR_PRIV_REF:%.+]] = alloca i32*, diff --git a/clang/test/OpenMP/for_reduction_codegen.cpp b/clang/test/OpenMP/for_reduction_codegen.cpp index 3f014a4530a2..68b9f5e83bf9 100644 --- a/clang/test/OpenMP/for_reduction_codegen.cpp +++ b/clang/test/OpenMP/for_reduction_codegen.cpp @@ -1211,6 +1211,7 @@ int main() { // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VAR_PRIV:%.+]] = alloca [[S_INT_TY]], // CHECK: [[VAR1_PRIV:%.+]] = alloca [[S_INT_TY]], diff --git a/clang/test/OpenMP/for_reduction_codegen_UDR.cpp b/clang/test/OpenMP/for_reduction_codegen_UDR.cpp index f5ec656048d1..63d0ee8aa2ae 100644 --- a/clang/test/OpenMP/for_reduction_codegen_UDR.cpp +++ b/clang/test/OpenMP/for_reduction_codegen_UDR.cpp @@ -806,6 +806,7 @@ int main() { // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VAR_PRIV:%.+]] = alloca [[S_INT_TY]], // CHECK: [[VAR1_PRIV:%.+]] = alloca [[S_INT_TY]], diff --git a/clang/test/OpenMP/parallel_for_linear_codegen.cpp b/clang/test/OpenMP/parallel_for_linear_codegen.cpp index d0968d7cd146..6e7a05991a78 100644 --- a/clang/test/OpenMP/parallel_for_linear_codegen.cpp +++ b/clang/test/OpenMP/parallel_for_linear_codegen.cpp @@ -49,8 +49,8 @@ int main() { for (int i = 0; i < 2; ++i) { // LAMBDA: define{{.*}} internal{{.*}} void [[OMP_REGION]](i32* noalias %{{.+}}, i32* noalias %{{.+}}, i32* dereferenceable(4) %{{.+}}) // LAMBDA: alloca i{{[0-9]+}}, - // LAMBDA: [[G_START_ADDR:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, + // LAMBDA: [[G_START_ADDR:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, // LAMBDA: alloca i{{[0-9]+}}, @@ -96,8 +96,8 @@ int main() { for (int i = 0; i < 2; ++i) { // BLOCKS: define{{.*}} internal{{.*}} void [[OMP_REGION]](i32* noalias %{{.+}}, i32* noalias %{{.+}}, i32* dereferenceable(4) %{{.+}}) // BLOCKS: alloca i{{[0-9]+}}, - // BLOCKS: [[G_START_ADDR:%.+]] = alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, + // BLOCKS: [[G_START_ADDR:%.+]] = alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, // BLOCKS: alloca i{{[0-9]+}}, @@ -155,13 +155,13 @@ int main() { // CHECK: define internal void [[MAIN_MICROTASK]](i{{[0-9]+}}* noalias [[GTID_ADDR:%.+]], i{{[0-9]+}}* noalias %{{.+}}, float** dereferenceable(8) %{{.+}}, i64* dereferenceable(8) %{{.+}}) // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i{{[0-9]+}}, // CHECK: [[PVAR_START:%.+]] = alloca float*, // CHECK: [[LVAR_START:%.+]] = alloca i64, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, -// CHECK: alloca i{{[0-9]+}}, // CHECK: [[PVAR_PRIV:%.+]] = alloca float*, // CHECK: [[LVAR_PRIV:%.+]] = alloca i64, // CHECK: store i{{[0-9]+}}* [[GTID_ADDR]], i{{[0-9]+}}** [[GTID_ADDR_REF:%.+]] @@ -205,13 +205,13 @@ int main() { // // CHECK: define internal void [[TMAIN_MICROTASK]](i{{[0-9]+}}* noalias [[GTID_ADDR:%.+]], i{{[0-9]+}}* noalias %{{.+}}, i32** dereferenceable(8) %{{.+}}, i32* dereferenceable(4) %{{.+}}) // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i{{[0-9]+}}, // CHECK: [[PVAR_START:%.+]] = alloca i32*, // CHECK: [[LVAR_START:%.+]] = alloca i32, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, -// CHECK: alloca i{{[0-9]+}}, // CHECK: [[PVAR_PRIV:%.+]] = alloca i32*, // CHECK: [[LVAR_PRIV:%.+]] = alloca i32, // CHECK: store i{{[0-9]+}}* [[GTID_ADDR]], i{{[0-9]+}}** [[GTID_ADDR_REF:%.+]] diff --git a/clang/test/OpenMP/taskloop_reduction_codegen.cpp b/clang/test/OpenMP/taskloop_reduction_codegen.cpp index 10cbf9716335..64e0ac36673f 100644 --- a/clang/test/OpenMP/taskloop_reduction_codegen.cpp +++ b/clang/test/OpenMP/taskloop_reduction_codegen.cpp @@ -51,6 +51,7 @@ sum = 0.0; // CHECK: [[AGG_CAPTURED:%.*]] = alloca [[STRUCT_ANON:%.*]], // CHECK: [[TMP0:%.*]] = call i32 @__kmpc_global_thread_num(%ident_t* // CHECK: [[DOTRD_INPUT_:%.*]] = alloca [4 x %struct.kmp_task_red_input_t], +// CHECK: alloca i32, // CHECK: [[DOTCAPTURE_EXPR_:%.*]] = alloca i32, // CHECK: [[DOTCAPTURE_EXPR_9:%.*]] = alloca i32, // CHECK: store i32 0, i32* [[RETVAL]], diff --git a/clang/test/OpenMP/taskloop_simd_reduction_codegen.cpp b/clang/test/OpenMP/taskloop_simd_reduction_codegen.cpp index b96c8d50a3ff..585e549754d1 100644 --- a/clang/test/OpenMP/taskloop_simd_reduction_codegen.cpp +++ b/clang/test/OpenMP/taskloop_simd_reduction_codegen.cpp @@ -51,6 +51,7 @@ sum = 0.0; // CHECK: [[AGG_CAPTURED:%.*]] = alloca [[STRUCT_ANON:%.*]], // CHECK: [[TMP0:%.*]] = call i32 @__kmpc_global_thread_num(%ident_t* // CHECK: [[DOTRD_INPUT_:%.*]] = alloca [4 x %struct.kmp_task_red_input_t], +// CHECK: alloca i32, // CHECK: [[DOTCAPTURE_EXPR_:%.*]] = alloca i32, // CHECK: [[DOTCAPTURE_EXPR_9:%.*]] = alloca i32, // CHECK: store i32 0, i32* [[RETVAL]], diff --git a/clang/test/OpenMP/teams_distribute_collapse_codegen.cpp b/clang/test/OpenMP/teams_distribute_collapse_codegen.cpp index f4c7a964bc5a..a65c0a2e63f7 100644 --- a/clang/test/OpenMP/teams_distribute_collapse_codegen.cpp +++ b/clang/test/OpenMP/teams_distribute_collapse_codegen.cpp @@ -35,6 +35,8 @@ struct SS{ // discard loop variables not needed here // CK1: = alloca i32, // CK1: = alloca i32, + // CK1: = alloca i32, + // CK1: = alloca i32, // CK1: [[OMP_UB:%.+]] = alloca i32, // CK1: store i32 56087, i32* [[OMP_UB]], // CK1: call void @__kmpc_for_static_init_4({{.+}}, {{.+}}, i32 92, {{.+}}, {{.+}}, i32* [[OMP_UB]], diff --git a/clang/test/OpenMP/teams_distribute_lastprivate_codegen.cpp b/clang/test/OpenMP/teams_distribute_lastprivate_codegen.cpp index f709b5b7b7fa..2eab60b9dd3c 100644 --- a/clang/test/OpenMP/teams_distribute_lastprivate_codegen.cpp +++ b/clang/test/OpenMP/teams_distribute_lastprivate_codegen.cpp @@ -71,6 +71,7 @@ int main() { // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, + // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G_PRIVATE:%.+]] = alloca double, // LAMBDA: [[G1_PRIVATE:%.+]] = alloca double, @@ -195,6 +196,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -293,6 +295,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV1:%.+]] = alloca [2 x i{{[0-9]+}}], diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp index 55ef18fc6bcc..fa99f9cfcf1b 100644 --- a/clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp @@ -132,6 +132,7 @@ int main() { // LAMBDA: alloca i32, // LAMBDA: alloca i32, // LAMBDA: alloca i32, + // LAMBDA: alloca i32, // LAMBDA: [[G_PRIV:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G1_PRIV:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G1_TMP_PRIV:%.+]] = alloca i{{[0-9]+}}*, diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp index 57e98f1b5c6e..501abb725b31 100644 --- a/clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp @@ -71,6 +71,7 @@ int main() { // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, + // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G_PRIVATE:%.+]] = alloca double, // LAMBDA: [[G1_PRIVATE:%.+]] = alloca double, @@ -125,6 +126,7 @@ int main() { // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, + // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G_PRIVATE:%.+]] = alloca double, // LAMBDA: [[G1_PRIVATE:%.+]] = alloca double, @@ -248,6 +250,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -326,6 +329,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -425,6 +429,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV1:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -501,6 +506,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV1:%.+]] = alloca [2 x i{{[0-9]+}}], diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_private_codegen.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_private_codegen.cpp index 97541315bff5..8051cfcc4e52 100644 --- a/clang/test/OpenMP/teams_distribute_parallel_for_private_codegen.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_private_codegen.cpp @@ -91,6 +91,7 @@ int main() { // LAMBDA: alloca i32, // LAMBDA: alloca i32, // LAMBDA: alloca i32, + // LAMBDA: alloca i32, // LAMBDA: [[G_PRIV:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G1_PRIV:%.+]] = alloca i{{[0-9]+}} // LAMBDA: [[TMP:%.+]] = alloca i{{[0-9]+}}*, @@ -116,6 +117,7 @@ int main() { // LAMBDA: alloca i32, // LAMBDA: alloca i32, // LAMBDA: alloca i32, + // LAMBDA: alloca i32, // LAMBDA: [[G_PRIV:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G1_PRIV:%.+]] = alloca i{{[0-9]+}} // LAMBDA: [[TMP:%.+]] = alloca i{{[0-9]+}}*, @@ -212,6 +214,7 @@ int main() { // CHECK: {{.+}} = alloca i32, // CHECK: {{.+}} = alloca i32, // CHECK: {{.+}} = alloca i32, +// CHECK: {{.+}} = alloca i32, // CHECK-DAG: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK-DAG: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], // CHECK-DAG: [[S_ARR_PRIV:%.+]] = alloca [2 x [[S_FLOAT_TY]]], @@ -255,12 +258,12 @@ int main() { // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i32, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], // CHECK: [[S_ARR_PRIV:%.+]] = alloca [2 x [[S_INT_TY]]], // CHECK: [[VAR_PRIV:%.+]] = alloca [[S_INT_TY]], // CHECK: [[TMP:%.+]] = alloca [[S_INT_TY]]*, -// CHECK: alloca i32, // private(s_arr) // CHECK-DAG: [[S_ARR_PRIV_BGN:%.+]] = getelementptr{{.*}} [2 x [[S_INT_TY]]], [2 x [[S_INT_TY]]]* [[S_ARR_PRIV]], @@ -295,12 +298,12 @@ int main() { // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i32, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], // CHECK: [[S_ARR_PRIV:%.+]] = alloca [2 x [[S_INT_TY]]], // CHECK: [[VAR_PRIV:%.+]] = alloca [[S_INT_TY]], // CHECK: [[TMP:%.+]] = alloca [[S_INT_TY]]*, -// CHECK: alloca i32, // private(s_arr) // CHECK-DAG: [[S_ARR_PRIV_BGN:%.+]] = getelementptr{{.*}} [2 x [[S_INT_TY]]], [2 x [[S_INT_TY]]]* [[S_ARR_PRIV]], diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_reduction_codegen.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_reduction_codegen.cpp index 09dc3ec8e17c..55ccfff99a3c 100644 --- a/clang/test/OpenMP/teams_distribute_parallel_for_reduction_codegen.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_reduction_codegen.cpp @@ -96,6 +96,7 @@ int main() { // LAMBDA: alloca i32, // LAMBDA: alloca i32, // LAMBDA: alloca i32, + // LAMBDA: alloca i32, // LAMBDA: [[SIVAR_PRIV:%.+]] = alloca i{{.+}}, // LAMBDA: [[RED_LIST:%.+]] = alloca [1 x {{.+}}], // LAMBDA: store{{.+}} [[SIVAR_ARG]], {{.+}} [[SIVAR_ADDR]], @@ -219,6 +220,7 @@ int main() { // CHECK: alloca i32, // CHECK: alloca i32, // CHECK: alloca i32, +// CHECK: alloca i32, // CHECK: [[SIVAR_PRIV:%.+]] = alloca i{{.+}}, // CHECK: [[RED_LIST:%.+]] = alloca [1 x {{.+}}], // CHECK: store{{.+}} [[SIVAR_ARG]], {{.+}} [[SIVAR_ADDR]], @@ -310,6 +312,7 @@ int main() { // CHECK: alloca i32, // CHECK: alloca i32, // CHECK: alloca i32, +// CHECK: alloca i32, // CHECK: [[TVAR_PRIV:%.+]] = alloca i{{.+}}, // CHECK: [[RED_LIST:%.+]] = alloca [1 x {{.+}}], // CHECK: store{{.+}} [[TVAR_ARG]], {{.+}} [[TVAR_ADDR]], diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp index ffcd981b3977..1219742c752d 100644 --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp @@ -132,6 +132,7 @@ int main() { // LAMBDA: alloca i32, // LAMBDA: alloca i32, // LAMBDA: alloca i32, + // LAMBDA: alloca i32, // LAMBDA: [[G_PRIV:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G1_PRIV:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G1_TMP_PRIV:%.+]] = alloca i{{[0-9]+}}*, diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp index 81ec2ff628e8..5df893d525f4 100644 --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp @@ -71,6 +71,7 @@ int main() { // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, + // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G_PRIVATE:%.+]] = alloca double, // LAMBDA: [[G1_PRIVATE:%.+]] = alloca double, @@ -126,6 +127,7 @@ int main() { // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, + // LAMBDA: {{.+}} = alloca i{{[0-9]+}}, // LAMBDA: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G_PRIVATE:%.+]] = alloca double, // LAMBDA: [[G1_PRIVATE:%.+]] = alloca double, @@ -255,6 +257,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -333,6 +336,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -435,6 +439,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV1:%.+]] = alloca [2 x i{{[0-9]+}}], @@ -511,6 +516,7 @@ int main() { // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: {{.+}} = alloca i{{[0-9]+}}, +// CHECK: {{.+}} = alloca i{{[0-9]+}}, // CHECK: [[OMP_IS_LAST1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV1:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV1:%.+]] = alloca [2 x i{{[0-9]+}}], diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp index d133fbea7643..156966656ed5 100644 --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp @@ -91,6 +91,7 @@ int main() { // LAMBDA: alloca i32, // LAMBDA: alloca i32, // LAMBDA: alloca i32, + // LAMBDA: alloca i32, // LAMBDA: [[G_PRIV:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G1_PRIV:%.+]] = alloca i{{[0-9]+}} // LAMBDA: [[TMP:%.+]] = alloca i{{[0-9]+}}*, @@ -116,6 +117,7 @@ int main() { // LAMBDA: alloca i32, // LAMBDA: alloca i32, // LAMBDA: alloca i32, + // LAMBDA: alloca i32, // LAMBDA: [[G_PRIV:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G1_PRIV:%.+]] = alloca i{{[0-9]+}} // LAMBDA: [[TMP:%.+]] = alloca i{{[0-9]+}}*, @@ -215,6 +217,7 @@ int main() { // CHECK: {{.+}} = alloca i32, // CHECK: {{.+}} = alloca i32, // CHECK: {{.+}} = alloca i32, +// CHECK: {{.+}} = alloca i32, // CHECK-DAG: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK-DAG: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], // CHECK-DAG: [[S_ARR_PRIV:%.+]] = alloca [2 x [[S_FLOAT_TY]]], @@ -258,12 +261,12 @@ int main() { // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], // CHECK: [[S_ARR_PRIV:%.+]] = alloca [2 x [[S_INT_TY]]], // CHECK: [[VAR_PRIV:%.+]] = alloca [[S_INT_TY]], // CHECK: [[TMP:%.+]] = alloca [[S_INT_TY]]*, -// CHECK: alloca i32, // private(s_arr) // CHECK-DAG: [[S_ARR_PRIV_BGN:%.+]] = getelementptr{{.*}} [2 x [[S_INT_TY]]], [2 x [[S_INT_TY]]]* [[S_ARR_PRIV]], @@ -298,12 +301,12 @@ int main() { // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i32, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], // CHECK: [[S_ARR_PRIV:%.+]] = alloca [2 x [[S_INT_TY]]], // CHECK: [[VAR_PRIV:%.+]] = alloca [[S_INT_TY]], // CHECK: [[TMP:%.+]] = alloca [[S_INT_TY]]*, -// CHECK: alloca i32, // private(s_arr) // CHECK-DAG: [[S_ARR_PRIV_BGN:%.+]] = getelementptr{{.*}} [2 x [[S_INT_TY]]], [2 x [[S_INT_TY]]]* [[S_ARR_PRIV]], diff --git a/clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp b/clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp index 09fc4b750f62..384ac4b5f32a 100644 --- a/clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp +++ b/clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp @@ -96,6 +96,7 @@ int main() { // LAMBDA: alloca i32, // LAMBDA: alloca i32, // LAMBDA: alloca i32, + // LAMBDA: alloca i32, // LAMBDA: [[SIVAR_PRIV:%.+]] = alloca i{{.+}}, // LAMBDA: [[RED_LIST:%.+]] = alloca [1 x {{.+}}], // LAMBDA: store{{.+}} [[SIVAR_ARG]], {{.+}} [[SIVAR_ADDR]], @@ -103,7 +104,7 @@ int main() { // LAMBDA: store{{.+}} 0, {{.+}} [[SIVAR_PRIV]], // LAMBDA: call void @__kmpc_for_static_init_4( - // LAMBDA: store{{.+}}, {{.+}} [[SIVAR_PRIV]], + // LAMBDA: store{{.+}}, {{.+}} [[SIVAR_PRIV]], // LAMBDA: call void [[INNER_LAMBDA:@.+]]( // LAMBDA: call void @__kmpc_for_static_fini( // LAMBDA: [[RED_LIST_GEP:%.+]] = getelementptr{{.+}} [[RED_LIST]], @@ -222,6 +223,7 @@ int main() { // CHECK: alloca i32, // CHECK: alloca i32, // CHECK: alloca i32, +// CHECK: alloca i32, // CHECK: [[SIVAR_PRIV:%.+]] = alloca i{{.+}}, // CHECK: [[RED_LIST:%.+]] = alloca [1 x {{.+}}], // CHECK: store{{.+}} [[SIVAR_ARG]], {{.+}} [[SIVAR_ADDR]], @@ -313,6 +315,7 @@ int main() { // CHECK: alloca i32, // CHECK: alloca i32, // CHECK: alloca i32, +// CHECK: alloca i32, // CHECK: [[TVAR_PRIV:%.+]] = alloca i{{.+}}, // CHECK: [[RED_LIST:%.+]] = alloca [1 x {{.+}}], // CHECK: store{{.+}} [[TVAR_ARG]], {{.+}} [[TVAR_ADDR]], diff --git a/clang/test/OpenMP/teams_distribute_private_codegen.cpp b/clang/test/OpenMP/teams_distribute_private_codegen.cpp index 23d1b9067e1b..38a391d05683 100644 --- a/clang/test/OpenMP/teams_distribute_private_codegen.cpp +++ b/clang/test/OpenMP/teams_distribute_private_codegen.cpp @@ -91,6 +91,7 @@ int main() { // LAMBDA: alloca i32, // LAMBDA: alloca i32, // LAMBDA: alloca i32, + // LAMBDA: alloca i32, // LAMBDA: [[G_PRIV:%.+]] = alloca i{{[0-9]+}}, // LAMBDA: [[G1_PRIV:%.+]] = alloca i{{[0-9]+}} // LAMBDA: [[TMP:%.+]] = alloca i{{[0-9]+}}*, @@ -159,12 +160,12 @@ int main() { // CHECK: {{.+}} = alloca i32, // CHECK: {{.+}} = alloca i32, // CHECK: {{.+}} = alloca i32, +// CHECK: {{.+}} = alloca i32, // CHECK-DAG: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK-DAG: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], // CHECK-DAG: [[S_ARR_PRIV:%.+]] = alloca [2 x [[S_FLOAT_TY]]], // CHECK-DAG: [[VAR_PRIV:%.+]] = alloca [[S_FLOAT_TY]], // CHECK-DAG: [[SIVAR_PRIV:%.+]] = alloca i{{[0-9]+}}, -// CHECK: alloca i32, // private(s_arr) // CHECK-DAG: [[S_ARR_PRIV_BGN:%.+]] = getelementptr{{.*}} [2 x [[S_FLOAT_TY]]], [2 x [[S_FLOAT_TY]]]* [[S_ARR_PRIV]], @@ -203,12 +204,12 @@ int main() { // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, // CHECK: alloca i{{[0-9]+}}, +// CHECK: alloca i{{[0-9]+}}, // CHECK: [[T_VAR_PRIV:%.+]] = alloca i{{[0-9]+}}, // CHECK: [[VEC_PRIV:%.+]] = alloca [2 x i{{[0-9]+}}], // CHECK: [[S_ARR_PRIV:%.+]] = alloca [2 x [[S_INT_TY]]], // CHECK: [[VAR_PRIV:%.+]] = alloca [[S_INT_TY]], // CHECK: [[TMP:%.+]] = alloca [[S_INT_TY]]*, -// CHECK: alloca i32, // private(s_arr) // CHECK-DAG: [[S_ARR_PRIV_BGN:%.+]] = getelementptr{{.*}} [2 x [[S_INT_TY]]], [2 x [[S_INT_TY]]]* [[S_ARR_PRIV]],