summaryrefslogtreecommitdiffstats
path: root/clang/lib/ARCMigrate/ARCMT.cpp
diff options
context:
space:
mode:
authorAlexander Shaposhnikov <shal1t712@gmail.com>2016-10-13 21:31:46 +0000
committerAlexander Shaposhnikov <shal1t712@gmail.com>2016-10-13 21:31:46 +0000
commitfd905fcc14d2282ecb56fea30839a60a1e994e9d (patch)
tree40296a4558bd5110f27b2efbe213bc43b8b939d3 /clang/lib/ARCMigrate/ARCMT.cpp
parent3baae885e1642b7d2abfeb2ed5d3660580cfbf87 (diff)
downloadbcm5719-llvm-fd905fcc14d2282ecb56fea30839a60a1e994e9d.tar.gz
bcm5719-llvm-fd905fcc14d2282ecb56fea30839a60a1e994e9d.zip
[analyzer] Remove superquadratic behaviour from DataflowWorklist
The class DataflowWorklist internally maintains a sorted list of pointers to CFGBlock and the method enqueuePredecessors has to call sortWorklist to maintain the invariant. The implementation based on vector + sort works well for small sizes but gets infeasible for relatively large sizes. In particular the issue takes place for some cryptographic libraries which use code generation. The diff replaces vector + sort with priority queue. For one of the implementations of AES this patch reduces the time for analysis from 204 seconds to 8 seconds. Test plan: make -j8 check-clang Differential revision: https://reviews.llvm.org/D25503 llvm-svn: 284166
Diffstat (limited to 'clang/lib/ARCMigrate/ARCMT.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud