aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/PassSupport.h
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2010-10-20 22:22:30 +0000
committerOwen Anderson <resistor@mac.com>2010-10-20 22:22:30 +0000
commit75f6df283f726c289b240fe8c5f2f42cdfff5d5f (patch)
treedb80bdfeaf16f8f7510d3d24f9603e33f1bb0e7f /include/llvm/PassSupport.h
parentba13864483b696e7f8e2058c3a50b5d901f2213b (diff)
downloadexternal_llvm-75f6df283f726c289b240fe8c5f2f42cdfff5d5f.zip
external_llvm-75f6df283f726c289b240fe8c5f2f42cdfff5d5f.tar.gz
external_llvm-75f6df283f726c289b240fe8c5f2f42cdfff5d5f.tar.bz2
Attempt to fix valgrind complaining about (benign) leaks in pass registration by having PassRegistry
delete PassInfo objects that were created using new-style initialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116959 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/PassSupport.h')
-rw-r--r--include/llvm/PassSupport.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/include/llvm/PassSupport.h b/include/llvm/PassSupport.h
index d1b4f26..d00d0c0 100644
--- a/include/llvm/PassSupport.h
+++ b/include/llvm/PassSupport.h
@@ -149,7 +149,7 @@ private:
static void* initialize##passName##PassOnce(PassRegistry &Registry) { \
PassInfo *PI = new PassInfo(name, arg, & passName ::ID, \
PassInfo::NormalCtor_t(callDefaultCtor< passName >), cfg, analysis); \
- Registry.registerPass(*PI); \
+ Registry.registerPass(*PI, true); \
return PI; \
} \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
@@ -167,7 +167,7 @@ private:
#define INITIALIZE_PASS_END(passName, arg, name, cfg, analysis) \
PassInfo *PI = new PassInfo(name, arg, & passName ::ID, \
PassInfo::NormalCtor_t(callDefaultCtor< passName >), cfg, analysis); \
- Registry.registerPass(*PI); \
+ Registry.registerPass(*PI, true); \
return PI; \
} \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
@@ -252,7 +252,7 @@ struct RegisterAnalysisGroup : public RegisterAGBase {
static void* initialize##agName##AnalysisGroupOnce(PassRegistry &Registry) { \
initialize##defaultPass##Pass(Registry); \
PassInfo *AI = new PassInfo(name, & agName :: ID); \
- Registry.registerAnalysisGroup(& agName ::ID, 0, *AI, false); \
+ Registry.registerAnalysisGroup(& agName ::ID, 0, *AI, false, true); \
return AI; \
} \
void llvm::initialize##agName##AnalysisGroup(PassRegistry &Registry) { \
@@ -265,10 +265,11 @@ struct RegisterAnalysisGroup : public RegisterAGBase {
if (!def) initialize##agName##AnalysisGroup(Registry); \
PassInfo *PI = new PassInfo(name, arg, & passName ::ID, \
PassInfo::NormalCtor_t(callDefaultCtor< passName >), cfg, analysis); \
- Registry.registerPass(*PI); \
+ Registry.registerPass(*PI, true); \
\
PassInfo *AI = new PassInfo(name, & agName :: ID); \
- Registry.registerAnalysisGroup(& agName ::ID, & passName ::ID, *AI, def); \
+ Registry.registerAnalysisGroup(& agName ::ID, & passName ::ID, \
+ *AI, def, true); \
return AI; \
} \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \
@@ -283,10 +284,11 @@ struct RegisterAnalysisGroup : public RegisterAGBase {
#define INITIALIZE_AG_PASS_END(passName, agName, arg, n, cfg, analysis, def) \
PassInfo *PI = new PassInfo(n, arg, & passName ::ID, \
PassInfo::NormalCtor_t(callDefaultCtor< passName >), cfg, analysis); \
- Registry.registerPass(*PI); \
+ Registry.registerPass(*PI, true); \
\
PassInfo *AI = new PassInfo(n, & agName :: ID); \
- Registry.registerAnalysisGroup(& agName ::ID, & passName ::ID, *AI, def); \
+ Registry.registerAnalysisGroup(& agName ::ID, & passName ::ID, \
+ *AI, def, true); \
return AI; \
} \
void llvm::initialize##passName##Pass(PassRegistry &Registry) { \