diff options
author | Nate Begeman <natebegeman@mac.com> | 2008-04-20 06:29:50 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2008-04-20 06:29:50 +0000 |
commit | 4c13b7a3973d2d263d9682d7b68fbfeb76334af5 (patch) | |
tree | 9a387cde53b7eceee1735bf2ce2cbd558c3a3648 /lib/CodeGen/CodeGenModule.h | |
parent | b1698cf972be75084d760c82389ab5b49a386c31 (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.h | 4 |
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); |