mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Respect LibraryInfo in populateLTOPassManager and use it. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216203 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8d1b742f7f
commit
4658ea9dc7
@ -466,11 +466,9 @@ bool LTOCodeGenerator::generateObjectFile(raw_ostream &out,
|
||||
mergedModule->setDataLayout(TargetMach->getSubtargetImpl()->getDataLayout());
|
||||
passes.add(new DataLayoutPass(mergedModule));
|
||||
|
||||
// Add appropriate TargetLibraryInfo for this module.
|
||||
passes.add(new TargetLibraryInfo(Triple(TargetMach->getTargetTriple())));
|
||||
|
||||
TargetMach->addAnalysisPasses(passes);
|
||||
|
||||
Triple TargetTriple(TargetMach->getTargetTriple());
|
||||
// Enabling internalize here would use its AllButMain variant. It
|
||||
// keeps only main if it exists and does nothing for libraries. Instead
|
||||
// we create the pass ourselves with the symbol list provided by the linker.
|
||||
@ -479,6 +477,7 @@ bool LTOCodeGenerator::generateObjectFile(raw_ostream &out,
|
||||
PMB.DisableGVNLoadPRE = DisableGVNLoadPRE;
|
||||
if (!DisableInline)
|
||||
PMB.Inliner = createFunctionInliningPass();
|
||||
PMB.LibraryInfo = new TargetLibraryInfo(TargetTriple);
|
||||
PMB.populateLTOPassManager(passes);
|
||||
}
|
||||
|
||||
|
@ -314,6 +314,10 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) {
|
||||
}
|
||||
|
||||
void PassManagerBuilder::populateLTOPassManager(PassManagerBase &PM) {
|
||||
// Add LibraryInfo if we have some.
|
||||
if (LibraryInfo)
|
||||
PM.add(new TargetLibraryInfo(*LibraryInfo));
|
||||
|
||||
// Provide AliasAnalysis services for optimizations.
|
||||
addInitialAliasAnalysisPasses(PM);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user