summaryrefslogtreecommitdiffstats
path: root/clang/test/CoverageMapping/system_macro.cpp
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2016-12-06 23:02:13 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2016-12-06 23:02:13 +0000
commit7357b2ad62b8e31870aeb5445fde7566d55e145a (patch)
treece8351c6ae1108663b9e79241ab2c7e129919a9a /clang/test/CoverageMapping/system_macro.cpp
parent0559b9e557addc6093db2667b0a22a8a4e6ca9d4 (diff)
downloadbcm5719-llvm-7357b2ad62b8e31870aeb5445fde7566d55e145a.tar.gz
bcm5719-llvm-7357b2ad62b8e31870aeb5445fde7566d55e145a.zip
LowerTypeTests: Improve performance by optimising type metadata queries.
Requesting metadata for a global is a relatively expensive operation as it involves a map lookup, but it's one that we need to do relatively frequently in this pass to collect the list of type metadata nodes associated with a global. This change improves the performance of type metadata queries by prebuilding data structures that keep the global together with its list of type metadata, and changing the pass to use that data structure wherever we were previously passing global references around. This change also eliminates some O(N^2) behavior by collecting the list of globals associated with each type identifier during the first pass over the list of globals rather than visiting each global to compute that list every time we add a new type identifier. Reduces pass runtime on a module containing Chrome's vtables from over 60s to 0.9s. Differential Revision: https://reviews.llvm.org/D27484 llvm-svn: 288859
Diffstat (limited to 'clang/test/CoverageMapping/system_macro.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud