1356843Sdim//===- MachineSizeOpts.h - machine size optimization ------------*- C++ -*-===// 2356843Sdim// 3356843Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4356843Sdim// See https://llvm.org/LICENSE.txt for license information. 5356843Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6356843Sdim// 7356843Sdim//===----------------------------------------------------------------------===// 8356843Sdim// 9356843Sdim// This file contains some shared machine IR code size optimization related 10356843Sdim// code. 11356843Sdim// 12356843Sdim//===----------------------------------------------------------------------===// 13356843Sdim#ifndef LLVM_CODEGEN_MACHINE_SIZEOPTS_H 14356843Sdim#define LLVM_CODEGEN_MACHINE_SIZEOPTS_H 15356843Sdim 16356843Sdim#include "llvm/Transforms/Utils/SizeOpts.h" 17356843Sdim 18356843Sdimnamespace llvm { 19356843Sdim 20356843Sdimclass ProfileSummaryInfo; 21356843Sdimclass MachineBasicBlock; 22356843Sdimclass MachineBlockFrequencyInfo; 23356843Sdimclass MachineFunction; 24356843Sdim 25356843Sdim/// Returns true if machine function \p MF is suggested to be size-optimized 26356843Sdim/// based on the profile. 27356843Sdimbool shouldOptimizeForSize(const MachineFunction *MF, ProfileSummaryInfo *PSI, 28356843Sdim const MachineBlockFrequencyInfo *BFI, 29356843Sdim PGSOQueryType QueryType = PGSOQueryType::Other); 30356843Sdim/// Returns true if machine basic block \p MBB is suggested to be size-optimized 31356843Sdim/// based on the profile. 32356843Sdimbool shouldOptimizeForSize(const MachineBasicBlock *MBB, 33356843Sdim ProfileSummaryInfo *PSI, 34356843Sdim const MachineBlockFrequencyInfo *MBFI, 35356843Sdim PGSOQueryType QueryType = PGSOQueryType::Other); 36356843Sdim 37356843Sdim} // end namespace llvm 38356843Sdim 39356843Sdim#endif // LLVM_CODEGEN_MACHINE_SIZEOPTS_H 40