aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/ModuleBuilder.cpp
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-02-14 08:09:20 +0000
committerBill Wendling <isanbard@gmail.com>2013-02-14 08:09:20 +0000
commitc86a2f39a9c3afaa61dce86e4d06d63900c3843b (patch)
tree540644fbd46978f994f21390c7aa4bad5328e75f /clang/lib/CodeGen/ModuleBuilder.cpp
parent039fa75e4d52d113bd0e7dbbd2be4dec4207dbf3 (diff)
downloadllvm-c86a2f39a9c3afaa61dce86e4d06d63900c3843b.zip
llvm-c86a2f39a9c3afaa61dce86e4d06d63900c3843b.tar.gz
llvm-c86a2f39a9c3afaa61dce86e4d06d63900c3843b.tar.bz2
Pass the target options through to code generation.
The code generation stuff is going to set attributes on the functions it generates. To do that it needs the target options. Pass them through. llvm-svn: 175141
Diffstat (limited to 'clang/lib/CodeGen/ModuleBuilder.cpp')
-rw-r--r--clang/lib/CodeGen/ModuleBuilder.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/ModuleBuilder.cpp b/clang/lib/CodeGen/ModuleBuilder.cpp
index 9421e0f..d6e5f06 100644
--- a/clang/lib/CodeGen/ModuleBuilder.cpp
+++ b/clang/lib/CodeGen/ModuleBuilder.cpp
@@ -31,13 +31,16 @@ namespace {
OwningPtr<const llvm::DataLayout> TD;
ASTContext *Ctx;
const CodeGenOptions CodeGenOpts; // Intentionally copied in.
+ const TargetOptions TargetOpts; // Intentionally copied in.
protected:
OwningPtr<llvm::Module> M;
OwningPtr<CodeGen::CodeGenModule> Builder;
public:
CodeGeneratorImpl(DiagnosticsEngine &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 TargetOptions &TO,
+ llvm::LLVMContext& C)
+ : Diags(diags), CodeGenOpts(CGO), TargetOpts(TO),
+ M(new llvm::Module(ModuleName, C)) {}
virtual ~CodeGeneratorImpl() {}
@@ -55,7 +58,7 @@ namespace {
M->setTargetTriple(Ctx->getTargetInfo().getTriple().getTriple());
M->setDataLayout(Ctx->getTargetInfo().getTargetDescription());
TD.reset(new llvm::DataLayout(Ctx->getTargetInfo().getTargetDescription()));
- Builder.reset(new CodeGen::CodeGenModule(Context, CodeGenOpts,
+ Builder.reset(new CodeGen::CodeGenModule(Context, CodeGenOpts, TargetOpts,
*M, *TD, Diags));
}
@@ -122,6 +125,7 @@ void CodeGenerator::anchor() { }
CodeGenerator *clang::CreateLLVMCodeGen(DiagnosticsEngine &Diags,
const std::string& ModuleName,
const CodeGenOptions &CGO,
+ const TargetOptions &TO,
llvm::LLVMContext& C) {
- return new CodeGeneratorImpl(Diags, ModuleName, CGO, C);
+ return new CodeGeneratorImpl(Diags, ModuleName, CGO, TO, C);
}