[CSSPGO] Undoing the concept of dangling pseudo probe
authorHongtao Yu <hoy@fb.com>
Thu, 17 Jun 2021 18:09:13 +0000 (11:09 -0700)
committerHongtao Yu <hoy@fb.com>
Fri, 18 Jun 2021 22:14:11 +0000 (15:14 -0700)
commitbd52495518808bdbf24f4d8e9e20774d6d2e3333
tree584ed0830c3b5ad0a0e9e5007b07972392df3d57
parent36f93fc594ea168d541bb2fde95014a5502bef88
[CSSPGO] Undoing the concept of dangling pseudo probe

As a follow-up to https://reviews.llvm.org/D104129, I'm cleaning up the danling probe related code in both the compiler and llvm-profgen.

I'm seeing a 5% size win for the pseudo_probe section for SPEC2017 and 10% for Ciner. Certain benchmark such as 602.gcc has a 20% size win. No obvious difference seen on build time for SPEC2017 and Cinder.

Reviewed By: wenlei

Differential Revision: https://reviews.llvm.org/D104477
38 files changed:
llvm/include/llvm/CodeGen/MachineBasicBlock.h
llvm/include/llvm/IR/PseudoProbe.h
llvm/include/llvm/MC/MCPseudoProbe.h
llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
llvm/lib/CodeGen/BranchFolding.cpp
llvm/lib/CodeGen/MachineBasicBlock.cpp
llvm/lib/CodeGen/PseudoProbeInserter.cpp
llvm/lib/CodeGen/TailDuplicator.cpp
llvm/lib/IR/PseudoProbe.cpp
llvm/lib/Transforms/IPO/SampleProfile.cpp
llvm/lib/Transforms/IPO/SampleProfileProbe.cpp
llvm/lib/Transforms/Scalar/JumpThreading.cpp
llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
llvm/lib/Transforms/Utils/Local.cpp
llvm/lib/Transforms/Utils/SimplifyCFG.cpp
llvm/test/Transforms/SampleProfile/pseudo-probe-dangle.ll
llvm/test/Transforms/SampleProfile/pseudo-probe-dangle2.ll
llvm/test/Transforms/SampleProfile/pseudo-probe-dangle3.ll
llvm/test/Transforms/SampleProfile/pseudo-probe-dangling.mir [deleted file]
llvm/test/Transforms/SampleProfile/pseudo-probe-dedup.ll [deleted file]
llvm/test/tools/llvm-profgen/Inputs/inline-cs-dangling-pseudoprobe.perfscript [deleted file]
llvm/test/tools/llvm-profgen/Inputs/inline-cs-pseudoprobe.perfbin
llvm/test/tools/llvm-profgen/Inputs/noinline-cs-pseudoprobe.perfbin
llvm/test/tools/llvm-profgen/Inputs/recursion-compression-pseudoprobe.perfbin
llvm/test/tools/llvm-profgen/Inputs/truncated-pseudoprobe.ll
llvm/test/tools/llvm-profgen/Inputs/truncated-pseudoprobe.perfbin
llvm/test/tools/llvm-profgen/Inputs/truncated-pseudoprobe.perfscript
llvm/test/tools/llvm-profgen/Inputs/unique-linkage-name-probe.perfbin
llvm/test/tools/llvm-profgen/fname-canonicalization.test
llvm/test/tools/llvm-profgen/inline-cs-dangling-pseudoprobe.test [deleted file]
llvm/test/tools/llvm-profgen/inline-cs-pseudoprobe.test
llvm/test/tools/llvm-profgen/merge-cold-profile.test
llvm/test/tools/llvm-profgen/noinline-cs-pseudoprobe.test
llvm/test/tools/llvm-profgen/pseudoprobe-decoding.test
llvm/test/tools/llvm-profgen/recursion-compression-pseudoprobe.test
llvm/tools/llvm-profgen/ProfileGenerator.cpp
llvm/tools/llvm-profgen/PseudoProbe.cpp
llvm/tools/llvm-profgen/PseudoProbe.h