Analysis groups need to initialize their default implementations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116441 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Owen Anderson 2010-10-13 21:49:58 +00:00
parent a7dbc1ead7
commit 325e264355
5 changed files with 7 additions and 5 deletions

View File

@ -236,8 +236,9 @@ struct RegisterAnalysisGroup : public RegisterAGBase {
} }
}; };
#define INITIALIZE_ANALYSIS_GROUP(agName, name) \ #define INITIALIZE_ANALYSIS_GROUP(agName, name, defaultPass) \
static void* initialize##agName##AnalysisGroupOnce(PassRegistry &Registry) { \ static void* initialize##agName##AnalysisGroupOnce(PassRegistry &Registry) { \
initialize##defaultPass##Pass(Registry); \
PassInfo *AI = new PassInfo(name, & agName :: ID); \ PassInfo *AI = new PassInfo(name, & agName :: ID); \
Registry.registerAnalysisGroup(& agName ::ID, 0, *AI, false); \ Registry.registerAnalysisGroup(& agName ::ID, 0, *AI, false); \
return AI; \ return AI; \

View File

@ -36,7 +36,7 @@
using namespace llvm; using namespace llvm;
// Register the AliasAnalysis interface, providing a nice name to refer to. // Register the AliasAnalysis interface, providing a nice name to refer to.
INITIALIZE_ANALYSIS_GROUP(AliasAnalysis, "Alias Analysis") INITIALIZE_ANALYSIS_GROUP(AliasAnalysis, "Alias Analysis", BasicAliasAnalysis)
char AliasAnalysis::ID = 0; char AliasAnalysis::ID = 0;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//

View File

@ -171,7 +171,7 @@ private:
} //End anonymous namespace } //End anonymous namespace
INITIALIZE_ANALYSIS_GROUP(CallGraph, "Call Graph") INITIALIZE_ANALYSIS_GROUP(CallGraph, "Call Graph", BasicCallGraph)
INITIALIZE_AG_PASS(BasicCallGraph, CallGraph, "basiccg", INITIALIZE_AG_PASS(BasicCallGraph, CallGraph, "basiccg",
"Basic CallGraph Construction", false, true, true) "Basic CallGraph Construction", false, true, true)

View File

@ -29,7 +29,7 @@ namespace llvm {
} }
// Register the ProfileInfo interface, providing a nice name to refer to. // Register the ProfileInfo interface, providing a nice name to refer to.
INITIALIZE_ANALYSIS_GROUP(ProfileInfo, "Profile Information") INITIALIZE_ANALYSIS_GROUP(ProfileInfo, "Profile Information", NoProfileInfo)
namespace llvm { namespace llvm {

View File

@ -24,7 +24,8 @@
using namespace llvm; using namespace llvm;
// Register the RegisterCoalescer interface, providing a nice name to refer to. // Register the RegisterCoalescer interface, providing a nice name to refer to.
INITIALIZE_ANALYSIS_GROUP(RegisterCoalescer, "Register Coalescer") INITIALIZE_ANALYSIS_GROUP(RegisterCoalescer, "Register Coalescer",
SimpleRegisterCoalescing)
char RegisterCoalescer::ID = 0; char RegisterCoalescer::ID = 0;
// RegisterCoalescer destructor: DO NOT move this to the header file // RegisterCoalescer destructor: DO NOT move this to the header file