aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CodeGenModule.h
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2008-04-20 06:29:50 +0000
committerNate Begeman <natebegeman@mac.com>2008-04-20 06:29:50 +0000
commit4c13b7a3973d2d263d9682d7b68fbfeb76334af5 (patch)
tree9a387cde53b7eceee1735bf2ce2cbd558c3a3648 /lib/CodeGen/CodeGenModule.h
parentb1698cf972be75084d760c82389ab5b49a386c31 (diff)
Only generate code for static functions and global variables that are actually used.
Warn about unused static functions and variables. This fixes PR1998. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49987 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenModule.h')
-rw-r--r--lib/CodeGen/CodeGenModule.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h
index d40e35e00c..aa676d6fdc 100644
--- a/lib/CodeGen/CodeGenModule.h
+++ b/lib/CodeGen/CodeGenModule.h
@@ -59,6 +59,8 @@ class CodeGenModule {
llvm::Function *MemCpyFn;
llvm::Function *MemSetFn;
llvm::DenseMap<const Decl*, llvm::Constant*> GlobalDeclMap;
+ std::vector<const Decl*> StaticDecls;
+
std::vector<llvm::Constant*> GlobalCtors;
std::vector<llvm::Constant*> Annotations;
@@ -103,10 +105,12 @@ public:
void EmitGlobalCtors(void);
void AddAnnotation(llvm::Constant *C) { Annotations.push_back(C); }
void EmitAnnotations(void);
+ void EmitStatics(void);
void EmitObjCMethod(const ObjCMethodDecl *OMD);
void EmitFunction(const FunctionDecl *FD);
void EmitGlobalVar(const VarDecl *D);
+ void EmitGlobalVarInit(const VarDecl *D);
void EmitGlobalVarDeclarator(const VarDecl *D);
void UpdateCompletedType(const TagDecl *D);
llvm::Constant *EmitGlobalInit(const Expr *E);