aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2011-09-16 23:01:39 +0000
committerTed Kremenek <kremenek@apple.com>2011-09-16 23:01:39 +0000
commit459597a6eb8a48d65e4613825023fecfa6656720 (patch)
tree698f35210a7e3630331e8616c44b75fdad0f52d4 /clang/lib/Frontend/CompilerInvocation.cpp
parent502848cedadf8d503fa14b67340cf3dd1a7545d1 (diff)
downloadllvm-459597a6eb8a48d65e4613825023fecfa6656720.zip
llvm-459597a6eb8a48d65e4613825023fecfa6656720.tar.gz
llvm-459597a6eb8a48d65e4613825023fecfa6656720.tar.bz2
Fix massive LiveVariables regression (due to LiveVariables rewrite) by addressing two performance problems:
- Speed of "merge()", which merged data flow facts. This was doing a set canonicalization on every insertion, which was super slow. To fix this, we use ImmutableSetRef. - Visit CFGBlocks in reverse postorder. This is a huge speedup, as on some test cases the algorithm would take many iterations to converge. This contains a bunch of copy-paste from UninitializedValues.cpp and ThreadSafety.cpp. The idea was to get something working first, and then refactor the common logic for all three files into a separate analysis/library entry point. llvm-svn: 139968
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions