MachineSizeOpts.h revision 360784
1//===- MachineSizeOpts.h - machine size optimization ------------*- C++ -*-===// 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#ifndef LLVM_CODEGEN_MACHINE_SIZEOPTS_H 14#define LLVM_CODEGEN_MACHINE_SIZEOPTS_H 15 16#include "llvm/Transforms/Utils/SizeOpts.h" 17 18namespace llvm { 19 20class ProfileSummaryInfo; 21class MachineBasicBlock; 22class MachineBlockFrequencyInfo; 23class MachineFunction; 24 25/// Returns true if machine function \p MF is suggested to be size-optimized 26/// based on the profile. 27bool shouldOptimizeForSize(const MachineFunction *MF, ProfileSummaryInfo *PSI, 28 const MachineBlockFrequencyInfo *BFI, 29 PGSOQueryType QueryType = PGSOQueryType::Other); 30/// Returns true if machine basic block \p MBB is suggested to be size-optimized 31/// based on the profile. 32bool shouldOptimizeForSize(const MachineBasicBlock *MBB, 33 ProfileSummaryInfo *PSI, 34 const MachineBlockFrequencyInfo *MBFI, 35 PGSOQueryType QueryType = PGSOQueryType::Other); 36 37} // end namespace llvm 38 39#endif // LLVM_CODEGEN_MACHINE_SIZEOPTS_H 40