diff options
Diffstat (limited to 'llvm/lib/CodeGen/MachineOutliner.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineOutliner.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/MachineOutliner.cpp b/llvm/lib/CodeGen/MachineOutliner.cpp index 9e2e631..6836f6c 100644 --- a/llvm/lib/CodeGen/MachineOutliner.cpp +++ b/llvm/lib/CodeGen/MachineOutliner.cpp @@ -121,6 +121,12 @@ static cl::opt<unsigned> OutlinerBenefitThreshold( cl::desc( "The minimum size in bytes before an outlining candidate is accepted")); +static cl::opt<bool> OutlinerLeafDescendants( + "outliner-leaf-descendants", cl::init(true), cl::Hidden, + cl::desc("Consider all leaf descendants of internal nodes of the suffix " + "tree as candidates for outlining (if false, only leaf children " + "are considered)")); + namespace { /// Maps \p MachineInstrs to unsigned integers and stores the mappings. @@ -576,7 +582,7 @@ void MachineOutliner::emitOutlinedFunctionRemark(OutlinedFunction &OF) { void MachineOutliner::findCandidates( InstructionMapper &Mapper, std::vector<OutlinedFunction> &FunctionList) { FunctionList.clear(); - SuffixTree ST(Mapper.UnsignedVec); + SuffixTree ST(Mapper.UnsignedVec, OutlinerLeafDescendants); // First, find all of the repeated substrings in the tree of minimum length // 2. |