aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/BackendUtil.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2011-02-18 22:20:38 +0000
committerChris Lattner <sabre@nondot.org>2011-02-18 22:20:38 +0000
commitd98cec5ca2db0ff9919ffb3fc9833fd81ab06d5b (patch)
tree111ebcb9a2061cce70fffe87f59e539f065e7849 /clang/lib/CodeGen/BackendUtil.cpp
parent15c8b5ef8b315811a9476b765957f8c5fabec00d (diff)
downloadllvm-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.cpp15
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,