Revert D81682 "[PGO] Extend the value profile buckets for mem op sizes."
authorFangrui Song <maskray@google.com>
Wed, 22 Jul 2020 23:08:06 +0000 (16:08 -0700)
committerFangrui Song <maskray@google.com>
Wed, 22 Jul 2020 23:08:25 +0000 (16:08 -0700)
commit27650ec5541cd604a5027ad63895e0badfd35efe
tree24c761725748954f3ea70c411df248ee251521fe
parent5f110273954ac152c9690b6cdf2a2e46f8908f0a
Revert D81682 "[PGO] Extend the value profile buckets for mem op sizes."

This reverts commit 4a539faf74b9b4c25ee3b880e4007564bd5139b0.

There is a __llvm_profile_instrument_range related crash in PGO-instrumented clang:

```
(gdb) bt
llvm::ConstantRange const&, llvm::APInt const&, unsigned int, bool) ()
llvm::ScalarEvolution::getRangeForAffineAR(llvm::SCEV const*, llvm::SCEV
const*, llvm::SCEV const*, unsigned int) ()
```

(The body of __llvm_profile_instrument_range is inlined, so we can only find__llvm_profile_instrument_target in the trace)

```
 23│    0x000055555dba0961 <+65>:    nopw   %cs:0x0(%rax,%rax,1)
 24│    0x000055555dba096b <+75>:    nopl   0x0(%rax,%rax,1)
 25│    0x000055555dba0970 <+80>:    mov    %rsi,%rbx
 26│    0x000055555dba0973 <+83>:    mov    0x8(%rsi),%rsi  # %rsi=-1 -> SIGSEGV
 27│    0x000055555dba0977 <+87>:    cmp    %r15,(%rbx)
 28│    0x000055555dba097a <+90>:    je     0x55555dba0a76 <__llvm_profile_instrument_target+342>
```
12 files changed:
compiler-rt/include/profile/InstrProfData.inc
compiler-rt/lib/profile/InstrProfilingValue.c
llvm/include/llvm/ProfileData/InstrProf.h
llvm/include/llvm/ProfileData/InstrProfData.inc
llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h
llvm/lib/ProfileData/InstrProf.cpp
llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp
llvm/test/Transforms/PGOProfile/memcpy.ll
llvm/test/Transforms/PGOProfile/memop_profile_funclet.ll
llvm/unittests/ProfileData/CMakeLists.txt
llvm/unittests/ProfileData/InstrProfDataTest.cpp [deleted file]