@@ -80,7 +80,6 @@ TailMergeThreshold("tail-merge-threshold",
8080 cl::init(150 ), cl::Hidden);
8181
8282// Heuristic for tail merging (and, inversely, tail duplication).
83- // TODO: This should be replaced with a target query.
8483static cl::opt<unsigned >
8584TailMergeSize (" tail-merge-size" ,
8685 cl::desc (" Min number of instructions to consider tail merging" ),
@@ -145,8 +144,6 @@ BranchFolder::BranchFolder(bool DefaultEnableTailMerge, bool CommonHoist,
145144 ProfileSummaryInfo *PSI, unsigned MinTailLength)
146145 : EnableHoistCommonCode(CommonHoist), MinCommonTailLength(MinTailLength),
147146 MBBFreqInfo(FreqInfo), MBPI(ProbInfo), PSI(PSI) {
148- if (MinCommonTailLength == 0 )
149- MinCommonTailLength = TailMergeSize;
150147 switch (FlagEnableTailMerge) {
151148 case cl::BOU_UNSET:
152149 EnableTailMerge = DefaultEnableTailMerge;
@@ -195,6 +192,12 @@ bool BranchFolder::OptimizeFunction(MachineFunction &MF,
195192 MLI = mli;
196193 this ->MRI = &MRI;
197194
195+ if (MinCommonTailLength == 0 ) {
196+ MinCommonTailLength = TailMergeSize.getNumOccurrences () > 0
197+ ? TailMergeSize
198+ : TII->getTailMergeSize (MF);
199+ }
200+
198201 UpdateLiveIns = MRI.tracksLiveness () && TRI->trackLivenessAfterRegAlloc (MF);
199202 if (!UpdateLiveIns)
200203 MRI.invalidateLiveness ();
0 commit comments