diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-09 21:23:09 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-09 21:23:09 +0000 |
commit | 909545a822eef491158f831688066f0ec2866938 (patch) | |
tree | 5b0bf0e81294007a9b462b21031b3df272c655c3 /tools/llvm-opt-report/OptReport.cpp | |
parent | 7e7b6700743285c0af506ac6299ddf82ebd434b9 (diff) |
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 d067df5ecad2d..4f45dd9f2aa28 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); |