summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2016-05-26 21:42:47 +0000
committerAdrian Prantl <aprantl@apple.com>2016-05-26 21:42:47 +0000
commit7509d54b216924b592c1752eface9789f683d616 (patch)
tree58878c779d3a56874d240abb674b48344537b3e9 /llvm/lib/Transforms
parentf26017baf9d941882e24680518156024ce9c8cae (diff)
downloadbcm5719-llvm-7509d54b216924b592c1752eface9789f683d616.tar.gz
bcm5719-llvm-7509d54b216924b592c1752eface9789f683d616.zip
PR26055: Speed up LiveDebugValues::transferDebugValue()
This patch builds upon r270776 and speeds up LiveDebugValues::transferDebugValue() by adding an index that maps each DebugVariable to its open VarLoc. The transferDebugValue() function needs to close all open ranges for a given DebugVariable. Iterating over the set bits of OpenRanges is prohibitively slow in practice. I experimented with using the sorted map of VarLocs in the UniqueVector to iterate only over the range of VarLocs with a given DebugVariable, but the binary search turned out to be even more expensive than just iterating over the set bits in OpenRanges. Instead, this patch exploits the fact that there can only be one open location for each DebugVariable and redundantly stores this location in a DenseMap. This patch brings the time spent in the LiveDebugValues pass down to an almost neglectiable amount. http://llvm.org/bugs/show_bug.cgi?id=26055 http://reviews.llvm.org/D20636 rdar://problem/24091200 llvm-svn: 270923
Diffstat (limited to 'llvm/lib/Transforms')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud