[PGO][CUDA][HIP] Skip generating profile on the device stub and wrong-side functions.
authorMichael Liao <michael.hliao@gmail.com>
Tue, 4 Aug 2020 17:56:36 +0000 (13:56 -0400)
committerMichael Liao <michael.hliao@gmail.com>
Mon, 10 Aug 2020 15:01:46 +0000 (11:01 -0400)
commitc7b683c126b849dab5c81e7deecfc1e61f8563a0
treebd2e0b8154c1c97c32140158bf5da7d6453f5289
parent7866442b3f5d395e7f92a5d6b6ed0df3e4ba429b
[PGO][CUDA][HIP] Skip generating profile on the device stub and wrong-side functions.

- Skip generating profile data on `__global__` function in the host
  compilation. It's a host-side stub function only and don't have
  profile instrumentation generated on the real function body. The extra
  profile data results in the malformed instrumentation profile data.
- Skip generating region mapping on functions in the wrong-side, i.e.,
  + For the device compilation, skip host-only functions; and,
  + For the host compilation, skip device-only functions (including
    `__global__` functions.)
- As the device-side profiling is not ready yet, only host-side profile
  code generation is checked.

Differential Revision: https://reviews.llvm.org/D85276
clang/lib/CodeGen/CodeGenPGO.cpp
clang/test/CodeGenCUDA/profile-coverage-mapping.cu [new file with mode: 0644]