summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-mca/RetireControlUnitStatistics.h
diff options
context:
space:
mode:
authorAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2018-04-11 12:12:53 +0000
committerAndrea Di Biagio <Andrea_DiBiagio@sn.scee.net>2018-04-11 12:12:53 +0000
commitf41ad5c59efd7a11d78b9742228dcf858bd33d84 (patch)
tree9f4dfcdc009eb0a9551d1999eb5f0b311faf1546 /llvm/tools/llvm-mca/RetireControlUnitStatistics.h
parent1cc29c045e07dd2f9adda3a5569df6e249613135 (diff)
downloadbcm5719-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.h')
-rw-r--r--llvm/tools/llvm-mca/RetireControlUnitStatistics.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/llvm/tools/llvm-mca/RetireControlUnitStatistics.h b/llvm/tools/llvm-mca/RetireControlUnitStatistics.h
new file mode 100644
index 00000000000..f3952abe11d
--- /dev/null
+++ b/llvm/tools/llvm-mca/RetireControlUnitStatistics.h
@@ -0,0 +1,61 @@
+//===--------------------- RetireControlUnitStatistics.h ------------------*-
+//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 defines class RetireControlUnitStatistics: a view that knows how
+/// to print general statistics related to the retire control unit.
+///
+/// Example:
+/// ========
+///
+/// Retire Control Unit - number of cycles where we saw N instructions retired:
+/// [# retired], [# cycles]
+/// 0, 9 (6.9%)
+/// 1, 6 (4.6%)
+/// 2, 1 (0.8%)
+/// 4, 3 (2.3%)
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TOOLS_LLVM_MCA_RETIRECONTROLUNITSTATISTICS_H
+#define LLVM_TOOLS_LLVM_MCA_RETIRECONTROLUNITSTATISTICS_H
+
+#include "View.h"
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/MC/MCSubtargetInfo.h"
+
+namespace mca {
+
+class RetireControlUnitStatistics : public View {
+ using Histogram = llvm::DenseMap<unsigned, unsigned>;
+ Histogram RetiredPerCycle;
+
+ unsigned NumRetired;
+ unsigned NumCycles;
+
+ void updateHistograms() {
+ RetiredPerCycle[NumRetired]++;
+ NumRetired = 0;
+ }
+
+public:
+ RetireControlUnitStatistics() : NumRetired(0), NumCycles(0) {}
+
+ void onInstructionEvent(const HWInstructionEvent &Event) override;
+
+ void onCycleBegin(unsigned Cycle) override { NumCycles++; }
+
+ void onCycleEnd(unsigned Cycle) override { updateHistograms(); }
+
+ void printView(llvm::raw_ostream &OS) const override;
+};
+} // namespace mca
+
+#endif
OpenPOWER on IntegriCloud