From: Jessica Paquette Date: Mon, 14 Aug 2017 22:57:41 +0000 (+0000) Subject: [MachineOutliner] Only outline candidates of length >= 2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=af163855d63adf28aa0e8062d940a6f969a514df;p=llvm [MachineOutliner] Only outline candidates of length >= 2 Since we don't factor in instruction lengths into outlining calculations right now, it's never the case that a candidate could have length < 2. Thus, we should quit early when we see such candidates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310894 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/MachineOutliner.cpp b/lib/CodeGen/MachineOutliner.cpp index 36163538f4e..9a8eebff2b5 100644 --- a/lib/CodeGen/MachineOutliner.cpp +++ b/lib/CodeGen/MachineOutliner.cpp @@ -844,6 +844,13 @@ MachineOutliner::findCandidates(SuffixTree &ST, const TargetInstrInfo &TII, // Figure out if this candidate is beneficial. size_t StringLen = Leaf->ConcatLen - Leaf->size(); + + // Too short to be beneficial; skip it. + // FIXME: This isn't necessarily true for, say, X86. If we factor in + // instruction lengths we need more information than this. + if (StringLen < 2) + continue; + size_t CallOverhead = 0; size_t SequenceOverhead = StringLen;