Emit metadata when instr. profiles hash mismatch occurs.
authorSriraman Tallam <tmsriram@google.com>
Fri, 29 Jan 2021 20:52:59 +0000 (12:52 -0800)
committerSriraman Tallam <tmsriram@google.com>
Fri, 29 Jan 2021 20:56:01 +0000 (12:56 -0800)
commit9a81a4ef79cf283fcf55a25a0bea67ba34dc0d53
treeff05ad87559802dea7c59df8cd8b76c5af93d5eb
parent632545e8ce846ccaeca8df15a3dc5e36d01a1275
Emit metadata when instr. profiles hash mismatch occurs.

This patch emits "instr_prof_hash_mismatch" function annotation metadata if
there is a hash mismatch while applying instrumented profiles.

During the PGO optimized build using instrumented profiles, if the CFG of
the function has changed since generating the profile, a hash mismatch is
encountered. This patch emits this information as annotation metadata. We
plan to use this with Propeller which is done at the machine IR level.
Propeller is usually applied on top of PGO and a hash mismatch during
PGO could be used to detect source drift.

Differential Revision: https://reviews.llvm.org/D95495
llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
llvm/test/Transforms/PGOProfile/Inputs/hash_mismatch_metadata.proftext [new file with mode: 0644]
llvm/test/Transforms/PGOProfile/hash_mismatch_metadata.ll [new file with mode: 0644]