diff options
Diffstat (limited to 'llvm/lib/CodeGen/BranchFolding.h')
-rw-r--r-- | llvm/lib/CodeGen/BranchFolding.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/BranchFolding.h b/llvm/lib/CodeGen/BranchFolding.h index 36a5a2e2c97..bce8d62b14c 100644 --- a/llvm/lib/CodeGen/BranchFolding.h +++ b/llvm/lib/CodeGen/BranchFolding.h @@ -29,9 +29,13 @@ namespace llvm { public: class MBFIWrapper; - explicit BranchFolder(bool defaultEnableTailMerge, bool CommonHoist, + explicit BranchFolder(bool defaultEnableTailMerge, + bool CommonHoist, MBFIWrapper &MBFI, - const MachineBranchProbabilityInfo &MBPI); + const MachineBranchProbabilityInfo &MBPI, + // Min tail length to merge. Defaults to commandline + // flag. Ignored for optsize. + unsigned MinCommonTailLength = 0); bool OptimizeFunction(MachineFunction &MF, const TargetInstrInfo *tii, const TargetRegisterInfo *tri, MachineModuleInfo *mmi, @@ -99,6 +103,7 @@ namespace llvm { bool EnableTailMerge; bool EnableHoistCommonCode; bool UpdateLiveIns; + unsigned MinCommonTailLength; const TargetInstrInfo *TII; const TargetRegisterInfo *TRI; MachineModuleInfo *MMI; @@ -129,7 +134,8 @@ namespace llvm { bool TailMergeBlocks(MachineFunction &MF); bool TryTailMergeBlocks(MachineBasicBlock* SuccBB, - MachineBasicBlock* PredBB); + MachineBasicBlock* PredBB, + unsigned MinCommonTailLength); void setCommonTailEdgeWeights(MachineBasicBlock &TailMBB); void computeLiveIns(MachineBasicBlock &MBB); void ReplaceTailWithBranchTo(MachineBasicBlock::iterator OldInst, |