summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorEli Friedman <efriedma@codeaurora.org>2018-06-27 20:35:02 +0000
committerEli Friedman <efriedma@codeaurora.org>2018-06-27 20:35:02 +0000
commit199caa2e8090c5696a65a5b6bccf5d26ec50eb17 (patch)
tree49dff112ae69b6255a164f2b210656cf99c23f96 /llvm/tools/llvm-objdump/llvm-objdump.cpp
parent8a62ef0e1dc6659b2a0c831e2aedec3c86e81802 (diff)
downloadbcm5719-llvm-199caa2e8090c5696a65a5b6bccf5d26ec50eb17.tar.gz
bcm5719-llvm-199caa2e8090c5696a65a5b6bccf5d26ec50eb17.zip
[ScopHelper] Cache ScopExpander results.
The number of SCEV expressions is usually linear in the number of IR instructions being modeled. However, a naive SCEV visitor is not. For an expression like x*x, "x" will be visited twice. If x is itself an expression like x*x, that will be visited twice, etc, and the overall runtime is O(2^N) in the number of SCEV expressions. To prevent this from happening, add a cache, so we only visit each SCEV expression once. Not sure this is the best solution. Maybe we can instead check whether the SCEV is scop-invariant (in which case we never need to map the value). But we don't have a utility for that at the moment. Differential Revision: https://reviews.llvm.org/D47087 llvm-svn: 335783
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud