aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2020-07-22 13:10:59 -0700
committerFangrui Song <maskray@google.com>2020-07-22 13:12:19 -0700
commit5724c8ba29baef986a4a9ee77df98f638ee9e641 (patch)
treef15409780041f212a9c9b8371ee8d559ed4ac1ac
parentfdb45f54b6c0de00ba3bfa5dd157161ebb12799d (diff)
downloadllvm-5724c8ba29baef986a4a9ee77df98f638ee9e641.zip
llvm-5724c8ba29baef986a4a9ee77df98f638ee9e641.tar.gz
llvm-5724c8ba29baef986a4a9ee77df98f638ee9e641.tar.bz2
Temporarily revert D83903 "[PGO] Enable the extended value profile buckets for mem op sizes."
`__llvm_profile_instrument_memop` transitively calls calloc, thus calloc should not be instrumented. I saw a `calloc -> __llvm_profile_instrument_memop -> calloc -> __llvm_profile_instrument_memop -> ...` infinite loop leading to stack overflow when the malloc implementation (e.g. tcmalloc) is built and instrumented along with the application. We should figure out the library calls which may be instrumented and disable their instrumentation before rolling out this change. Reviewed By: yamauchi Differential Revision: https://reviews.llvm.org/D84358
-rw-r--r--llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
index c2e4e93..0a35195 100644
--- a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
+++ b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
@@ -78,7 +78,7 @@ cl::opt<bool> UseOldMemOpValueProf(
"use-old-memop-value-prof",
cl::desc("Use the old memop value profiling buckets. This is "
"transitional and to be removed after switching. "),
- cl::init(false));
+ cl::init(true));
namespace {