brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · d4819e0 Raw
68 lines · c
1// This testcase checks emission of DIFlagArtificial flag for outlined2// subroutines generated by compiler.3 4// REQUIRES: x86-registered-target5 6// RUN: %clang_cc1 -debug-info-kind=constructor -x c -verify -triple x86_64-pc-linux-gnu -fopenmp -emit-llvm %s -o - | FileCheck %s7// expected-no-diagnostics8 9#if defined(_WIN32)10#define __KAI_KMPC_CONVENTION __cdecl11#else12#define __KAI_KMPC_CONVENTION13#endif14 15extern int printf(const char *, ...);16extern void __KAI_KMPC_CONVENTION omp_set_num_threads(int);17extern int __KAI_KMPC_CONVENTION omp_get_thread_num(void);18 19#define N 1020 21float f[10];22void foo_simd(int low, int up) {23  for (int i = low; i < up; ++i) {24    f[i] = 0.0;25#pragma omp ordered simd26    f[i] = 1.0;27  }28}29 30int main() {31  int arr[10];32  int i;33  omp_set_num_threads(2);34#pragma omp parallel35#pragma omp single36#pragma omp taskloop num_tasks(10)37  for (i = 0; i < N; i++) {38    arr[i] = i * i;39  }40 41  for (int j = 0; j < N; j++) {42    printf("%d\n", arr[j]);43  }44  return 0;45}46 47// foo_simd is not artificial.48// CHECK-DAG: !DISubprogram(name: "foo_simd"49// CHECK-DAG-SAME: flags: DIFlagPrototyped,50 51// CHECK-DAG: !DISubprogram(name: "__captured_stmt_debug__"52// CHECK-DAG-SAME: flags: DIFlagArtificial53 54// CHECK-DAG: !DISubprogram(name: "__captured_stmt"55// CHECK-DAG-SAME: flags: DIFlagArtificial56 57// CHECK-DAG: !DISubprogram(name: "main.omp_outlined_debug__"58// CHECK-DAG-SAME: flags: DIFlagArtificial59 60// CHECK-DAG: !DISubprogram(linkageName: ".omp_task_entry."61// CHECK-DAG-SAME: flags: DIFlagArtificial62 63// CHECK-DAG: !DISubprogram(name: ".omp_outlined."64// CHECK-DAG-SAME: flags: DIFlagArtificial65 66// CHECK-DAG: !DISubprogram(name: "main.omp_outlined"67// CHECK-DAG-SAME: flags: DIFlagArtificial68