diff options
author | Ali Tamur <tamur@google.com> | 2018-11-12 21:43:43 +0000 |
---|---|---|
committer | Ali Tamur <tamur@google.com> | 2018-11-12 21:43:43 +0000 |
commit | d482b01a62ab2ddafefe7b217d664f597dbddaf2 (patch) | |
tree | 33abaea438d63a030d74d74657b0345df1e3940b /llvm/lib/Passes/PassPlugin.cpp | |
parent | ba88e21f8c72f3f932a49288f524467adb017525 (diff) | |
download | bcm5719-llvm-d482b01a62ab2ddafefe7b217d664f597dbddaf2.tar.gz bcm5719-llvm-d482b01a62ab2ddafefe7b217d664f597dbddaf2.zip |
Use a data structure better suited for large sets in SimplificationTracker.
Summary:
D44571 changed SimplificationTracker to use SmallSetVector to keep phi nodes. As a result, when the number of phi nodes is large, the build time performance suffers badly. When building for power pc, we have a case where there are more than 600.000 nodes, and it takes too long to compile.
In this change, I partially revert D44571 to use SmallPtrSet, which does an acceptable job with any number of elements. In the original patch, having a deterministic iteration order was mentioned as a motivation, however I think it only applies to the nodes already matched in MatchPhiSet method, which I did not touch.
Reviewers: bjope, skatkov
Reviewed By: bjope, skatkov
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D54007
llvm-svn: 346710
Diffstat (limited to 'llvm/lib/Passes/PassPlugin.cpp')
0 files changed, 0 insertions, 0 deletions