diff options
author | Hal Finkel <hfinkel@anl.gov> | 2016-10-08 00:26:54 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2016-10-08 00:26:54 +0000 |
commit | f495280a09e7be77b46ddd4a3a4c2a7addd03132 (patch) | |
tree | c6d16edcab48dcd1ebce8ec2852c13e113c5cf2c /llvm/tools/llvm-opt-report/OptReport.cpp | |
parent | 1b6aec8e2562e494431b968bad0884e978bc4e2b (diff) | |
download | bcm5719-llvm-f495280a09e7be77b46ddd4a3a4c2a7addd03132.tar.gz bcm5719-llvm-f495280a09e7be77b46ddd4a3a4c2a7addd03132.zip |
[llvm-opt-report] Don't leave space for opts that never happen
Because screen space is precious, if an optimization (vectorization, for
example) never happens, don't leave empty space for the associated markers on
every line of the output. This makes the output much more compact, and allows
for the later inclusion of markers for more (although perhaps rare)
optimizations.
llvm-svn: 283626
Diffstat (limited to 'llvm/tools/llvm-opt-report/OptReport.cpp')
-rw-r--r-- | llvm/tools/llvm-opt-report/OptReport.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/llvm/tools/llvm-opt-report/OptReport.cpp b/llvm/tools/llvm-opt-report/OptReport.cpp index b82a73b6d94..0f0faa832bd 100644 --- a/llvm/tools/llvm-opt-report/OptReport.cpp +++ b/llvm/tools/llvm-opt-report/OptReport.cpp @@ -332,6 +332,10 @@ static bool writeReport(LocationInfoTy &LocationInfo) { for (auto &LI : FI.second) MaxLI |= LI.second; + bool NothingInlined = !MaxLI.Inlined.Transformed; + bool NothingUnrolled = !MaxLI.Unrolled.Transformed; + bool NothingVectorized = !MaxLI.Vectorized.Transformed; + unsigned VFDigits = llvm::utostr(MaxLI.VectorizationFactor).size(); unsigned ICDigits = llvm::utostr(MaxLI.InterleaveCount).size(); unsigned UCDigits = llvm::utostr(MaxLI.UnrollCount).size(); @@ -435,11 +439,12 @@ static bool writeReport(LocationInfoTy &LocationInfo) { }; OS << llvm::format_decimal(L, LNDigits) << " "; - OS << (LLI.Inlined.Transformed && InlinedCols < 2 ? "I" : " "); + OS << (LLI.Inlined.Transformed && InlinedCols < 2 ? "I" : + (NothingInlined ? "" : " ")); OS << (LLI.Unrolled.Transformed && UnrolledCols < 2 ? - "U" + UStr(LLI) : " " + USpaces); + "U" + UStr(LLI) : (NothingUnrolled ? "" : " " + USpaces)); OS << (LLI.Vectorized.Transformed && VectorizedCols < 2 ? - "V" + VStr(LLI) : " " + VSpaces); + "V" + VStr(LLI) : (NothingVectorized ? "" : " " + VSpaces)); OS << " | " << *LI << "\n"; @@ -449,11 +454,13 @@ static bool writeReport(LocationInfoTy &LocationInfo) { (J.second.Vectorized.Transformed && VectorizedCols > 1)) { OS << std::string(LNDigits + 1, ' '); OS << (J.second.Inlined.Transformed && - InlinedCols > 1 ? "I" : " "); + InlinedCols > 1 ? "I" : (NothingInlined ? "" : " ")); OS << (J.second.Unrolled.Transformed && - UnrolledCols > 1 ? "U" + UStr(J.second) : " " + USpaces); + UnrolledCols > 1 ? "U" + UStr(J.second) : + (NothingUnrolled ? "" : " " + USpaces)); OS << (J.second.Vectorized.Transformed && - VectorizedCols > 1 ? "V" + VStr(J.second) : " " + VSpaces); + VectorizedCols > 1 ? "V" + VStr(J.second) : + (NothingVectorized ? "" : " " + VSpaces)); OS << " | " << std::string(J.first - 1, ' ') << "^\n"; } |