diff options
-rw-r--r-- | clang/CodeGen/CodeGenFunction.cpp | 4 | ||||
-rw-r--r-- | clang/CodeGen/CodeGenFunction.h | 7 | ||||
-rw-r--r-- | clang/CodeGen/CodeGenModule.cpp | 4 | ||||
-rw-r--r-- | clang/CodeGen/CodeGenModule.h | 8 |
4 files changed, 17 insertions, 6 deletions
diff --git a/clang/CodeGen/CodeGenFunction.cpp b/clang/CodeGen/CodeGenFunction.cpp index 4dece886bec..d3abbc97e2b 100644 --- a/clang/CodeGen/CodeGenFunction.cpp +++ b/clang/CodeGen/CodeGenFunction.cpp @@ -23,7 +23,7 @@ using namespace clang; using namespace CodeGen; CodeGenFunction::CodeGenFunction(CodeGenModule &cgm) - : CGM(cgm), Target(CGM.getContext().Target), Types(Target) {} + : CGM(cgm), Target(CGM.getContext().Target) {} ASTContext &CodeGenFunction::getContext() const { return CGM.getContext(); @@ -40,7 +40,7 @@ llvm::BasicBlock *CodeGenFunction::getBasicBlockForLabel(const LabelStmt *S) { const llvm::Type *CodeGenFunction::ConvertType(QualType T, SourceLocation Loc) { - return Types.ConvertType(T, Loc); + return CGM.getTypes().ConvertType(T, Loc); } void CodeGenFunction::GenerateCode(const FunctionDecl *FD) { diff --git a/clang/CodeGen/CodeGenFunction.h b/clang/CodeGen/CodeGenFunction.h index 8897d04eb34..d40ce4b3ced 100644 --- a/clang/CodeGen/CodeGenFunction.h +++ b/clang/CodeGen/CodeGenFunction.h @@ -16,7 +16,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/Support/LLVMBuilder.h" -#include "CodeGenTypes.h" +#include <vector> namespace llvm { class Module; @@ -26,6 +26,10 @@ namespace clang { class ASTContext; class Decl; class FunctionDecl; + class TargetInfo; + class SourceLocation; + class QualType; + class FunctionTypeProto; class Stmt; class CompoundStmt; @@ -121,7 +125,6 @@ class CodeGenFunction { CodeGenModule &CGM; // Per-module state. TargetInfo &Target; llvm::LLVMBuilder Builder; - CodeGenTypes Types; const FunctionDecl *CurFuncDecl; llvm::Function *CurFn; diff --git a/clang/CodeGen/CodeGenModule.cpp b/clang/CodeGen/CodeGenModule.cpp index 648e0ad30a5..6ec9b796bd9 100644 --- a/clang/CodeGen/CodeGenModule.cpp +++ b/clang/CodeGen/CodeGenModule.cpp @@ -13,11 +13,15 @@ #include "CodeGenModule.h" #include "CodeGenFunction.h" +#include "clang/AST/ASTContext.h" #include "clang/AST/Decl.h" using namespace clang; using namespace CodeGen; +CodeGenModule::CodeGenModule(ASTContext &C, llvm::Module &M) + : Context(C), TheModule(M), Types(C.Target) {} + void CodeGenModule::EmitFunction(FunctionDecl *FD) { // If this is not a prototype, emit the body. if (FD->getBody()) diff --git a/clang/CodeGen/CodeGenModule.h b/clang/CodeGen/CodeGenModule.h index 448d0f17f86..d72b84549c8 100644 --- a/clang/CodeGen/CodeGenModule.h +++ b/clang/CodeGen/CodeGenModule.h @@ -14,6 +14,8 @@ #ifndef CODEGEN_CODEGENMODULE_H #define CODEGEN_CODEGENMODULE_H +#include "CodeGenTypes.h" + namespace llvm { class Module; class Constant; @@ -31,13 +33,15 @@ namespace CodeGen { class CodeGenModule { ASTContext &Context; llvm::Module &TheModule; - + CodeGenTypes Types; + //llvm::DenseMap<const Decl*, llvm::Constant*> GlobalDeclMap; public: - CodeGenModule(ASTContext &C, llvm::Module &M) : Context(C), TheModule(M) {} + CodeGenModule(ASTContext &C, llvm::Module &M); ASTContext &getContext() const { return Context; } llvm::Module &getModule() const { return TheModule; } + CodeGenTypes &getTypes() { return Types; } void EmitFunction(FunctionDecl *FD); |