mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-21 18:24:23 +00:00
Handle inlining in populateLTOPassManager like in populateModulePassManager.
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216178 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -145,7 +145,7 @@ public:
|
|||||||
|
|
||||||
/// populateModulePassManager - This sets up the primary pass manager.
|
/// populateModulePassManager - This sets up the primary pass manager.
|
||||||
void populateModulePassManager(PassManagerBase &MPM);
|
void populateModulePassManager(PassManagerBase &MPM);
|
||||||
void populateLTOPassManager(PassManagerBase &PM, bool RunInliner);
|
void populateLTOPassManager(PassManagerBase &PM);
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Registers a function for adding a standard set of passes. This should be
|
/// Registers a function for adding a standard set of passes. This should be
|
||||||
|
@ -477,7 +477,9 @@ bool LTOCodeGenerator::generateObjectFile(raw_ostream &out,
|
|||||||
if (!DisableOpt) {
|
if (!DisableOpt) {
|
||||||
PassManagerBuilder PMB;
|
PassManagerBuilder PMB;
|
||||||
PMB.DisableGVNLoadPRE = DisableGVNLoadPRE;
|
PMB.DisableGVNLoadPRE = DisableGVNLoadPRE;
|
||||||
PMB.populateLTOPassManager(passes, !DisableInline);
|
if (!DisableInline)
|
||||||
|
PMB.Inliner = createFunctionInliningPass();
|
||||||
|
PMB.populateLTOPassManager(passes);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure everything is still good.
|
// Make sure everything is still good.
|
||||||
|
@ -313,8 +313,7 @@ void PassManagerBuilder::populateModulePassManager(PassManagerBase &MPM) {
|
|||||||
addExtensionsToPM(EP_OptimizerLast, MPM);
|
addExtensionsToPM(EP_OptimizerLast, MPM);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PassManagerBuilder::populateLTOPassManager(PassManagerBase &PM,
|
void PassManagerBuilder::populateLTOPassManager(PassManagerBase &PM) {
|
||||||
bool RunInliner) {
|
|
||||||
// Provide AliasAnalysis services for optimizations.
|
// Provide AliasAnalysis services for optimizations.
|
||||||
addInitialAliasAnalysisPasses(PM);
|
addInitialAliasAnalysisPasses(PM);
|
||||||
|
|
||||||
@ -341,8 +340,11 @@ void PassManagerBuilder::populateLTOPassManager(PassManagerBase &PM,
|
|||||||
addExtensionsToPM(EP_Peephole, PM);
|
addExtensionsToPM(EP_Peephole, PM);
|
||||||
|
|
||||||
// Inline small functions
|
// Inline small functions
|
||||||
if (RunInliner)
|
bool RunInliner = Inliner;
|
||||||
PM.add(createFunctionInliningPass());
|
if (RunInliner) {
|
||||||
|
PM.add(Inliner);
|
||||||
|
Inliner = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
PM.add(createPruneEHPass()); // Remove dead EH info.
|
PM.add(createPruneEHPass()); // Remove dead EH info.
|
||||||
|
|
||||||
@ -483,5 +485,11 @@ void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB,
|
|||||||
LLVMBool RunInliner) {
|
LLVMBool RunInliner) {
|
||||||
PassManagerBuilder *Builder = unwrap(PMB);
|
PassManagerBuilder *Builder = unwrap(PMB);
|
||||||
PassManagerBase *LPM = unwrap(PM);
|
PassManagerBase *LPM = unwrap(PM);
|
||||||
Builder->populateLTOPassManager(*LPM, RunInliner != 0);
|
|
||||||
|
// A small backwards compatibility hack. populateLTOPassManager used to take
|
||||||
|
// an RunInliner option.
|
||||||
|
if (RunInliner && !Builder->Inliner)
|
||||||
|
Builder->Inliner = createFunctionInliningPass();
|
||||||
|
|
||||||
|
Builder->populateLTOPassManager(*LPM);
|
||||||
}
|
}
|
||||||
|
@ -179,7 +179,8 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
if (StandardLinkOpts) {
|
if (StandardLinkOpts) {
|
||||||
PassManagerBuilder Builder;
|
PassManagerBuilder Builder;
|
||||||
Builder.populateLTOPassManager(PM, /*RunInliner=*/true);
|
Builder.Inliner = createFunctionInliningPass();
|
||||||
|
Builder.populateLTOPassManager(PM);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OptLevelO1 || OptLevelO2 || OptLevelO3) {
|
if (OptLevelO1 || OptLevelO2 || OptLevelO3) {
|
||||||
|
@ -267,7 +267,9 @@ static void AddStandardLinkPasses(PassManagerBase &PM) {
|
|||||||
if (DisableOptimizations) return;
|
if (DisableOptimizations) return;
|
||||||
|
|
||||||
PassManagerBuilder Builder;
|
PassManagerBuilder Builder;
|
||||||
Builder.populateLTOPassManager(PM, /*RunInliner=*/!DisableInline);
|
if (!DisableInline)
|
||||||
|
Builder.Inliner = createFunctionInliningPass();
|
||||||
|
Builder.populateLTOPassManager(PM);
|
||||||
}
|
}
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
Reference in New Issue
Block a user