Don't pass llvm::DenseSet<> by value.
Summary: Fixes massive performance problems on large translation units. Reviewers: jordan_rose Reviewed By: jordan_rose Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D3471 llvm-svn: 206999
This commit is contained in:
parent
fcb3fa13c4
commit
fe65998777
|
@ -307,7 +307,7 @@ public:
|
|||
/// analyzed. This allows to redefine the default inlining policies when
|
||||
/// analyzing a given function.
|
||||
ExprEngine::InliningModes
|
||||
getInliningModeForFunction(const Decl *D, SetOfConstDecls Visited);
|
||||
getInliningModeForFunction(const Decl *D, const SetOfConstDecls &Visited);
|
||||
|
||||
/// \brief Build the call graph for all the top level decls of this TU and
|
||||
/// use it to define the order in which the functions should be visited.
|
||||
|
@ -414,8 +414,8 @@ void AnalysisConsumer::storeTopLevelDecls(DeclGroupRef DG) {
|
|||
}
|
||||
|
||||
static bool shouldSkipFunction(const Decl *D,
|
||||
SetOfConstDecls Visited,
|
||||
SetOfConstDecls VisitedAsTopLevel) {
|
||||
const SetOfConstDecls &Visited,
|
||||
const SetOfConstDecls &VisitedAsTopLevel) {
|
||||
if (VisitedAsTopLevel.count(D))
|
||||
return true;
|
||||
|
||||
|
@ -435,7 +435,7 @@ static bool shouldSkipFunction(const Decl *D,
|
|||
|
||||
ExprEngine::InliningModes
|
||||
AnalysisConsumer::getInliningModeForFunction(const Decl *D,
|
||||
SetOfConstDecls Visited) {
|
||||
const SetOfConstDecls &Visited) {
|
||||
// We want to reanalyze all ObjC methods as top level to report Retain
|
||||
// Count naming convention errors more aggressively. But we should tune down
|
||||
// inlining when reanalyzing an already inlined function.
|
||||
|
|
Loading…
Reference in New Issue