aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCObjectFileInfo.cpp
diff options
context:
space:
mode:
authorJeremy Morse <jeremy.morse@sony.com>2022-02-01 18:55:08 +0000
committerJeremy Morse <jeremy.morse@sony.com>2022-02-01 18:58:06 +0000
commit91fb66cf91ae557d45bde7931cbb364f1c08d245 (patch)
tree122bea1db8f94438b5114b6f955c5d1935b051fe /llvm/lib/MC/MCObjectFileInfo.cpp
parent53d5757ea257bca05e049bc0d70abf4820899c56 (diff)
downloadllvm-91fb66cf91ae557d45bde7931cbb364f1c08d245.zip
llvm-91fb66cf91ae557d45bde7931cbb364f1c08d245.tar.gz
llvm-91fb66cf91ae557d45bde7931cbb364f1c08d245.tar.bz2
[DebugInfo][InstrRef][NFC] Don't build a map of un-needed values
When finding locations for variable values at the start of a block, we build a large map of every value to every location, and then pick out the locations for values that are desired. This takes up quite a lot of time, because, unsurprisingly, there are usually more values in registers and stack slots than there are variables. This patch instead creates a map of desired values to their locations, which are initially illegal locations. Then, as we examine every available value, we can select locations for values we care about, and ignore those that we don't. This substantially reduces the amount of work done (i.e., building a map up of values to locations that nothing wants or needs). Geomean performance improvement of 1% on CTMark, woo. Differential Revision: https://reviews.llvm.org/D118597
Diffstat (limited to 'llvm/lib/MC/MCObjectFileInfo.cpp')
0 files changed, 0 insertions, 0 deletions