https://bugs.llvm.org/show_bug.cgi?id=49521

            Bug ID: 49521
           Summary: OpenMP missing profile instrumentation counter in
                    CGOpenMPRegionInfo::EmitBody
           Product: OpenMP
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Clang Compiler Support
          Assignee: unassignedclangb...@nondot.org
          Reporter: lxf...@gmail.com
                CC: llvm-bugs@lists.llvm.org

In CGOpenMPRegionInfo::EmitBody, it does not emit any profile counter
increment, which means that the instrumentation of a function generated this
way will be missing the function entry count. In some cases this leads to
inaccurate instrumentation, while in worse cases some function has no counter
emitted, causing llvm-cov to error out since some functions are missing from
the function name table.

A fix attempt is https://reviews.llvm.org/D98135, but it seems to have some
issues.

Example test case:

// RUN: %clang_cc1 -verify -fopenmp -x c -emit-llvm %s -triple
x86_64-unknown-linux -o - -femit-all-decls -disable-llvm-passes
-fprofile-instrument=clang | FileCheck %s
// expected-no-diagnostics

void sub(double *restrict a, double *restrict b, int n) {
  int i;

#pragma omp parallel for
#pragma clang loop vectorize(disable)
  for (i = 0; i < n; i++) {
    a[i] = a[i] + b[i];
  }
}

// CHECK-LABEL: @.omp_outlined.(
// CHECK-NEXT:  entry:
// CHECK:         call void @llvm.instrprof.increment(
// CHECK:       omp.precond.then:
// CHECK-NEXT:    call void @llvm.instrprof.increment(
// CHECK:       cond.true:
// CEHCK-NEXT:    call void @llvm.instrprof.increment(
// CHECK:       omp.inner.for.body:
// CHECK-NEXT:    call void @llvm.instrprof.increment(

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to