| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- //===- MachineSizeOpts.h - machine size optimization ------------*- C++ -*-===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- //
- // This file contains some shared machine IR code size optimization related
- // code.
- //
- //===----------------------------------------------------------------------===//
- #ifndef LLVM_CODEGEN_MACHINESIZEOPTS_H
- #define LLVM_CODEGEN_MACHINESIZEOPTS_H
- #include "llvm/Transforms/Utils/SizeOpts.h"
- namespace llvm {
- class ProfileSummaryInfo;
- class MachineBasicBlock;
- class MachineBlockFrequencyInfo;
- class MachineFunction;
- class MBFIWrapper;
- /// Returns true if machine function \p MF is suggested to be size-optimized
- /// based on the profile.
- bool shouldOptimizeForSize(const MachineFunction *MF, ProfileSummaryInfo *PSI,
- const MachineBlockFrequencyInfo *BFI,
- PGSOQueryType QueryType = PGSOQueryType::Other);
- /// Returns true if machine basic block \p MBB is suggested to be size-optimized
- /// based on the profile.
- bool shouldOptimizeForSize(const MachineBasicBlock *MBB,
- ProfileSummaryInfo *PSI,
- const MachineBlockFrequencyInfo *MBFI,
- PGSOQueryType QueryType = PGSOQueryType::Other);
- /// Returns true if machine basic block \p MBB is suggested to be size-optimized
- /// based on the profile.
- bool shouldOptimizeForSize(const MachineBasicBlock *MBB,
- ProfileSummaryInfo *PSI,
- MBFIWrapper *MBFIWrapper,
- PGSOQueryType QueryType = PGSOQueryType::Other);
- } // end namespace llvm
- #endif // LLVM_CODEGEN_MACHINESIZEOPTS_H
|