LLVM 20.0.0git
MachineSizeOpts.cpp
Go to the documentation of this file.
1//===- MachineSizeOpts.cpp - code size optimization related code ----------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file contains some shared machine IR code size optimization related
10// code.
11//
12//===----------------------------------------------------------------------===//
13
18
19using namespace llvm;
20
26
29 const MachineBlockFrequencyInfo *MBFI,
30 PGSOQueryType QueryType) {
31 return shouldFuncOptimizeForSizeImpl(MF, PSI, MBFI, QueryType);
32}
33
36 const MachineBlockFrequencyInfo *MBFI,
37 PGSOQueryType QueryType) {
38 assert(MBB);
39 return shouldOptimizeForSizeImpl(MBB, PSI, MBFI, QueryType);
40}
41
44 MBFIWrapper *MBFIW,
45 PGSOQueryType QueryType) {
46 assert(MBB);
47 if (!PSI || !MBFIW)
48 return false;
49 BlockFrequency BlockFreq = MBFIW->getBlockFreq(MBB);
50 return shouldOptimizeForSizeImpl(BlockFreq, PSI, &MBFIW->getMBFI(),
51 QueryType);
52}
MachineBasicBlock & MBB
cl::opt< bool > PGSOLargeWorkingSetSizeOnly
cl::opt< bool > ForcePGSO
cl::opt< int > PgsoCutoffSampleProf
cl::opt< bool > EnablePGSO
cl::opt< int > PgsoCutoffInstrProf
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
BlockFrequency getBlockFreq(const MachineBasicBlock *MBB) const
Definition: MBFIWrapper.cpp:20
const MachineBlockFrequencyInfo & getMBFI() const
Definition: MBFIWrapper.h:37
MachineBlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate machine basic b...
Analysis providing profile information.
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
bool shouldOptimizeForSize(const MachineFunction *MF, ProfileSummaryInfo *PSI, const MachineBlockFrequencyInfo *BFI, PGSOQueryType QueryType=PGSOQueryType::Other)
Returns true if machine function MF is suggested to be size-optimized based on the profile.
bool shouldFuncOptimizeForSizeImpl(const FuncT *F, ProfileSummaryInfo *PSI, BFIT *BFI, PGSOQueryType QueryType)
Definition: SizeOpts.h:51
bool shouldOptimizeForSizeImpl(BlockTOrBlockFreq BBOrBlockFreq, ProfileSummaryInfo *PSI, BFIT *BFI, PGSOQueryType QueryType)
Definition: SizeOpts.h:72
PGSOQueryType
Definition: SizeOpts.h:34