diff options
author | John McCall <rjmccall@apple.com> | 2010-03-04 00:23:29 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-03-04 00:23:29 +0000 |
commit | 6abe39c61e8240898d286cb732099693282ebacd (patch) | |
tree | bb4c8c319da128673f6095f57e13b6716b615f0b /clang/lib/CodeGen/ModuleBuilder.cpp | |
parent | e14c4087a39e3cdf71ed3d979705056a448421e8 (diff) | |
download | bcm5719-llvm-6abe39c61e8240898d286cb732099693282ebacd.tar.gz bcm5719-llvm-6abe39c61e8240898d286cb732099693282ebacd.zip |
Create a TargetMachine whenever we create a CodeGenAction. The codegen of
some builtins will rely on target knowledge.
llvm-svn: 97693
Diffstat (limited to 'clang/lib/CodeGen/ModuleBuilder.cpp')
-rw-r--r-- | clang/lib/CodeGen/ModuleBuilder.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/ModuleBuilder.cpp b/clang/lib/CodeGen/ModuleBuilder.cpp index 1e1edc1c482..4ae18bbb14a 100644 --- a/clang/lib/CodeGen/ModuleBuilder.cpp +++ b/clang/lib/CodeGen/ModuleBuilder.cpp @@ -29,6 +29,7 @@ namespace { class CodeGeneratorImpl : public CodeGenerator { Diagnostic &Diags; llvm::OwningPtr<const llvm::TargetData> TD; + const llvm::TargetMachine &TM; ASTContext *Ctx; const CodeGenOptions CodeGenOpts; // Intentionally copied in. protected: @@ -36,8 +37,11 @@ namespace { llvm::OwningPtr<CodeGen::CodeGenModule> Builder; public: CodeGeneratorImpl(Diagnostic &diags, const std::string& ModuleName, - const CodeGenOptions &CGO, llvm::LLVMContext& C) - : Diags(diags), CodeGenOpts(CGO), M(new llvm::Module(ModuleName, C)) {} + const CodeGenOptions &CGO, + const llvm::TargetMachine &TM, + llvm::LLVMContext& C) + : Diags(diags), TM(TM), CodeGenOpts(CGO), + M(new llvm::Module(ModuleName, C)) {} virtual ~CodeGeneratorImpl() {} @@ -56,7 +60,7 @@ namespace { M->setDataLayout(Ctx->Target.getTargetDescription()); TD.reset(new llvm::TargetData(Ctx->Target.getTargetDescription())); Builder.reset(new CodeGen::CodeGenModule(Context, CodeGenOpts, - *M, *TD, Diags)); + *M, TM, *TD, Diags)); } virtual void HandleTopLevelDecl(DeclGroupRef DG) { @@ -95,6 +99,7 @@ namespace { CodeGenerator *clang::CreateLLVMCodeGen(Diagnostic &Diags, const std::string& ModuleName, const CodeGenOptions &CGO, + const llvm::TargetMachine &Machine, llvm::LLVMContext& C) { - return new CodeGeneratorImpl(Diags, ModuleName, CGO, C); + return new CodeGeneratorImpl(Diags, ModuleName, CGO, Machine, C); } |