aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorWei Mi <wmi@google.com>2021-01-16 10:11:18 -0800
committerWei Mi <wmi@google.com>2021-01-28 21:58:17 -0800
commite15ae67a0a7b32aef883b84e127295ce3f6e9226 (patch)
tree3710e8aeb407f5213e86353f0972d459c95da921 /llvm/tools/llvm-readobj/llvm-readobj.cpp
parent8a4ad8849f4898dd19e31b9dcede7ace3575d00d (diff)
downloadllvm-e15ae67a0a7b32aef883b84e127295ce3f6e9226.zip
llvm-e15ae67a0a7b32aef883b84e127295ce3f6e9226.tar.gz
llvm-e15ae67a0a7b32aef883b84e127295ce3f6e9226.tar.bz2
[LiveDebugVariables] Add cache for SkipPHIsLabelsAndDebug to prevent
iterating the same PHI/LABEL/Debug instructions repeatedly. We run into a compiling timeout problem when building a target after its SampleFDO profile is updated. It is because some very large blocks with a bunch of PHIs at the beginning. LiveDebugVariables::emitDebugValues called during VirtRegRewriter phase searchs the insertion point for those large BBs repeatedly in SkipPHIsLabelsAndDebug, and each time SkipPHIsLabelsAndDebug needs to go through the same set of PHIs before it can find the first non PHI/Label/Debug instruction. This patch adds a cache to save the last position for the sequence which has been checked in the previous call of SkipPHIsLabelsAndDebug. Differential Revision: https://reviews.llvm.org/D94981
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
0 files changed, 0 insertions, 0 deletions