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