|
LLVM 23.0.0git
|
#include "CodeGen/BranchFolding.h"
Public Member Functions | |
| BranchFolder (bool DefaultEnableTailMerge, bool CommonHoist, MBFIWrapper &FreqInfo, const MachineBranchProbabilityInfo &ProbInfo, ProfileSummaryInfo *PSI, unsigned MinTailLength=0) | |
| bool | OptimizeFunction (MachineFunction &MF, const TargetInstrInfo *tii, const TargetRegisterInfo *tri, MachineLoopInfo *mli=nullptr, bool AfterPlacement=false) |
| Perhaps branch folding, tail merging and other CFG optimizations on the given function. | |
| void | setBasicBlockReordering (bool Enable) |
| Enable or disable the basic-block reordering sub-phase of branch optimization. | |
Definition at line 31 of file BranchFolding.h.
|
explicit |
Definition at line 192 of file BranchFolding.cpp.
References llvm::cl::BOU_FALSE, llvm::cl::BOU_TRUE, llvm::cl::BOU_UNSET, and FlagEnableTailMerge.
| bool BranchFolder::OptimizeFunction | ( | MachineFunction & | MF, |
| const TargetInstrInfo * | tii, | ||
| const TargetRegisterInfo * | tri, | ||
| MachineLoopInfo * | mli = nullptr, | ||
| bool | AfterPlacement = false ) |
Perhaps branch folding, tail merging and other CFG optimizations on the given function.
Block placement changes the layout and may create new tail merging opportunities.
Definition at line 236 of file BranchFolding.cpp.
References llvm::cl::BOU_TRUE, llvm::cl::BOU_UNSET, FlagEnableBlockReordering, FlagEnableHoistCommonCode, llvm::getEHScopeMembership(), llvm::MachineFunction::getJumpTableInfo(), llvm::MachineJumpTableInfo::getJumpTables(), llvm::MachineFunction::getRegInfo(), I, llvm::MachineJumpTableInfo::RemoveJumpTable(), llvm::BitVector::set(), llvm::BitVector::size(), TailMergeSize, llvm::BitVector::test(), and llvm::MachineRegisterInfo::tracksLiveness().
|
inline |
Enable or disable the basic-block reordering sub-phase of branch optimization.
Enabled by default; targets sensitive to block layout (e.g. those with structured-CFG register allocation) can disable it.
Definition at line 52 of file BranchFolding.h.
References llvm::Enable.