diff options
author | Chris Lattner <sabre@nondot.org> | 2011-02-18 22:20:38 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2011-02-18 22:20:38 +0000 |
commit | d98cec5ca2db0ff9919ffb3fc9833fd81ab06d5b (patch) | |
tree | 111ebcb9a2061cce70fffe87f59e539f065e7849 /clang/lib/CodeGen/BackendUtil.cpp | |
parent | 15c8b5ef8b315811a9476b765957f8c5fabec00d (diff) | |
download | llvm-d98cec5ca2db0ff9919ffb3fc9833fd81ab06d5b.zip llvm-d98cec5ca2db0ff9919ffb3fc9833fd81ab06d5b.tar.gz llvm-d98cec5ca2db0ff9919ffb3fc9833fd81ab06d5b.tar.bz2 |
install a TargetLibraryInfo configured with the appropriate
target triple. This would be a decent place to add -fno-builtin
info for example.
llvm-svn: 125971
Diffstat (limited to 'clang/lib/CodeGen/BackendUtil.cpp')
-rw-r--r-- | clang/lib/CodeGen/BackendUtil.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index f12715a..80c3b9c 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -26,6 +26,7 @@ #include "llvm/Support/raw_ostream.h" #include "llvm/Target/SubtargetFeature.h" #include "llvm/Target/TargetData.h" +#include "llvm/Target/TargetLibraryInfo.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetOptions.h" #include "llvm/Target/TargetRegistry.h" @@ -107,14 +108,18 @@ void EmitAssemblyHelper::CreatePasses() { OptLevel = 0; Inlining = CodeGenOpts.NoInlining; } + + FunctionPassManager *FPM = getPerFunctionPasses(); + + FPM->add(new TargetLibraryInfo(Triple(TheModule->getTargetTriple()))); // In -O0 if checking is disabled, we don't even have per-function passes. if (CodeGenOpts.VerifyModule) - getPerFunctionPasses()->add(createVerifierPass()); + FPM->add(createVerifierPass()); // Assume that standard function passes aren't run for -O0. if (OptLevel > 0) - llvm::createStandardFunctionPasses(getPerFunctionPasses(), OptLevel); + llvm::createStandardFunctionPasses(FPM, OptLevel); llvm::Pass *InliningPass = 0; switch (Inlining) { @@ -136,8 +141,12 @@ void EmitAssemblyHelper::CreatePasses() { break; } + PassManager *MPM = getPerModulePasses(); + + MPM->add(new TargetLibraryInfo(Triple(TheModule->getTargetTriple()))); + // For now we always create per module passes. - llvm::createStandardModulePasses(getPerModulePasses(), OptLevel, + llvm::createStandardModulePasses(MPM, OptLevel, CodeGenOpts.OptimizeSize, CodeGenOpts.UnitAtATime, CodeGenOpts.UnrollLoops, |