diff options
Diffstat (limited to 'tools/llvm-opt-report/OptReport.cpp')
-rw-r--r-- | tools/llvm-opt-report/OptReport.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/tools/llvm-opt-report/OptReport.cpp b/tools/llvm-opt-report/OptReport.cpp index d067df5ecad2..4f45dd9f2aa2 100644 --- a/tools/llvm-opt-report/OptReport.cpp +++ b/tools/llvm-opt-report/OptReport.cpp @@ -358,7 +358,7 @@ static bool writeReport(LocationInfoTy &LocationInfo) { std::map<int, OptReportLocationInfo> ColsInfo; unsigned InlinedCols = 0, UnrolledCols = 0, VectorizedCols = 0; - if (LII != FileInfo.end()) { + if (LII != FileInfo.end() && !FuncNameSet.empty()) { const auto &LineInfo = LII->second; for (auto &CI : LineInfo.find(*FuncNameSet.begin())->second) { @@ -475,13 +475,21 @@ static bool writeReport(LocationInfoTy &LocationInfo) { std::map<std::map<int, OptReportLocationInfo>, std::set<std::string>> UniqueLIs; + OptReportLocationInfo AllLI; if (LII != FileInfo.end()) { const auto &FuncLineInfo = LII->second; - for (const auto &FLII : FuncLineInfo) + for (const auto &FLII : FuncLineInfo) { UniqueLIs[FLII.second].insert(FLII.first); + + for (const auto &OI : FLII.second) + AllLI |= OI.second; + } } - if (UniqueLIs.size() > 1) { + bool NothingHappened = !AllLI.Inlined.Transformed && + !AllLI.Unrolled.Transformed && + !AllLI.Vectorized.Transformed; + if (UniqueLIs.size() > 1 && !NothingHappened) { OS << " [[\n"; for (const auto &FSLI : UniqueLIs) PrintLine(true, FSLI.second); |