aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/DataExtractor.cpp
diff options
context:
space:
mode:
authorRoman Tereshin <rtereshin@apple.com>2020-02-23 21:53:19 -0800
committerRoman Tereshin <rtereshin@apple.com>2020-02-24 13:30:01 -0800
commit6f87b162e636b0cfe590758621a606d2bc68424f (patch)
tree9e0260c726f9b57f1926ba0ed96ee67bdda0cf0d /llvm/lib/Support/DataExtractor.cpp
parenta8a4f99afb7c1f527ae9d1b274a67d0d3f2c3c4c (diff)
downloadllvm-6f87b162e636b0cfe590758621a606d2bc68424f.zip
llvm-6f87b162e636b0cfe590758621a606d2bc68424f.tar.gz
llvm-6f87b162e636b0cfe590758621a606d2bc68424f.tar.bz2
[MachineVerifier] Doing ::calcRegsPassed in RPO: ~35% faster MV, NFC
Depending on the target, test suite, pipeline config and perhaps other factors machine verifier when forced on with -verify-machineinstrs can increase compile time 2-2.5 times over (Release, Asserts On), taking up ~60% of the time. An invaluable tool, it significantly slows down machine verifier-enabled testing. Nearly 75% of its time MachineVerifier spends in the calcRegsPassed method. It's a classic forward dataflow analysis executed over sets, but visiting MBBs in arbitrary order. We switch that to RPO here. This speeds up MachineVerifier by about 35%, decreasing the overall compile time with -verify-machineinstrs by 20-25% or so. calcRegsPassed itself gets 2x faster here. All measured on a large suite of shaders targeting a number of GPUs. Reviewers: bogner, stoklund, rudkx, qcolombet Reviewed By: bogner Tags: #llvm Differential Revision: https://reviews.llvm.org/D75032
Diffstat (limited to 'llvm/lib/Support/DataExtractor.cpp')
0 files changed, 0 insertions, 0 deletions