diff options
author | Roman Tereshin <rtereshin@apple.com> | 2020-02-23 21:53:19 -0800 |
---|---|---|
committer | Roman Tereshin <rtereshin@apple.com> | 2020-02-24 13:30:01 -0800 |
commit | 6f87b162e636b0cfe590758621a606d2bc68424f (patch) | |
tree | 9e0260c726f9b57f1926ba0ed96ee67bdda0cf0d /llvm/lib/Support/DataExtractor.cpp | |
parent | a8a4f99afb7c1f527ae9d1b274a67d0d3f2c3c4c (diff) | |
download | llvm-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