summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorFedor Sergeev <fedor.sergeev@azul.com>2018-10-05 22:32:01 +0000
committerFedor Sergeev <fedor.sergeev@azul.com>2018-10-05 22:32:01 +0000
commit884e52a7d230cf64f4814d0a3c367938083fa855 (patch)
treeaea0f960688b046078592b3208ada883e33680fe /lldb/packages/Python/lldbsuite/test
parent0a6c000c1687d70d849f15a6d51f0dad7680359f (diff)
downloadbcm5719-llvm-884e52a7d230cf64f4814d0a3c367938083fa855.tar.gz
bcm5719-llvm-884e52a7d230cf64f4814d0a3c367938083fa855.zip
[New PM][PassTiming] implement -time-passes for the new pass manager
Enable time-passes functionality through PassInstrumentation callbacks for passes and analyses. TimePassesHandler class keeps all the callbacks, the timing data as it is being collected as well as the stack of currently active timers. Parts of the fix that might be somewhat unobvious: - mapping of passes into Timer (TimingData) can not be done per-instance. PassID name provided into the callback is common for all the pass invocations. Thus the only way to get a timing with reasonable granularity is to collect timing data per pass invocation, getting a new timer for each BeforePass. Hence the key for TimingData uses a pair of <StringRef/unsigned count> to uniquely identify a pass invocation. - consequently, this new-pass-manager implementation performs no aggregation of timing data, reporting timings for each pass invocation separately. In that it differs from legacy-pass-manager time-passes implementation that reports timing data aggregated per pass instance. - pass managers and adaptors are not tracked, similar to how pass managers are not tracked in legacy time-passes. - TimerStack tracks timers that are active, each BeforePass pushes the new timer on stack, each AfterPass pops active timer from stack and stops it. Reviewers: chandlerc, philip.pfaffe Differential Revision: https://reviews.llvm.org/D51276 llvm-svn: 343898
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud