diff options
author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-04-11 12:12:53 +0000 |
---|---|---|
committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-04-11 12:12:53 +0000 |
commit | f41ad5c59efd7a11d78b9742228dcf858bd33d84 (patch) | |
tree | 9f4dfcdc009eb0a9551d1999eb5f0b311faf1546 /llvm/tools/llvm-mca/RetireControlUnitStatistics.cpp | |
parent | 1cc29c045e07dd2f9adda3a5569df6e249613135 (diff) | |
download | bcm5719-llvm-f41ad5c59efd7a11d78b9742228dcf858bd33d84.tar.gz bcm5719-llvm-f41ad5c59efd7a11d78b9742228dcf858bd33d84.zip |
[llvm-mca] Renamed BackendStatistics to RetireControlUnitStatistics.
Also, removed flag -verbose in favor of flag -retire-stats.
llvm-svn: 329794
Diffstat (limited to 'llvm/tools/llvm-mca/RetireControlUnitStatistics.cpp')
-rw-r--r-- | llvm/tools/llvm-mca/RetireControlUnitStatistics.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/llvm/tools/llvm-mca/RetireControlUnitStatistics.cpp b/llvm/tools/llvm-mca/RetireControlUnitStatistics.cpp new file mode 100644 index 00000000000..5b1a1ded170 --- /dev/null +++ b/llvm/tools/llvm-mca/RetireControlUnitStatistics.cpp @@ -0,0 +1,51 @@ +//===--------------------- RetireControlUnitStatistics.cpp ---------------*- C++ +//-*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +/// \file +/// +/// This file implements the RetireControlUnitStatistics interface. +/// +//===----------------------------------------------------------------------===// + +#include "RetireControlUnitStatistics.h" +#include "llvm/Support/Format.h" + +using namespace llvm; + +namespace mca { + +void RetireControlUnitStatistics::onInstructionEvent( + const HWInstructionEvent &Event) { + if (Event.Type == HWInstructionEvent::Retired) + ++NumRetired; +} + +void RetireControlUnitStatistics::printView(llvm::raw_ostream &OS) const { + std::string Buffer; + raw_string_ostream TempStream(Buffer); + TempStream << "\n\nRetire Control Unit - " + << "number of cycles where we saw N instructions retired:\n"; + TempStream << "[# retired], [# cycles]\n"; + + for (const std::pair<unsigned, unsigned> &Entry : RetiredPerCycle) { + TempStream << " " << Entry.first; + if (Entry.first < 10) + TempStream << ", "; + else + TempStream << ", "; + TempStream << Entry.second << " (" + << format("%.1f", ((double)Entry.second / NumCycles) * 100.0) + << "%)\n"; + } + + TempStream.flush(); + OS << Buffer; +} + +} // namespace mca |