diff options
author | Adam Nemet <anemet@apple.com> | 2017-02-14 17:21:09 +0000 |
---|---|---|
committer | Adam Nemet <anemet@apple.com> | 2017-02-14 17:21:09 +0000 |
commit | bbb141c734d7dff41e1c41919362aa6f041e26cf (patch) | |
tree | fa67fe12770fcee2b5c2be0fbc8a6306825ed0f8 /llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp | |
parent | 24984e1238f507c7a6770283a855dced341552c8 (diff) | |
download | bcm5719-llvm-bbb141c734d7dff41e1c41919362aa6f041e26cf.tar.gz bcm5719-llvm-bbb141c734d7dff41e1c41919362aa6f041e26cf.zip |
Add new pass LazyMachineBlockFrequencyInfo
And use it in MachineOptimizationRemarkEmitter. A test will follow on top of
Justin's changes to enable MachineORE in AsmPrinter.
The approach is similar to the IR-level pass. It's a bit simpler because BPI
is immutable at the Machine level so we don't need to make that lazy.
Because of this, a new function mapping is introduced (BPIPassTrait::getBPI).
This function extracts BPI from the pass. In case of the lazy pass, this is
when the calculation of the BFI occurs. For Machine-level, this is the
identity function.
Differential Revision: https://reviews.llvm.org/D29836
llvm-svn: 295072
Diffstat (limited to 'llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp b/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp index c496e3226e5..557b5f8824d 100644 --- a/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp +++ b/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp @@ -172,10 +172,9 @@ void MachineBlockFrequencyInfo::getAnalysisUsage(AnalysisUsage &AU) const { MachineFunctionPass::getAnalysisUsage(AU); } -bool MachineBlockFrequencyInfo::runOnMachineFunction(MachineFunction &F) { - MachineBranchProbabilityInfo &MBPI = - getAnalysis<MachineBranchProbabilityInfo>(); - MachineLoopInfo &MLI = getAnalysis<MachineLoopInfo>(); +void MachineBlockFrequencyInfo::calculate( + const MachineFunction &F, const MachineBranchProbabilityInfo &MBPI, + const MachineLoopInfo &MLI) { if (!MBFI) MBFI.reset(new ImplType); MBFI->calculate(F, MBPI, MLI); @@ -184,6 +183,13 @@ bool MachineBlockFrequencyInfo::runOnMachineFunction(MachineFunction &F) { F.getName().equals(ViewBlockFreqFuncName))) { view(); } +} + +bool MachineBlockFrequencyInfo::runOnMachineFunction(MachineFunction &F) { + MachineBranchProbabilityInfo &MBPI = + getAnalysis<MachineBranchProbabilityInfo>(); + MachineLoopInfo &MLI = getAnalysis<MachineLoopInfo>(); + calculate(F, MBPI, MLI); return false; } |