[PGO] Avoid instrumenting constants at value sites
authorBetul Buyukkurt <betulb@codeaurora.org>
Thu, 31 Mar 2016 18:41:34 +0000 (18:41 +0000)
committerBetul Buyukkurt <betulb@codeaurora.org>
Thu, 31 Mar 2016 18:41:34 +0000 (18:41 +0000)
commit3da993c4192c64334bf667d53b74378b369973b3
tree4ad999ed7de6d26ab4d3d9b3b20ac83a0656fae5
parente1a2e90ffadd810ef6bd580e90b42a83958dfc11
[PGO] Avoid instrumenting constants at value sites

Value profiling should not profile constants and/or constant
expressions when they appear as callees in call instructions.
Constant expressions form when a direct callee has bitcasts or
inttoptr(ptrtint (callee)) nests surrounding it. Value profiling
should avoid instrumenting such cases. Mostly NFC.

llvm-svn: 265037
clang/lib/CodeGen/CodeGenPGO.cpp
clang/test/Profile/c-avoid-direct-call.c [new file with mode: 0644]