We should not deserialize unused declarations from the PCH file. Achieve this by storing the top level declarations during parsing (HandleTopLevelDecl ASTConsumer callback) and analyzing/building a call graph only for those. Tested the patch on a sample ObjC file that uses PCH. With the patch, the analyzes is 17.5% faster and clang consumes 40% less memory. Got about 10% overall build/analyzes time decrease on a large Objective C project. A bit of CallGraph refactoring/cleanup as well.. llvm-svn: 154625
17 lines
458 B
Objective-C
17 lines
458 B
Objective-C
// RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-ipa=inlining -analyzer-stats -fblocks %s 2>&1 | FileCheck %s
|
|
// RUN: %clang_cc1 -analyze -analyzer-checker=core -analyzer-ipa=none -analyzer-stats -fblocks %s 2>&1 | FileCheck %s
|
|
|
|
@interface I
|
|
int f() {
|
|
return 0;
|
|
}
|
|
@end
|
|
|
|
@implementation I
|
|
+ (void *)ff{
|
|
return (void*)0;
|
|
}
|
|
@end
|
|
|
|
// CHECK: ... Statistics Collected ...
|
|
// CHECK: 2 AnalysisConsumer - The # of functions analysed (as top level). |