@@ -80,7 +80,6 @@ TailMergeThreshold("tail-merge-threshold",
80
80
cl::init(150 ), cl::Hidden);
81
81
82
82
// Heuristic for tail merging (and, inversely, tail duplication).
83
- // TODO: This should be replaced with a target query.
84
83
static cl::opt<unsigned >
85
84
TailMergeSize (" tail-merge-size" ,
86
85
cl::desc (" Min number of instructions to consider tail merging" ),
@@ -145,8 +144,6 @@ BranchFolder::BranchFolder(bool DefaultEnableTailMerge, bool CommonHoist,
145
144
ProfileSummaryInfo *PSI, unsigned MinTailLength)
146
145
: EnableHoistCommonCode(CommonHoist), MinCommonTailLength(MinTailLength),
147
146
MBBFreqInfo(FreqInfo), MBPI(ProbInfo), PSI(PSI) {
148
- if (MinCommonTailLength == 0 )
149
- MinCommonTailLength = TailMergeSize;
150
147
switch (FlagEnableTailMerge) {
151
148
case cl::BOU_UNSET:
152
149
EnableTailMerge = DefaultEnableTailMerge;
@@ -195,6 +192,12 @@ bool BranchFolder::OptimizeFunction(MachineFunction &MF,
195
192
MLI = mli;
196
193
this ->MRI = &MRI;
197
194
195
+ if (MinCommonTailLength == 0 ) {
196
+ MinCommonTailLength = TailMergeSize.getNumOccurrences () > 0
197
+ ? TailMergeSize
198
+ : TII->getTailMergeSize (MF);
199
+ }
200
+
198
201
UpdateLiveIns = MRI.tracksLiveness () && TRI->trackLivenessAfterRegAlloc (MF);
199
202
if (!UpdateLiveIns)
200
203
MRI.invalidateLiveness ();
0 commit comments