diff options
Diffstat (limited to 'CodeGen')
-rw-r--r-- | CodeGen/CodeGenModule.cpp | 6 | ||||
-rw-r--r-- | CodeGen/CodeGenModule.h | 4 | ||||
-rw-r--r-- | CodeGen/CodeGenTypes.cpp | 5 | ||||
-rw-r--r-- | CodeGen/CodeGenTypes.h | 4 | ||||
-rw-r--r-- | CodeGen/ModuleBuilder.cpp | 5 |
5 files changed, 16 insertions, 8 deletions
diff --git a/CodeGen/CodeGenModule.cpp b/CodeGen/CodeGenModule.cpp index a596c08528..8bb4c2e51e 100644 --- a/CodeGen/CodeGenModule.cpp +++ b/CodeGen/CodeGenModule.cpp @@ -24,8 +24,10 @@ using namespace clang; using namespace CodeGen; -CodeGenModule::CodeGenModule(ASTContext &C, llvm::Module &M) - : Context(C), TheModule(M), Types(C, M), CFConstantStringClassRef(0) {} +CodeGenModule::CodeGenModule(ASTContext &C, llvm::Module &M, + const llvm::TargetData &TD) + : Context(C), TheModule(M), TheTargetData(TD), + Types(C, M, TD), CFConstantStringClassRef(0) {} llvm::Constant *CodeGenModule::GetAddrOfGlobalDecl(const ValueDecl *D) { // See if it is already in the map. diff --git a/CodeGen/CodeGenModule.h b/CodeGen/CodeGenModule.h index 4ca4f8c550..a044c0d02e 100644 --- a/CodeGen/CodeGenModule.h +++ b/CodeGen/CodeGenModule.h @@ -23,6 +23,7 @@ namespace llvm { class Constant; class Function; class GlobalVariable; + class TargetData; } namespace clang { @@ -39,6 +40,7 @@ namespace CodeGen { class CodeGenModule { ASTContext &Context; llvm::Module &TheModule; + const llvm::TargetData &TheTargetData; CodeGenTypes Types; llvm::Function *MemCpyFn; @@ -49,7 +51,7 @@ class CodeGenModule { std::vector<llvm::Function *> BuiltinFunctions; public: - CodeGenModule(ASTContext &C, llvm::Module &M); + CodeGenModule(ASTContext &C, llvm::Module &M, const llvm::TargetData &TD); ASTContext &getContext() const { return Context; } llvm::Module &getModule() const { return TheModule; } diff --git a/CodeGen/CodeGenTypes.cpp b/CodeGen/CodeGenTypes.cpp index 017b65c152..b65d596db7 100644 --- a/CodeGen/CodeGenTypes.cpp +++ b/CodeGen/CodeGenTypes.cpp @@ -60,8 +60,9 @@ namespace { }; } -CodeGenTypes::CodeGenTypes(ASTContext &Ctx, llvm::Module& M) - : Context(Ctx), Target(Ctx.Target), TheModule(M) { +CodeGenTypes::CodeGenTypes(ASTContext &Ctx, llvm::Module& M, + const llvm::TargetData &TD) + : Context(Ctx), Target(Ctx.Target), TheModule(M), TheTargetData(TD) { } CodeGenTypes::~CodeGenTypes() { diff --git a/CodeGen/CodeGenTypes.h b/CodeGen/CodeGenTypes.h index 95aea85c8e..fe012f70f3 100644 --- a/CodeGen/CodeGenTypes.h +++ b/CodeGen/CodeGenTypes.h @@ -21,6 +21,7 @@ namespace llvm { class Module; class Type; class PATypeHolder; + class TargetData; } namespace clang { @@ -61,6 +62,7 @@ class CodeGenTypes { ASTContext &Context; TargetInfo &Target; llvm::Module& TheModule; + const llvm::TargetData& TheTargetData; llvm::DenseMap<const TagDecl*, llvm::Type*> TagDeclTypes; @@ -91,7 +93,7 @@ class CodeGenTypes { /// interface to convert type T into a llvm::Type. const llvm::Type *ConvertNewType(QualType T); public: - CodeGenTypes(ASTContext &Ctx, llvm::Module &M); + CodeGenTypes(ASTContext &Ctx, llvm::Module &M, const llvm::TargetData &TD); ~CodeGenTypes(); TargetInfo &getTarget() const { return Target; } diff --git a/CodeGen/ModuleBuilder.cpp b/CodeGen/ModuleBuilder.cpp index 4a5a470563..a7586b64c2 100644 --- a/CodeGen/ModuleBuilder.cpp +++ b/CodeGen/ModuleBuilder.cpp @@ -18,8 +18,9 @@ using namespace clang; /// Init - Create an ModuleBuilder with the specified ASTContext. clang::CodeGen::BuilderTy * -clang::CodeGen::Init(ASTContext &Context, llvm::Module &M) { - return new CodeGenModule(Context, M); +clang::CodeGen::Init(ASTContext &Context, llvm::Module &M, + const llvm::TargetData &TD) { + return new CodeGenModule(Context, M, TD); } void clang::CodeGen::Terminate(BuilderTy *B) { |