[llvm] r340645 - [llvm-mca] Move views and stats into a Views subdir. NFC.

Matt Davis via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 24 13:24:53 PDT 2018


Author: mattd
Date: Fri Aug 24 13:24:53 2018
New Revision: 340645

URL: http://llvm.org/viewvc/llvm-project?rev=340645&view=rev
Log:
[llvm-mca] Move views and stats into a Views subdir. NFC.

Added:
    llvm/trunk/tools/llvm-mca/Views/
    llvm/trunk/tools/llvm-mca/Views/DispatchStatistics.cpp
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/DispatchStatistics.cpp
    llvm/trunk/tools/llvm-mca/Views/DispatchStatistics.h
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/DispatchStatistics.h
    llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.cpp
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/InstructionInfoView.cpp
    llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.h
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/InstructionInfoView.h
    llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.cpp
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/RegisterFileStatistics.cpp
    llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.h
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/RegisterFileStatistics.h
    llvm/trunk/tools/llvm-mca/Views/ResourcePressureView.cpp
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/ResourcePressureView.cpp
    llvm/trunk/tools/llvm-mca/Views/ResourcePressureView.h
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/ResourcePressureView.h
    llvm/trunk/tools/llvm-mca/Views/RetireControlUnitStatistics.cpp
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.cpp
    llvm/trunk/tools/llvm-mca/Views/RetireControlUnitStatistics.h
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.h
    llvm/trunk/tools/llvm-mca/Views/SchedulerStatistics.cpp
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/SchedulerStatistics.cpp
    llvm/trunk/tools/llvm-mca/Views/SchedulerStatistics.h
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/SchedulerStatistics.h
    llvm/trunk/tools/llvm-mca/Views/SummaryView.cpp
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/SummaryView.cpp
    llvm/trunk/tools/llvm-mca/Views/SummaryView.h
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/SummaryView.h
    llvm/trunk/tools/llvm-mca/Views/TimelineView.cpp
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/TimelineView.cpp
    llvm/trunk/tools/llvm-mca/Views/TimelineView.h
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/TimelineView.h
    llvm/trunk/tools/llvm-mca/Views/View.cpp
      - copied, changed from r340644, llvm/trunk/tools/llvm-mca/View.cpp
    llvm/trunk/tools/llvm-mca/Views/View.h
      - copied unchanged from r340644, llvm/trunk/tools/llvm-mca/View.h
Removed:
    llvm/trunk/tools/llvm-mca/DispatchStatistics.cpp
    llvm/trunk/tools/llvm-mca/DispatchStatistics.h
    llvm/trunk/tools/llvm-mca/InstructionInfoView.cpp
    llvm/trunk/tools/llvm-mca/InstructionInfoView.h
    llvm/trunk/tools/llvm-mca/RegisterFileStatistics.cpp
    llvm/trunk/tools/llvm-mca/RegisterFileStatistics.h
    llvm/trunk/tools/llvm-mca/ResourcePressureView.cpp
    llvm/trunk/tools/llvm-mca/ResourcePressureView.h
    llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.cpp
    llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.h
    llvm/trunk/tools/llvm-mca/SchedulerStatistics.cpp
    llvm/trunk/tools/llvm-mca/SchedulerStatistics.h
    llvm/trunk/tools/llvm-mca/SummaryView.cpp
    llvm/trunk/tools/llvm-mca/SummaryView.h
    llvm/trunk/tools/llvm-mca/TimelineView.cpp
    llvm/trunk/tools/llvm-mca/TimelineView.h
    llvm/trunk/tools/llvm-mca/View.cpp
    llvm/trunk/tools/llvm-mca/View.h
Modified:
    llvm/trunk/tools/llvm-mca/CMakeLists.txt
    llvm/trunk/tools/llvm-mca/InstructionTables.h
    llvm/trunk/tools/llvm-mca/PipelinePrinter.cpp
    llvm/trunk/tools/llvm-mca/PipelinePrinter.h
    llvm/trunk/tools/llvm-mca/llvm-mca.cpp

Modified: llvm/trunk/tools/llvm-mca/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/CMakeLists.txt?rev=340645&r1=340644&r2=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/CMakeLists.txt (original)
+++ llvm/trunk/tools/llvm-mca/CMakeLists.txt Fri Aug 24 13:24:53 2018
@@ -10,33 +10,33 @@ set(LLVM_LINK_COMPONENTS
   )
 
 add_llvm_tool(llvm-mca
+  llvm-mca.cpp
   CodeRegion.cpp
   Context.cpp
   DispatchStage.cpp
-  DispatchStatistics.cpp
   ExecuteStage.cpp
   FetchStage.cpp
   HWEventListener.cpp
   HardwareUnit.cpp
   InstrBuilder.cpp
   Instruction.cpp
-  InstructionInfoView.cpp
   InstructionTables.cpp
   LSUnit.cpp
-  llvm-mca.cpp
   Pipeline.cpp
   PipelinePrinter.cpp
   RegisterFile.cpp
-  RegisterFileStatistics.cpp
-  ResourcePressureView.cpp
   RetireControlUnit.cpp
-  RetireControlUnitStatistics.cpp
   RetireStage.cpp
   Scheduler.cpp
-  SchedulerStatistics.cpp
   Stage.cpp
   Support.cpp
-  SummaryView.cpp
-  TimelineView.cpp
-  View.cpp
+  Views/DispatchStatistics.cpp
+  Views/InstructionInfoView.cpp
+  Views/RegisterFileStatistics.cpp
+  Views/ResourcePressureView.cpp
+  Views/RetireControlUnitStatistics.cpp
+  Views/SchedulerStatistics.cpp
+  Views/SummaryView.cpp
+  Views/TimelineView.cpp
+  Views/View.cpp
   )

Removed: llvm/trunk/tools/llvm-mca/DispatchStatistics.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/DispatchStatistics.cpp?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/DispatchStatistics.cpp (original)
+++ llvm/trunk/tools/llvm-mca/DispatchStatistics.cpp (removed)
@@ -1,71 +0,0 @@
-//===--------------------- DispatchStatistics.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 DispatchStatistics interface.
-///
-//===----------------------------------------------------------------------===//
-
-#include "DispatchStatistics.h"
-#include "llvm/Support/Format.h"
-
-using namespace llvm;
-
-namespace mca {
-
-void DispatchStatistics::onEvent(const HWStallEvent &Event) {
-  if (Event.Type < HWStallEvent::LastGenericEvent)
-    HWStalls[Event.Type]++;
-}
-
-void DispatchStatistics::onEvent(const HWInstructionEvent &Event) {
-  if (Event.Type == HWInstructionEvent::Dispatched)
-    ++NumDispatched;
-}
-
-void DispatchStatistics::printDispatchHistogram(llvm::raw_ostream &OS) const {
-  std::string Buffer;
-  raw_string_ostream TempStream(Buffer);
-  TempStream << "\n\nDispatch Logic - "
-             << "number of cycles where we saw N instructions dispatched:\n";
-  TempStream << "[# dispatched], [# cycles]\n";
-  for (const std::pair<unsigned, unsigned> &Entry : DispatchGroupSizePerCycle) {
-    TempStream << " " << Entry.first << ",              " << Entry.second
-               << "  ("
-               << format("%.1f", ((double)Entry.second / NumCycles) * 100.0)
-               << "%)\n";
-  }
-
-  TempStream.flush();
-  OS << Buffer;
-}
-
-void DispatchStatistics::printDispatchStalls(raw_ostream &OS) const {
-  std::string Buffer;
-  raw_string_ostream TempStream(Buffer);
-  TempStream << "\n\nDynamic Dispatch Stall Cycles:\n";
-  TempStream << "RAT     - Register unavailable:                      "
-             << HWStalls[HWStallEvent::RegisterFileStall];
-  TempStream << "\nRCU     - Retire tokens unavailable:                 "
-             << HWStalls[HWStallEvent::RetireControlUnitStall];
-  TempStream << "\nSCHEDQ  - Scheduler full:                            "
-             << HWStalls[HWStallEvent::SchedulerQueueFull];
-  TempStream << "\nLQ      - Load queue full:                           "
-             << HWStalls[HWStallEvent::LoadQueueFull];
-  TempStream << "\nSQ      - Store queue full:                          "
-             << HWStalls[HWStallEvent::StoreQueueFull];
-  TempStream << "\nGROUP   - Static restrictions on the dispatch group: "
-             << HWStalls[HWStallEvent::DispatchGroupStall];
-  TempStream << '\n';
-  TempStream.flush();
-  OS << Buffer;
-}
-
-} // namespace mca

Removed: llvm/trunk/tools/llvm-mca/DispatchStatistics.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/DispatchStatistics.h?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/DispatchStatistics.h (original)
+++ llvm/trunk/tools/llvm-mca/DispatchStatistics.h (removed)
@@ -1,84 +0,0 @@
-//===--------------------- DispatchStatistics.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 implements a view that prints a few statistics related to the
-/// dispatch logic. It collects and analyzes instruction dispatch events as
-/// well as static/dynamic dispatch stall events.
-///
-/// Example:
-/// ========
-///
-/// Dynamic Dispatch Stall Cycles:
-/// RAT     - Register unavailable:                      0
-/// RCU     - Retire tokens unavailable:                 0
-/// SCHEDQ  - Scheduler full:                            42
-/// LQ      - Load queue full:                           0
-/// SQ      - Store queue full:                          0
-/// GROUP   - Static restrictions on the dispatch group: 0
-///
-///
-/// Dispatch Logic - number of cycles where we saw N instructions dispatched:
-/// [# dispatched], [# cycles]
-///  0,              15  (11.5%)
-///  2,              4  (3.1%)
-///
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TOOLS_LLVM_MCA_DISPATCHVIEW_H
-#define LLVM_TOOLS_LLVM_MCA_DISPATCHVIEW_H
-
-#include "View.h"
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/MC/MCSubtargetInfo.h"
-#include <map>
-
-namespace mca {
-
-class DispatchStatistics : public View {
-  unsigned NumDispatched;
-  unsigned NumCycles;
-
-  // Counts dispatch stall events caused by unavailability of resources.  There
-  // is one counter for every generic stall kind (see class HWStallEvent).
-  llvm::SmallVector<unsigned, 8> HWStalls;
-
-  using Histogram = std::map<unsigned, unsigned>;
-  Histogram DispatchGroupSizePerCycle;
-
-  void updateHistograms() {
-    DispatchGroupSizePerCycle[NumDispatched]++;
-    NumDispatched = 0;
-  }
-
-  void printDispatchHistogram(llvm::raw_ostream &OS) const;
-
-  void printDispatchStalls(llvm::raw_ostream &OS) const;
-
-public:
-  DispatchStatistics()
-      : NumDispatched(0), NumCycles(0),
-        HWStalls(HWStallEvent::LastGenericEvent) {}
-
-  void onEvent(const HWStallEvent &Event) override;
-
-  void onEvent(const HWInstructionEvent &Event) override;
-
-  void onCycleBegin() override { NumCycles++; }
-
-  void onCycleEnd() override { updateHistograms(); }
-
-  void printView(llvm::raw_ostream &OS) const override {
-    printDispatchStalls(OS);
-    printDispatchHistogram(OS);
-  }
-};
-} // namespace mca
-
-#endif

Removed: llvm/trunk/tools/llvm-mca/InstructionInfoView.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/InstructionInfoView.cpp?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/InstructionInfoView.cpp (original)
+++ llvm/trunk/tools/llvm-mca/InstructionInfoView.cpp (removed)
@@ -1,91 +0,0 @@
-//===--------------------- InstructionInfoView.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 InstructionInfoView API.
-///
-//===----------------------------------------------------------------------===//
-
-#include "InstructionInfoView.h"
-
-namespace mca {
-
-using namespace llvm;
-
-void InstructionInfoView::printView(raw_ostream &OS) const {
-  std::string Buffer;
-  raw_string_ostream TempStream(Buffer);
-  const MCSchedModel &SM = STI.getSchedModel();
-  unsigned Instructions = Source.size();
-
-  std::string Instruction;
-  raw_string_ostream InstrStream(Instruction);
-
-  TempStream << "\n\nInstruction Info:\n";
-  TempStream << "[1]: #uOps\n[2]: Latency\n[3]: RThroughput\n"
-             << "[4]: MayLoad\n[5]: MayStore\n[6]: HasSideEffects (U)\n\n";
-
-  TempStream << "[1]    [2]    [3]    [4]    [5]    [6]    Instructions:\n";
-  for (unsigned I = 0, E = Instructions; I < E; ++I) {
-    const MCInst &Inst = Source.getMCInstFromIndex(I);
-    const MCInstrDesc &MCDesc = MCII.get(Inst.getOpcode());
-
-    // Obtain the scheduling class information from the instruction.
-    unsigned SchedClassID = MCDesc.getSchedClass();
-    unsigned CPUID = SM.getProcessorID();
-
-    // Try to solve variant scheduling classes.
-    while (SchedClassID && SM.getSchedClassDesc(SchedClassID)->isVariant())
-      SchedClassID = STI.resolveVariantSchedClass(SchedClassID, &Inst, CPUID);
-
-    const MCSchedClassDesc &SCDesc = *SM.getSchedClassDesc(SchedClassID);
-    unsigned NumMicroOpcodes = SCDesc.NumMicroOps;
-    unsigned Latency = MCSchedModel::computeInstrLatency(STI, SCDesc);
-    Optional<double> RThroughput =
-        MCSchedModel::getReciprocalThroughput(STI, SCDesc);
-
-    TempStream << ' ' << NumMicroOpcodes << "    ";
-    if (NumMicroOpcodes < 10)
-      TempStream << "  ";
-    else if (NumMicroOpcodes < 100)
-      TempStream << ' ';
-    TempStream << Latency << "   ";
-    if (Latency < 10)
-      TempStream << "  ";
-    else if (Latency < 100)
-      TempStream << ' ';
-
-    if (RThroughput.hasValue()) {
-      double RT = RThroughput.getValue();
-      TempStream << format("%.2f", RT) << ' ';
-      if (RT < 10.0)
-        TempStream << "  ";
-      else if (RT < 100.0)
-        TempStream << ' ';
-    } else {
-      TempStream << " -     ";
-    }
-    TempStream << (MCDesc.mayLoad() ? " *     " : "       ");
-    TempStream << (MCDesc.mayStore() ? " *     " : "       ");
-    TempStream << (MCDesc.hasUnmodeledSideEffects() ? " U " : "   ");
-
-    MCIP.printInst(&Inst, InstrStream, "", STI);
-    InstrStream.flush();
-
-    // Consume any tabs or spaces at the beginning of the string.
-    StringRef Str(Instruction);
-    Str = Str.ltrim();
-    TempStream << "    " << Str << '\n';
-    Instruction = "";
-  }
-
-  TempStream.flush();
-  OS << Buffer;
-}
-} // namespace mca.

Removed: llvm/trunk/tools/llvm-mca/InstructionInfoView.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/InstructionInfoView.h?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/InstructionInfoView.h (original)
+++ llvm/trunk/tools/llvm-mca/InstructionInfoView.h (removed)
@@ -1,66 +0,0 @@
-//===--------------------- InstructionInfoView.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 implements the instruction info view.
-///
-/// The goal fo the instruction info view is to print the latency and reciprocal
-/// throughput information for every instruction in the input sequence.
-/// This section also reports extra information related to the number of micro
-/// opcodes, and opcode properties (i.e. 'MayLoad', 'MayStore', 'HasSideEffects)
-///
-/// Example:
-///
-/// Instruction Info:
-/// [1]: #uOps
-/// [2]: Latency
-/// [3]: RThroughput
-/// [4]: MayLoad
-/// [5]: MayStore
-/// [6]: HasSideEffects
-///
-/// [1]    [2]    [3]    [4]    [5]    [6]	Instructions:
-///  1      2     1.00                    	vmulps	%xmm0, %xmm1, %xmm2
-///  1      3     1.00                    	vhaddps	%xmm2, %xmm2, %xmm3
-///  1      3     1.00                    	vhaddps	%xmm3, %xmm3, %xmm4
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TOOLS_LLVM_MCA_INSTRUCTIONINFOVIEW_H
-#define LLVM_TOOLS_LLVM_MCA_INSTRUCTIONINFOVIEW_H
-
-#include "SourceMgr.h"
-#include "View.h"
-#include "llvm/MC/MCInstPrinter.h"
-#include "llvm/MC/MCInstrInfo.h"
-#include "llvm/MC/MCSubtargetInfo.h"
-#include "llvm/Support/raw_ostream.h"
-
-#define DEBUG_TYPE "llvm-mca"
-
-namespace mca {
-
-/// A view that prints out generic instruction information.
-class InstructionInfoView : public View {
-  const llvm::MCSubtargetInfo &STI;
-  const llvm::MCInstrInfo &MCII;
-  const SourceMgr &Source;
-  llvm::MCInstPrinter &MCIP;
-
-public:
-  InstructionInfoView(const llvm::MCSubtargetInfo &sti,
-                      const llvm::MCInstrInfo &mcii, const SourceMgr &S,
-                      llvm::MCInstPrinter &IP)
-      : STI(sti), MCII(mcii), Source(S), MCIP(IP) {}
-
-  void printView(llvm::raw_ostream &OS) const override;
-};
-} // namespace mca
-
-#endif

Modified: llvm/trunk/tools/llvm-mca/InstructionTables.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/InstructionTables.h?rev=340645&r1=340644&r2=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/InstructionTables.h (original)
+++ llvm/trunk/tools/llvm-mca/InstructionTables.h Fri Aug 24 13:24:53 2018
@@ -20,7 +20,6 @@
 #include "InstrBuilder.h"
 #include "Scheduler.h"
 #include "Stage.h"
-#include "View.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/MC/MCSchedule.h"
 

Modified: llvm/trunk/tools/llvm-mca/PipelinePrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/PipelinePrinter.cpp?rev=340645&r1=340644&r2=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/PipelinePrinter.cpp (original)
+++ llvm/trunk/tools/llvm-mca/PipelinePrinter.cpp Fri Aug 24 13:24:53 2018
@@ -13,7 +13,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "PipelinePrinter.h"
-#include "View.h"
+#include "Views/View.h"
 
 namespace mca {
 

Modified: llvm/trunk/tools/llvm-mca/PipelinePrinter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/PipelinePrinter.h?rev=340645&r1=340644&r2=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/PipelinePrinter.h (original)
+++ llvm/trunk/tools/llvm-mca/PipelinePrinter.h Fri Aug 24 13:24:53 2018
@@ -18,7 +18,7 @@
 #define LLVM_TOOLS_LLVM_MCA_PIPELINEPRINTER_H
 
 #include "Pipeline.h"
-#include "View.h"
+#include "Views/View.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/raw_ostream.h"
 

Removed: llvm/trunk/tools/llvm-mca/RegisterFileStatistics.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/RegisterFileStatistics.cpp?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/RegisterFileStatistics.cpp (original)
+++ llvm/trunk/tools/llvm-mca/RegisterFileStatistics.cpp (removed)
@@ -1,107 +0,0 @@
-//===--------------------- RegisterFileStatistics.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 RegisterFileStatistics interface.
-///
-//===----------------------------------------------------------------------===//
-
-#include "RegisterFileStatistics.h"
-#include "llvm/Support/Format.h"
-
-using namespace llvm;
-
-namespace mca {
-
-void RegisterFileStatistics::initializeRegisterFileInfo() {
-  const MCSchedModel &SM = STI.getSchedModel();
-  RegisterFileUsage Empty = {0, 0, 0};
-  if (!SM.hasExtraProcessorInfo()) {
-    // Assume a single register file.
-    RegisterFiles.emplace_back(Empty);
-    return;
-  }
-
-  // Initialize a RegisterFileUsage for every user defined register file, plus
-  // the default register file which is always at index #0.
-  const MCExtraProcessorInfo &PI = SM.getExtraProcessorInfo();
-  // There is always an "InvalidRegisterFile" entry in tablegen. That entry can
-  // be skipped. If there are no user defined register files, then reserve a
-  // single entry for the default register file at index #0.
-  unsigned NumRegFiles = std::max(PI.NumRegisterFiles, 1U);
-  RegisterFiles.resize(NumRegFiles);
-  std::fill(RegisterFiles.begin(), RegisterFiles.end(), Empty);
-}
-
-void RegisterFileStatistics::onEvent(const HWInstructionEvent &Event) {
-  switch (Event.Type) {
-  default:
-    break;
-  case HWInstructionEvent::Retired: {
-    const auto &RE = static_cast<const HWInstructionRetiredEvent &>(Event);
-    for (unsigned I = 0, E = RegisterFiles.size(); I < E; ++I)
-      RegisterFiles[I].CurrentlyUsedMappings -= RE.FreedPhysRegs[I];
-    break;
-  }
-  case HWInstructionEvent::Dispatched: {
-    const auto &DE = static_cast<const HWInstructionDispatchedEvent &>(Event);
-    for (unsigned I = 0, E = RegisterFiles.size(); I < E; ++I) {
-      RegisterFileUsage &RFU = RegisterFiles[I];
-      unsigned NumUsedPhysRegs = DE.UsedPhysRegs[I];
-      RFU.CurrentlyUsedMappings += NumUsedPhysRegs;
-      RFU.TotalMappings += NumUsedPhysRegs;
-      RFU.MaxUsedMappings =
-          std::max(RFU.MaxUsedMappings, RFU.CurrentlyUsedMappings);
-    }
-  }
-  }
-}
-
-void RegisterFileStatistics::printView(raw_ostream &OS) const {
-  std::string Buffer;
-  raw_string_ostream TempStream(Buffer);
-
-  TempStream << "\n\nRegister File statistics:";
-  const RegisterFileUsage &GlobalUsage = RegisterFiles[0];
-  TempStream << "\nTotal number of mappings created:    "
-             << GlobalUsage.TotalMappings;
-  TempStream << "\nMax number of mappings used:         "
-             << GlobalUsage.MaxUsedMappings << '\n';
-
-  for (unsigned I = 1, E = RegisterFiles.size(); I < E; ++I) {
-    const RegisterFileUsage &RFU = RegisterFiles[I];
-    // Obtain the register file descriptor from the scheduling model.
-    assert(STI.getSchedModel().hasExtraProcessorInfo() &&
-           "Unable to find register file info!");
-    const MCExtraProcessorInfo &PI =
-        STI.getSchedModel().getExtraProcessorInfo();
-    assert(I <= PI.NumRegisterFiles && "Unexpected register file index!");
-    const MCRegisterFileDesc &RFDesc = PI.RegisterFiles[I];
-    // Skip invalid register files.
-    if (!RFDesc.NumPhysRegs)
-      continue;
-
-    TempStream << "\n*  Register File #" << I;
-    TempStream << " -- " << StringRef(RFDesc.Name) << ':';
-    TempStream << "\n   Number of physical registers:     ";
-    if (!RFDesc.NumPhysRegs)
-      TempStream << "unbounded";
-    else
-      TempStream << RFDesc.NumPhysRegs;
-    TempStream << "\n   Total number of mappings created: "
-               << RFU.TotalMappings;
-    TempStream << "\n   Max number of mappings used:      "
-               << RFU.MaxUsedMappings << '\n';
-  }
-
-  TempStream.flush();
-  OS << Buffer;
-}
-
-} // namespace mca

Removed: llvm/trunk/tools/llvm-mca/RegisterFileStatistics.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/RegisterFileStatistics.h?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/RegisterFileStatistics.h (original)
+++ llvm/trunk/tools/llvm-mca/RegisterFileStatistics.h (removed)
@@ -1,67 +0,0 @@
-//===--------------------- RegisterFileStatistics.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 view collects and prints register file usage statistics.
-///
-/// Example  (-mcpu=btver2):
-/// ========================
-///
-/// Register File statistics:
-/// Total number of mappings created:    6
-/// Max number of mappings used:         3
-///
-/// *  Register File #1 -- FpuPRF:
-///    Number of physical registers:     72
-///    Total number of mappings created: 0
-///    Max number of mappings used:      0
-///
-/// *  Register File #2 -- IntegerPRF:
-///    Number of physical registers:     64
-///    Total number of mappings created: 6
-///    Max number of mappings used:      3
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TOOLS_LLVM_MCA_REGISTERFILESTATISTICS_H
-#define LLVM_TOOLS_LLVM_MCA_REGISTERFILESTATISTICS_H
-
-#include "View.h"
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/MC/MCSubtargetInfo.h"
-
-namespace mca {
-
-class RegisterFileStatistics : public View {
-  const llvm::MCSubtargetInfo &STI;
-
-  // Used to track the number of physical registers used in a register file.
-  struct RegisterFileUsage {
-    unsigned TotalMappings;
-    unsigned MaxUsedMappings;
-    unsigned CurrentlyUsedMappings;
-  };
-
-  // There is one entry for each register file implemented by the processor.
-  llvm::SmallVector<RegisterFileUsage, 4> RegisterFiles;
-
-  void initializeRegisterFileInfo();
-
-public:
-  RegisterFileStatistics(const llvm::MCSubtargetInfo &sti) : STI(sti) {
-    initializeRegisterFileInfo();
-  }
-
-  void onEvent(const HWInstructionEvent &Event) override;
-
-  void printView(llvm::raw_ostream &OS) const override;
-};
-} // namespace mca
-
-#endif

Removed: llvm/trunk/tools/llvm-mca/ResourcePressureView.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/ResourcePressureView.cpp?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/ResourcePressureView.cpp (original)
+++ llvm/trunk/tools/llvm-mca/ResourcePressureView.cpp (removed)
@@ -1,171 +0,0 @@
-//===--------------------- ResourcePressureView.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 methods in the ResourcePressureView interface.
-///
-//===----------------------------------------------------------------------===//
-
-#include "ResourcePressureView.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/raw_ostream.h"
-
-namespace mca {
-
-using namespace llvm;
-
-void ResourcePressureView::initialize() {
-  // Populate the map of resource descriptors.
-  unsigned R2VIndex = 0;
-  const MCSchedModel &SM = STI.getSchedModel();
-  for (unsigned I = 0, E = SM.getNumProcResourceKinds(); I < E; ++I) {
-    const MCProcResourceDesc &ProcResource = *SM.getProcResource(I);
-    unsigned NumUnits = ProcResource.NumUnits;
-    // Skip groups and invalid resources with zero units.
-    if (ProcResource.SubUnitsIdxBegin || !NumUnits)
-      continue;
-
-    Resource2VecIndex.insert(std::pair<unsigned, unsigned>(I, R2VIndex));
-    R2VIndex += ProcResource.NumUnits;
-  }
-
-  NumResourceUnits = R2VIndex;
-  ResourceUsage.resize(NumResourceUnits * (Source.size() + 1));
-  std::fill(ResourceUsage.begin(), ResourceUsage.end(), 0.0);
-}
-
-void ResourcePressureView::onEvent(const HWInstructionEvent &Event) {
-  // We're only interested in Issue events.
-  if (Event.Type != HWInstructionEvent::Issued)
-    return;
-  const auto &IssueEvent = static_cast<const HWInstructionIssuedEvent &>(Event);
-  const unsigned SourceIdx = Event.IR.getSourceIndex() % Source.size();
-  for (const std::pair<ResourceRef, double> &Use : IssueEvent.UsedResources) {
-    const ResourceRef &RR = Use.first;
-    assert(Resource2VecIndex.find(RR.first) != Resource2VecIndex.end());
-    unsigned R2VIndex = Resource2VecIndex[RR.first];
-    R2VIndex += countTrailingZeros(RR.second);
-    ResourceUsage[R2VIndex + NumResourceUnits * SourceIdx] += Use.second;
-    ResourceUsage[R2VIndex + NumResourceUnits * Source.size()] += Use.second;
-  }
-}
-
-static void printColumnNames(formatted_raw_ostream &OS,
-                             const MCSchedModel &SM) {
-  unsigned Column = OS.getColumn();
-  for (unsigned I = 1, ResourceIndex = 0, E = SM.getNumProcResourceKinds();
-       I < E; ++I) {
-    const MCProcResourceDesc &ProcResource = *SM.getProcResource(I);
-    unsigned NumUnits = ProcResource.NumUnits;
-    // Skip groups and invalid resources with zero units.
-    if (ProcResource.SubUnitsIdxBegin || !NumUnits)
-      continue;
-
-    for (unsigned J = 0; J < NumUnits; ++J) {
-      Column += 7;
-      OS << "[" << ResourceIndex;
-      if (NumUnits > 1)
-        OS << '.' << J;
-      OS << ']';
-      OS.PadToColumn(Column);
-    }
-
-    ResourceIndex++;
-  }
-}
-
-static void printResourcePressure(formatted_raw_ostream &OS, double Pressure,
-                                  unsigned Col) {
-  if (!Pressure || Pressure < 0.005) {
-    OS << " - ";
-  } else {
-    // Round to the value to the nearest hundredth and then print it.
-    OS << format("%.2f", floor((Pressure * 100) + 0.5) / 100);
-  }
-  OS.PadToColumn(Col);
-}
-
-void ResourcePressureView::printResourcePressurePerIteration(
-    raw_ostream &OS, unsigned Executions) const {
-  std::string Buffer;
-  raw_string_ostream TempStream(Buffer);
-  formatted_raw_ostream FOS(TempStream);
-
-  FOS << "\n\nResources:\n";
-  const MCSchedModel &SM = STI.getSchedModel();
-  for (unsigned I = 1, ResourceIndex = 0, E = SM.getNumProcResourceKinds();
-       I < E; ++I) {
-    const MCProcResourceDesc &ProcResource = *SM.getProcResource(I);
-    unsigned NumUnits = ProcResource.NumUnits;
-    // Skip groups and invalid resources with zero units.
-    if (ProcResource.SubUnitsIdxBegin || !NumUnits)
-      continue;
-
-    for (unsigned J = 0; J < NumUnits; ++J) {
-      FOS << '[' << ResourceIndex;
-      if (NumUnits > 1)
-        FOS << '.' << J;
-      FOS << ']';
-      FOS.PadToColumn(6);
-      FOS << "- " << ProcResource.Name << '\n';
-    }
-
-    ResourceIndex++;
-  }
-
-  FOS << "\n\nResource pressure per iteration:\n";
-  FOS.flush();
-  printColumnNames(FOS, SM);
-  FOS << '\n';
-  FOS.flush();
-
-  for (unsigned I = 0, E = NumResourceUnits; I < E; ++I) {
-    double Usage = ResourceUsage[I + Source.size() * E];
-    printResourcePressure(FOS, Usage / Executions, (I + 1) * 7);
-  }
-
-  FOS.flush();
-  OS << Buffer;
-}
-
-void ResourcePressureView::printResourcePressurePerInstruction(
-    raw_ostream &OS, unsigned Executions) const {
-  std::string Buffer;
-  raw_string_ostream TempStream(Buffer);
-  formatted_raw_ostream FOS(TempStream);
-
-  FOS << "\n\nResource pressure by instruction:\n";
-  printColumnNames(FOS, STI.getSchedModel());
-  FOS << "Instructions:\n";
-
-  std::string Instruction;
-  raw_string_ostream InstrStream(Instruction);
-
-  for (unsigned I = 0, E = Source.size(); I < E; ++I) {
-    for (unsigned J = 0; J < NumResourceUnits; ++J) {
-      double Usage = ResourceUsage[J + I * NumResourceUnits];
-      printResourcePressure(FOS, Usage / Executions, (J + 1) * 7);
-    }
-
-    MCIP.printInst(&Source.getMCInstFromIndex(I), InstrStream, "", STI);
-    InstrStream.flush();
-    StringRef Str(Instruction);
-
-    // Remove any tabs or spaces at the beginning of the instruction.
-    Str = Str.ltrim();
-
-    FOS << Str << '\n';
-    Instruction = "";
-
-    FOS.flush();
-    OS << Buffer;
-    Buffer = "";
-  }
-}
-} // namespace mca

Removed: llvm/trunk/tools/llvm-mca/ResourcePressureView.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/ResourcePressureView.h?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/ResourcePressureView.h (original)
+++ llvm/trunk/tools/llvm-mca/ResourcePressureView.h (removed)
@@ -1,109 +0,0 @@
-//===--------------------- ResourcePressureView.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 define class ResourcePressureView.
-/// Class ResourcePressureView observes hardware events generated by
-/// the Pipeline object and collects statistics related to resource usage at
-/// instruction granularity.
-/// Resource pressure information is then printed out to a stream in the
-/// form of a table like the one from the example below:
-///
-/// Resources:
-/// [0] - JALU0
-/// [1] - JALU1
-/// [2] - JDiv
-/// [3] - JFPM
-/// [4] - JFPU0
-/// [5] - JFPU1
-/// [6] - JLAGU
-/// [7] - JSAGU
-/// [8] - JSTC
-/// [9] - JVIMUL
-///
-/// Resource pressure per iteration:
-/// [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
-/// 0.00   0.00   0.00   0.00   2.00   2.00   0.00   0.00   0.00   0.00
-///
-/// Resource pressure by instruction:
-/// [0]  [1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  Instructions:
-///  -    -    -    -    -   1.00  -    -    -    -   vpermilpd  $1,    %xmm0,
-///  %xmm1
-///  -    -    -    -   1.00  -    -    -    -    -   vaddps     %xmm0, %xmm1,
-///  %xmm2
-///  -    -    -    -    -   1.00  -    -    -    -   vmovshdup  %xmm2, %xmm3
-///  -    -    -    -   1.00  -    -    -    -    -   vaddss     %xmm2, %xmm3,
-///  %xmm4
-///
-/// In this example, we have AVX code executed on AMD Jaguar (btver2).
-/// Both shuffles and vector floating point add operations on XMM registers have
-/// a reciprocal throughput of 1cy.
-/// Each add is issued to pipeline JFPU0, while each shuffle is issued to
-/// pipeline JFPU1. The overall pressure per iteration is reported by two
-/// tables: the first smaller table is the resource pressure per iteration;
-/// the second table reports resource pressure per instruction. Values are the
-/// average resource cycles consumed by an instruction.
-/// Every vector add from the example uses resource JFPU0 for an average of 1cy
-/// per iteration. Consequently, the resource pressure on JFPU0 is of 2cy per
-/// iteration.
-///
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TOOLS_LLVM_MCA_RESOURCEPRESSUREVIEW_H
-#define LLVM_TOOLS_LLVM_MCA_RESOURCEPRESSUREVIEW_H
-
-#include "SourceMgr.h"
-#include "View.h"
-#include "llvm/ADT/DenseMap.h"
-#include "llvm/MC/MCInstPrinter.h"
-#include "llvm/MC/MCSubtargetInfo.h"
-#include <map>
-
-namespace mca {
-
-/// This class collects resource pressure statistics and it is able to print
-/// out all the collected information as a table to an output stream.
-class ResourcePressureView : public View {
-  const llvm::MCSubtargetInfo &STI;
-  llvm::MCInstPrinter &MCIP;
-  const SourceMgr &Source;
-
-  // Map to quickly obtain the ResourceUsage column index from a processor
-  // resource ID.
-  llvm::DenseMap<unsigned, unsigned> Resource2VecIndex;
-
-  // Table of resources used by instructions.
-  std::vector<double> ResourceUsage;
-  unsigned NumResourceUnits;
-
-  const llvm::MCInst &GetMCInstFromIndex(unsigned Index) const;
-  void printResourcePressurePerIteration(llvm::raw_ostream &OS,
-                                         unsigned Executions) const;
-  void printResourcePressurePerInstruction(llvm::raw_ostream &OS,
-                                           unsigned Executions) const;
-  void initialize();
-
-public:
-  ResourcePressureView(const llvm::MCSubtargetInfo &sti,
-                       llvm::MCInstPrinter &Printer, const SourceMgr &SM)
-      : STI(sti), MCIP(Printer), Source(SM) {
-    initialize();
-  }
-
-  void onEvent(const HWInstructionEvent &Event) override;
-
-  void printView(llvm::raw_ostream &OS) const override {
-    unsigned Executions = Source.getNumIterations();
-    printResourcePressurePerIteration(OS, Executions);
-    printResourcePressurePerInstruction(OS, Executions);
-  }
-};
-} // namespace mca
-
-#endif

Removed: llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.cpp?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.cpp (original)
+++ llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.cpp (removed)
@@ -1,49 +0,0 @@
-//===--------------------- 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::onEvent(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

Removed: llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.h?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.h (original)
+++ llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.h (removed)
@@ -1,60 +0,0 @@
-//===--------------------- 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/MC/MCSubtargetInfo.h"
-#include <map>
-
-namespace mca {
-
-class RetireControlUnitStatistics : public View {
-  using Histogram = std::map<unsigned, unsigned>;
-  Histogram RetiredPerCycle;
-
-  unsigned NumRetired;
-  unsigned NumCycles;
-
-  void updateHistograms() {
-    RetiredPerCycle[NumRetired]++;
-    NumRetired = 0;
-  }
-
-public:
-  RetireControlUnitStatistics() : NumRetired(0), NumCycles(0) {}
-
-  void onEvent(const HWInstructionEvent &Event) override;
-
-  void onCycleBegin() override { NumCycles++; }
-
-  void onCycleEnd() override { updateHistograms(); }
-
-  void printView(llvm::raw_ostream &OS) const override;
-};
-} // namespace mca
-
-#endif

Removed: llvm/trunk/tools/llvm-mca/SchedulerStatistics.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/SchedulerStatistics.cpp?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/SchedulerStatistics.cpp (original)
+++ llvm/trunk/tools/llvm-mca/SchedulerStatistics.cpp (removed)
@@ -1,94 +0,0 @@
-//===--------------------- SchedulerStatistics.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 SchedulerStatistics interface.
-///
-//===----------------------------------------------------------------------===//
-
-#include "SchedulerStatistics.h"
-#include "llvm/Support/Format.h"
-
-using namespace llvm;
-
-namespace mca {
-
-void SchedulerStatistics::onEvent(const HWInstructionEvent &Event) {
-  if (Event.Type == HWInstructionEvent::Issued)
-    ++NumIssued;
-}
-
-void SchedulerStatistics::onReservedBuffers(ArrayRef<unsigned> Buffers) {
-  for (const unsigned Buffer : Buffers) {
-    if (BufferedResources.find(Buffer) != BufferedResources.end()) {
-      BufferUsage &BU = BufferedResources[Buffer];
-      BU.SlotsInUse++;
-      BU.MaxUsedSlots = std::max(BU.MaxUsedSlots, BU.SlotsInUse);
-      continue;
-    }
-
-    BufferedResources.insert(
-        std::pair<unsigned, BufferUsage>(Buffer, {1U, 1U}));
-  }
-}
-
-void SchedulerStatistics::onReleasedBuffers(ArrayRef<unsigned> Buffers) {
-  for (const unsigned Buffer : Buffers) {
-    assert(BufferedResources.find(Buffer) != BufferedResources.end() &&
-           "Buffered resource not in map?");
-    BufferUsage &BU = BufferedResources[Buffer];
-    BU.SlotsInUse--;
-  }
-}
-
-void SchedulerStatistics::printSchedulerStatistics(
-    llvm::raw_ostream &OS) const {
-  std::string Buffer;
-  raw_string_ostream TempStream(Buffer);
-  TempStream << "\n\nSchedulers - number of cycles where we saw N instructions "
-                "issued:\n";
-  TempStream << "[# issued], [# cycles]\n";
-  for (const std::pair<unsigned, unsigned> &Entry : IssuedPerCycle) {
-    TempStream << " " << Entry.first << ",          " << Entry.second << "  ("
-               << format("%.1f", ((double)Entry.second / NumCycles) * 100)
-               << "%)\n";
-  }
-
-  TempStream.flush();
-  OS << Buffer;
-}
-
-void SchedulerStatistics::printSchedulerUsage(raw_ostream &OS) const {
-  std::string Buffer;
-  raw_string_ostream TempStream(Buffer);
-  TempStream << "\n\nScheduler's queue usage:\n";
-  // Early exit if no buffered resources were consumed.
-  if (BufferedResources.empty()) {
-    TempStream << "No scheduler resources used.\n";
-    TempStream.flush();
-    OS << Buffer;
-    return;
-  }
-
-  for (unsigned I = 0, E = SM.getNumProcResourceKinds(); I < E; ++I) {
-    const MCProcResourceDesc &ProcResource = *SM.getProcResource(I);
-    if (ProcResource.BufferSize <= 0)
-      continue;
-
-    const auto It = BufferedResources.find(I);
-    unsigned MaxUsedSlots =
-        It == BufferedResources.end() ? 0 : It->second.MaxUsedSlots;
-    TempStream << ProcResource.Name << ",  " << MaxUsedSlots << '/'
-               << ProcResource.BufferSize << '\n';
-  }
-
-  TempStream.flush();
-  OS << Buffer;
-}
-} // namespace mca

Removed: llvm/trunk/tools/llvm-mca/SchedulerStatistics.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/SchedulerStatistics.h?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/SchedulerStatistics.h (original)
+++ llvm/trunk/tools/llvm-mca/SchedulerStatistics.h (removed)
@@ -1,91 +0,0 @@
-//===--------------------- SchedulerStatistics.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 SchedulerStatistics. Class SchedulerStatistics is a
-/// View that listens to instruction issue events in order to print general
-/// statistics related to the hardware schedulers.
-///
-/// Example:
-/// ========
-///
-/// Schedulers - number of cycles where we saw N instructions issued:
-/// [# issued], [# cycles]
-///  0,          7  (5.4%)
-///  1,          4  (3.1%)
-///  2,          8  (6.2%)
-///
-/// Scheduler's queue usage:
-/// JALU01,  0/20
-/// JFPU01,  18/18
-/// JLSAGU,  0/12
-///
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TOOLS_LLVM_MCA_SCHEDULERSTATISTICS_H
-#define LLVM_TOOLS_LLVM_MCA_SCHEDULERSTATISTICS_H
-
-#include "View.h"
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/MC/MCSubtargetInfo.h"
-#include <map>
-
-namespace mca {
-
-class SchedulerStatistics : public View {
-  const llvm::MCSchedModel &SM;
-
-  using Histogram = std::map<unsigned, unsigned>;
-  Histogram IssuedPerCycle;
-
-  unsigned NumIssued;
-  unsigned NumCycles;
-
-  // Tracks the usage of a scheduler's queue.
-  struct BufferUsage {
-    unsigned SlotsInUse;
-    unsigned MaxUsedSlots;
-  };
-
-  std::map<unsigned, BufferUsage> BufferedResources;
-
-  void updateHistograms() {
-    IssuedPerCycle[NumIssued]++;
-    NumIssued = 0;
-  }
-
-  void printSchedulerStatistics(llvm::raw_ostream &OS) const;
-  void printSchedulerUsage(llvm::raw_ostream &OS) const;
-
-public:
-  SchedulerStatistics(const llvm::MCSubtargetInfo &STI)
-      : SM(STI.getSchedModel()), NumIssued(0), NumCycles(0) {}
-
-  void onEvent(const HWInstructionEvent &Event) override;
-
-  void onCycleBegin() override { NumCycles++; }
-
-  void onCycleEnd() override { updateHistograms(); }
-
-  // Increases the number of used scheduler queue slots of every buffered
-  // resource in the Buffers set.
-  void onReservedBuffers(llvm::ArrayRef<unsigned> Buffers) override;
-
-  // Decreases by one the number of used scheduler queue slots of every
-  // buffered resource in the Buffers set.
-  void onReleasedBuffers(llvm::ArrayRef<unsigned> Buffers) override;
-
-  void printView(llvm::raw_ostream &OS) const override {
-    printSchedulerStatistics(OS);
-    printSchedulerUsage(OS);
-  }
-};
-} // namespace mca
-
-#endif

Removed: llvm/trunk/tools/llvm-mca/SummaryView.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/SummaryView.cpp?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/SummaryView.cpp (original)
+++ llvm/trunk/tools/llvm-mca/SummaryView.cpp (removed)
@@ -1,85 +0,0 @@
-//===--------------------- SummaryView.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 functionalities used by the SummaryView to print
-/// the report information.
-///
-//===----------------------------------------------------------------------===//
-
-#include "SummaryView.h"
-#include "Support.h"
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/Support/Format.h"
-
-namespace mca {
-
-#define DEBUG_TYPE "llvm-mca"
-
-using namespace llvm;
-
-SummaryView::SummaryView(const llvm::MCSchedModel &Model, const SourceMgr &S,
-                         unsigned Width)
-    : SM(Model), Source(S), DispatchWidth(Width), TotalCycles(0),
-      NumMicroOps(0), ProcResourceUsage(Model.getNumProcResourceKinds(), 0),
-      ProcResourceMasks(Model.getNumProcResourceKinds(), 0) {
-  computeProcResourceMasks(SM, ProcResourceMasks);
-}
-
-void SummaryView::onEvent(const HWInstructionEvent &Event) {
-  // We are only interested in the "instruction dispatched" events generated by
-  // the dispatch stage for instructions that are part of iteration #0.
-  if (Event.Type != HWInstructionEvent::Dispatched)
-    return;
-
-  if (Event.IR.getSourceIndex() >= Source.size())
-    return;
-
-  // Update the cumulative number of resource cycles based on the processor
-  // resource usage information available from the instruction descriptor. We
-  // need to compute the cumulative number of resource cycles for every
-  // processor resource which is consumed by an instruction of the block.
-  const Instruction &Inst = *Event.IR.getInstruction();
-  const InstrDesc &Desc = Inst.getDesc();
-  NumMicroOps += Desc.NumMicroOps;
-  for (const std::pair<uint64_t, const ResourceUsage> &RU : Desc.Resources) {
-    if (RU.second.size()) {
-      const auto It = find(ProcResourceMasks, RU.first);
-      assert(It != ProcResourceMasks.end() &&
-             "Invalid processor resource mask!");
-      ProcResourceUsage[std::distance(ProcResourceMasks.begin(), It)] +=
-          RU.second.size();
-    }
-  }
-}
-
-void SummaryView::printView(raw_ostream &OS) const {
-  unsigned Iterations = Source.getNumIterations();
-  unsigned Instructions = Source.size();
-  unsigned TotalInstructions = Instructions * Iterations;
-  double IPC = (double)TotalInstructions / TotalCycles;
-  double BlockRThroughput = computeBlockRThroughput(
-      SM, DispatchWidth, NumMicroOps, ProcResourceUsage);
-
-  std::string Buffer;
-  raw_string_ostream TempStream(Buffer);
-  TempStream << "Iterations:        " << Iterations;
-  TempStream << "\nInstructions:      " << TotalInstructions;
-  TempStream << "\nTotal Cycles:      " << TotalCycles;
-  TempStream << "\nDispatch Width:    " << DispatchWidth;
-  TempStream << "\nIPC:               " << format("%.2f", IPC);
-
-  // Round to the block reciprocal throughput to the nearest tenth.
-  TempStream << "\nBlock RThroughput: "
-             << format("%.1f", floor((BlockRThroughput * 10) + 0.5) / 10)
-             << '\n';
-  TempStream.flush();
-  OS << Buffer;
-}
-} // namespace mca.

Removed: llvm/trunk/tools/llvm-mca/SummaryView.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/SummaryView.h?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/SummaryView.h (original)
+++ llvm/trunk/tools/llvm-mca/SummaryView.h (removed)
@@ -1,76 +0,0 @@
-//===--------------------- SummaryView.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 implements the summary view.
-///
-/// The goal of the summary view is to give a very quick overview of the
-/// performance throughput. Below is an example of summary view:
-///
-///
-/// Iterations:        300
-/// Instructions:      900
-/// Total Cycles:      610
-/// Dispatch Width:    2
-/// IPC:               1.48
-/// Block RThroughput: 2.0
-///
-/// The summary view collects a few performance numbers. The two main
-/// performance indicators are 'Total Cycles' and IPC (Instructions Per Cycle).
-///
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TOOLS_LLVM_MCA_SUMMARYVIEW_H
-#define LLVM_TOOLS_LLVM_MCA_SUMMARYVIEW_H
-
-#include "SourceMgr.h"
-#include "View.h"
-#include "llvm/ADT/DenseMap.h"
-#include "llvm/MC/MCSchedule.h"
-#include "llvm/Support/raw_ostream.h"
-
-namespace mca {
-
-/// A view that collects and prints a few performance numbers.
-class SummaryView : public View {
-  const llvm::MCSchedModel &SM;
-  const SourceMgr &Source;
-  const unsigned DispatchWidth;
-  unsigned TotalCycles;
-  // The total number of micro opcodes contributed by a block of instructions.
-  unsigned NumMicroOps;
-  // For each processor resource, this vector stores the cumulative number of
-  // resource cycles consumed by the analyzed code block.
-  llvm::SmallVector<unsigned, 8> ProcResourceUsage;
-
-  // Each processor resource is associated with a so-called processor resource
-  // mask. This vector allows to correlate processor resource IDs with processor
-  // resource masks. There is exactly one element per each processor resource
-  // declared by the scheduling model.
-  llvm::SmallVector<uint64_t, 8> ProcResourceMasks;
-
-  // Compute the reciprocal throughput for the analyzed code block.
-  // The reciprocal block throughput is computed as the MAX between:
-  //   - NumMicroOps / DispatchWidth
-  //   - Total Resource Cycles / #Units   (for every resource consumed).
-  double getBlockRThroughput() const;
-
-public:
-  SummaryView(const llvm::MCSchedModel &Model, const SourceMgr &S,
-              unsigned Width);
-
-  void onCycleEnd() override { ++TotalCycles; }
-
-  void onEvent(const HWInstructionEvent &Event) override;
-
-  void printView(llvm::raw_ostream &OS) const override;
-};
-} // namespace mca
-
-#endif

Removed: llvm/trunk/tools/llvm-mca/TimelineView.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/TimelineView.cpp?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/TimelineView.cpp (original)
+++ llvm/trunk/tools/llvm-mca/TimelineView.cpp (removed)
@@ -1,240 +0,0 @@
-//===--------------------- TimelineView.cpp ---------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-/// \brief
-///
-/// This file implements the TimelineView interface.
-///
-//===----------------------------------------------------------------------===//
-
-#include "TimelineView.h"
-
-using namespace llvm;
-
-namespace mca {
-
-void TimelineView::initialize(unsigned MaxIterations) {
-  unsigned NumInstructions =
-      AsmSequence.getNumIterations() * AsmSequence.size();
-  if (!MaxIterations)
-    MaxIterations = DEFAULT_ITERATIONS;
-  unsigned NumEntries =
-      std::min(NumInstructions, MaxIterations * AsmSequence.size());
-  Timeline.resize(NumEntries);
-  TimelineViewEntry NullTVEntry = {0, 0, 0, 0, 0};
-  std::fill(Timeline.begin(), Timeline.end(), NullTVEntry);
-
-  WaitTime.resize(AsmSequence.size());
-  WaitTimeEntry NullWTEntry = {0, 0, 0, 0};
-  std::fill(WaitTime.begin(), WaitTime.end(), NullWTEntry);
-}
-
-void TimelineView::onEvent(const HWInstructionEvent &Event) {
-  const unsigned Index = Event.IR.getSourceIndex();
-  if (CurrentCycle >= MaxCycle || Index >= Timeline.size())
-    return;
-  switch (Event.Type) {
-  case HWInstructionEvent::Retired: {
-    TimelineViewEntry &TVEntry = Timeline[Index];
-    TVEntry.CycleRetired = CurrentCycle;
-
-    // Update the WaitTime entry which corresponds to this Index.
-    WaitTimeEntry &WTEntry = WaitTime[Index % AsmSequence.size()];
-    WTEntry.Executions++;
-    WTEntry.CyclesSpentInSchedulerQueue +=
-        TVEntry.CycleIssued - TVEntry.CycleDispatched;
-    assert(TVEntry.CycleDispatched <= TVEntry.CycleReady);
-    WTEntry.CyclesSpentInSQWhileReady +=
-        TVEntry.CycleIssued - TVEntry.CycleReady;
-    WTEntry.CyclesSpentAfterWBAndBeforeRetire +=
-        (TVEntry.CycleRetired - 1) - TVEntry.CycleExecuted;
-    break;
-  }
-  case HWInstructionEvent::Ready:
-    Timeline[Index].CycleReady = CurrentCycle;
-    break;
-  case HWInstructionEvent::Issued:
-    Timeline[Index].CycleIssued = CurrentCycle;
-    break;
-  case HWInstructionEvent::Executed:
-    Timeline[Index].CycleExecuted = CurrentCycle;
-    break;
-  case HWInstructionEvent::Dispatched:
-    Timeline[Index].CycleDispatched = CurrentCycle;
-    break;
-  default:
-    return;
-  }
-  LastCycle = std::max(LastCycle, CurrentCycle);
-}
-
-void TimelineView::printWaitTimeEntry(formatted_raw_ostream &OS,
-                                      const WaitTimeEntry &Entry,
-                                      unsigned SourceIndex) const {
-  OS << SourceIndex << '.';
-  OS.PadToColumn(7);
-
-  if (Entry.Executions == 0) {
-    OS << "-      -      -      -     ";
-  } else {
-    double AverageTime1, AverageTime2, AverageTime3;
-    unsigned Executions = Entry.Executions;
-    AverageTime1 = (double)Entry.CyclesSpentInSchedulerQueue / Executions;
-    AverageTime2 = (double)Entry.CyclesSpentInSQWhileReady / Executions;
-    AverageTime3 = (double)Entry.CyclesSpentAfterWBAndBeforeRetire / Executions;
-
-    OS << Executions;
-    OS.PadToColumn(13);
-
-    OS << format("%.1f", floor((AverageTime1 * 10) + 0.5) / 10);
-    OS.PadToColumn(20);
-    OS << format("%.1f", floor((AverageTime2 * 10) + 0.5) / 10);
-    OS.PadToColumn(27);
-    OS << format("%.1f", floor((AverageTime3 * 10) + 0.5) / 10);
-    OS.PadToColumn(34);
-  }
-}
-
-void TimelineView::printAverageWaitTimes(raw_ostream &OS) const {
-  if (WaitTime.empty())
-    return;
-
-  std::string Buffer;
-  raw_string_ostream TempStream(Buffer);
-  formatted_raw_ostream FOS(TempStream);
-
-  FOS << "\n\nAverage Wait times (based on the timeline view):\n"
-      << "[0]: Executions\n"
-      << "[1]: Average time spent waiting in a scheduler's queue\n"
-      << "[2]: Average time spent waiting in a scheduler's queue while ready\n"
-      << "[3]: Average time elapsed from WB until retire stage\n\n";
-  FOS << "      [0]    [1]    [2]    [3]\n";
-
-  // Use a different string stream for the instruction.
-  std::string Instruction;
-  raw_string_ostream InstrStream(Instruction);
-
-  for (unsigned I = 0, E = WaitTime.size(); I < E; ++I) {
-    printWaitTimeEntry(FOS, WaitTime[I], I);
-    // Append the instruction info at the end of the line.
-    const MCInst &Inst = AsmSequence.getMCInstFromIndex(I);
-
-    MCIP.printInst(&Inst, InstrStream, "", STI);
-    InstrStream.flush();
-
-    // Consume any tabs or spaces at the beginning of the string.
-    StringRef Str(Instruction);
-    Str = Str.ltrim();
-    FOS << "   " << Str << '\n';
-    FOS.flush();
-    Instruction = "";
-
-    OS << Buffer;
-    Buffer = "";
-  }
-}
-
-void TimelineView::printTimelineViewEntry(formatted_raw_ostream &OS,
-                                          const TimelineViewEntry &Entry,
-                                          unsigned Iteration,
-                                          unsigned SourceIndex) const {
-  if (Iteration == 0 && SourceIndex == 0)
-    OS << '\n';
-  OS << '[' << Iteration << ',' << SourceIndex << ']';
-  OS.PadToColumn(10);
-  for (unsigned I = 0, E = Entry.CycleDispatched; I < E; ++I)
-    OS << ((I % 5 == 0) ? '.' : ' ');
-  OS << TimelineView::DisplayChar::Dispatched;
-  if (Entry.CycleDispatched != Entry.CycleExecuted) {
-    // Zero latency instructions have the same value for CycleDispatched,
-    // CycleIssued and CycleExecuted.
-    for (unsigned I = Entry.CycleDispatched + 1, E = Entry.CycleIssued; I < E;
-         ++I)
-      OS << TimelineView::DisplayChar::Waiting;
-    if (Entry.CycleIssued == Entry.CycleExecuted)
-      OS << TimelineView::DisplayChar::DisplayChar::Executed;
-    else {
-      if (Entry.CycleDispatched != Entry.CycleIssued)
-        OS << TimelineView::DisplayChar::Executing;
-      for (unsigned I = Entry.CycleIssued + 1, E = Entry.CycleExecuted; I < E;
-           ++I)
-        OS << TimelineView::DisplayChar::Executing;
-      OS << TimelineView::DisplayChar::Executed;
-    }
-  }
-
-  for (unsigned I = Entry.CycleExecuted + 1, E = Entry.CycleRetired; I < E; ++I)
-    OS << TimelineView::DisplayChar::RetireLag;
-  OS << TimelineView::DisplayChar::Retired;
-
-  // Skip other columns.
-  for (unsigned I = Entry.CycleRetired + 1, E = LastCycle; I <= E; ++I)
-    OS << ((I % 5 == 0 || I == LastCycle) ? '.' : ' ');
-}
-
-static void printTimelineHeader(formatted_raw_ostream &OS, unsigned Cycles) {
-  OS << "\n\nTimeline view:\n";
-  if (Cycles >= 10) {
-    OS.PadToColumn(10);
-    for (unsigned I = 0; I <= Cycles; ++I) {
-      if (((I / 10) & 1) == 0)
-        OS << ' ';
-      else
-        OS << I % 10;
-    }
-    OS << '\n';
-  }
-
-  OS << "Index";
-  OS.PadToColumn(10);
-  for (unsigned I = 0; I <= Cycles; ++I) {
-    if (((I / 10) & 1) == 0)
-      OS << I % 10;
-    else
-      OS << ' ';
-  }
-  OS << '\n';
-}
-
-void TimelineView::printTimeline(raw_ostream &OS) const {
-  std::string Buffer;
-  raw_string_ostream StringStream(Buffer);
-  formatted_raw_ostream FOS(StringStream);
-
-  printTimelineHeader(FOS, LastCycle);
-  FOS.flush();
-  OS << Buffer;
-
-  // Use a different string stream for the instruction.
-  std::string Instruction;
-  raw_string_ostream InstrStream(Instruction);
-
-  for (unsigned I = 0, E = Timeline.size(); I < E; ++I) {
-    Buffer = "";
-    const TimelineViewEntry &Entry = Timeline[I];
-    if (Entry.CycleRetired == 0)
-      return;
-
-    unsigned Iteration = I / AsmSequence.size();
-    unsigned SourceIndex = I % AsmSequence.size();
-    printTimelineViewEntry(FOS, Entry, Iteration, SourceIndex);
-    // Append the instruction info at the end of the line.
-    const MCInst &Inst = AsmSequence.getMCInstFromIndex(I);
-    MCIP.printInst(&Inst, InstrStream, "", STI);
-    InstrStream.flush();
-
-    // Consume any tabs or spaces at the beginning of the string.
-    StringRef Str(Instruction);
-    Str = Str.ltrim();
-    FOS << "   " << Str << '\n';
-    FOS.flush();
-    Instruction = "";
-    OS << Buffer;
-  }
-}
-} // namespace mca

Removed: llvm/trunk/tools/llvm-mca/TimelineView.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/TimelineView.h?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/TimelineView.h (original)
+++ llvm/trunk/tools/llvm-mca/TimelineView.h (removed)
@@ -1,189 +0,0 @@
-//===--------------------- TimelineView.h -----------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-/// \brief
-///
-/// This file implements a timeline view for the llvm-mca tool.
-///
-/// Class TimelineView observes events generated by the pipeline. For every
-/// instruction executed by the pipeline, it stores information related to
-/// state transition. It then plots that information in the form of a table
-/// as reported by the example below:
-///
-/// Timeline view:
-///     	          0123456
-/// Index	0123456789
-///
-/// [0,0]	DeER .    .    ..	vmovshdup  %xmm0, %xmm1
-/// [0,1]	DeER .    .    ..	vpermilpd  $1, %xmm0, %xmm2
-/// [0,2]	.DeER.    .    ..	vpermilps  $231, %xmm0, %xmm5
-/// [0,3]	.DeeeER   .    ..	vaddss  %xmm1, %xmm0, %xmm3
-/// [0,4]	. D==eeeER.    ..	vaddss  %xmm3, %xmm2, %xmm4
-/// [0,5]	. D=====eeeER  ..	vaddss  %xmm4, %xmm5, %xmm6
-///
-/// [1,0]	.  DeE------R  ..	vmovshdup  %xmm0, %xmm1
-/// [1,1]	.  DeE------R  ..	vpermilpd  $1, %xmm0, %xmm2
-/// [1,2]	.   DeE-----R  ..	vpermilps  $231, %xmm0, %xmm5
-/// [1,3]	.   D=eeeE--R  ..	vaddss  %xmm1, %xmm0, %xmm3
-/// [1,4]	.    D===eeeER ..	vaddss  %xmm3, %xmm2, %xmm4
-/// [1,5]	.    D======eeeER	vaddss  %xmm4, %xmm5, %xmm6
-///
-/// There is an entry for every instruction in the input assembly sequence.
-/// The first field is a pair of numbers obtained from the instruction index.
-/// The first element of the pair is the iteration index, while the second
-/// element of the pair is a sequence number (i.e. a position in the assembly
-/// sequence).
-/// The second field of the table is the actual timeline information; each
-/// column is the information related to a specific cycle of execution.
-/// The timeline of an instruction is described by a sequence of character
-/// where each character represents the instruction state at a specific cycle.
-///
-/// Possible instruction states are:
-///  D: Instruction Dispatched
-///  e: Instruction Executing
-///  E: Instruction Executed (write-back stage)
-///  R: Instruction retired
-///  =: Instruction waiting in the Scheduler's queue
-///  -: Instruction executed, waiting to retire in order.
-///
-/// dots ('.') and empty spaces are cycles where the instruction is not
-/// in-flight.
-///
-/// The last column is the assembly instruction associated to the entry.
-///
-/// Based on the timeline view information from the example, instruction 0
-/// at iteration 0 was dispatched at cycle 0, and was retired at cycle 3.
-/// Instruction [0,1] was also dispatched at cycle 0, and it retired at
-/// the same cycle than instruction [0,0].
-/// Instruction [0,4] has been dispatched at cycle 2. However, it had to
-/// wait for two cycles before being issued. That is because operands
-/// became ready only at cycle 5.
-///
-/// This view helps further understanding bottlenecks and the impact of
-/// resource pressure on the code.
-///
-/// To better understand why instructions had to wait for multiple cycles in
-/// the scheduler's queue, class TimelineView also reports extra timing info
-/// in another table named "Average Wait times" (see example below).
-///
-///
-/// Average Wait times (based on the timeline view):
-/// [0]: Executions
-/// [1]: Average time spent waiting in a scheduler's queue
-/// [2]: Average time spent waiting in a scheduler's queue while ready
-/// [3]: Average time elapsed from WB until retire stage
-///
-///	[0]	[1]	[2]	[3]
-/// 0.	 2	1.0	1.0	3.0	vmovshdup  %xmm0, %xmm1
-/// 1.	 2	1.0	1.0	3.0	vpermilpd  $1, %xmm0, %xmm2
-/// 2.	 2	1.0	1.0	2.5	vpermilps  $231, %xmm0, %xmm5
-/// 3.	 2	1.5	0.5	1.0	vaddss  %xmm1, %xmm0, %xmm3
-/// 4.	 2	3.5	0.0	0.0	vaddss  %xmm3, %xmm2, %xmm4
-/// 5.	 2	6.5	0.0	0.0	vaddss  %xmm4, %xmm5, %xmm6
-///
-/// By comparing column [2] with column [1], we get an idea about how many
-/// cycles were spent in the scheduler's queue due to data dependencies.
-///
-/// In this example, instruction 5 spent an average of ~6 cycles in the
-/// scheduler's queue. As soon as operands became ready, the instruction
-/// was immediately issued to the pipeline(s).
-/// That is expected because instruction 5 cannot transition to the "ready"
-/// state until %xmm4 is written by instruction 4.
-///
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TOOLS_LLVM_MCA_TIMELINEVIEW_H
-#define LLVM_TOOLS_LLVM_MCA_TIMELINEVIEW_H
-
-#include "SourceMgr.h"
-#include "View.h"
-#include "llvm/MC/MCInstPrinter.h"
-#include "llvm/MC/MCSubtargetInfo.h"
-#include "llvm/Support/FormattedStream.h"
-#include "llvm/Support/raw_ostream.h"
-#include <map>
-
-namespace mca {
-
-/// This class listens to instruction state transition events
-/// in order to construct a timeline information.
-///
-/// For every instruction executed by the Pipeline, this class constructs
-/// a TimelineViewEntry object. TimelineViewEntry objects are then used
-/// to print the timeline information, as well as the "average wait times"
-/// for every instruction in the input assembly sequence.
-class TimelineView : public View {
-  const llvm::MCSubtargetInfo &STI;
-  llvm::MCInstPrinter &MCIP;
-  const SourceMgr &AsmSequence;
-
-  unsigned CurrentCycle;
-  unsigned MaxCycle;
-  unsigned LastCycle;
-
-  struct TimelineViewEntry {
-    unsigned CycleDispatched;
-    unsigned CycleReady;
-    unsigned CycleIssued;
-    unsigned CycleExecuted;
-    unsigned CycleRetired;
-  };
-  std::vector<TimelineViewEntry> Timeline;
-
-  struct WaitTimeEntry {
-    unsigned Executions;
-    unsigned CyclesSpentInSchedulerQueue;
-    unsigned CyclesSpentInSQWhileReady;
-    unsigned CyclesSpentAfterWBAndBeforeRetire;
-  };
-  std::vector<WaitTimeEntry> WaitTime;
-
-  void printTimelineViewEntry(llvm::formatted_raw_ostream &OS,
-                              const TimelineViewEntry &E, unsigned Iteration,
-                              unsigned SourceIndex) const;
-  void printWaitTimeEntry(llvm::formatted_raw_ostream &OS,
-                          const WaitTimeEntry &E, unsigned Index) const;
-
-  const unsigned DEFAULT_ITERATIONS = 10;
-
-  void initialize(unsigned MaxIterations);
-
-  // Display characters for the TimelineView report output.
-  struct DisplayChar {
-    static const char Dispatched = 'D';
-    static const char Executed = 'E';
-    static const char Retired = 'R';
-    static const char Waiting = '='; // Instruction is waiting in the scheduler.
-    static const char Executing = 'e';
-    static const char RetireLag = '-'; // The instruction is waiting to retire.
-  };
-
-public:
-  TimelineView(const llvm::MCSubtargetInfo &sti, llvm::MCInstPrinter &Printer,
-               const SourceMgr &Sequence, unsigned MaxIterations,
-               unsigned Cycles)
-      : STI(sti), MCIP(Printer), AsmSequence(Sequence), CurrentCycle(0),
-        MaxCycle(Cycles == 0 ? 80 : Cycles), LastCycle(0) {
-    initialize(MaxIterations);
-  }
-
-  // Event handlers.
-  void onCycleEnd() override { ++CurrentCycle; }
-  void onEvent(const HWInstructionEvent &Event) override;
-
-  // print functionalities.
-  void printTimeline(llvm::raw_ostream &OS) const;
-  void printAverageWaitTimes(llvm::raw_ostream &OS) const;
-  void printView(llvm::raw_ostream &OS) const override {
-    printTimeline(OS);
-    printAverageWaitTimes(OS);
-  }
-};
-} // namespace mca
-
-#endif

Removed: llvm/trunk/tools/llvm-mca/View.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/View.cpp?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/View.cpp (original)
+++ llvm/trunk/tools/llvm-mca/View.cpp (removed)
@@ -1,20 +0,0 @@
-//===----------------------- View.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 defines the virtual anchor method in View.h to pin the vtable.
-///
-//===----------------------------------------------------------------------===//
-
-#include "View.h"
-
-namespace mca {
-
-void View::anchor() {}
-} // namespace mca

Removed: llvm/trunk/tools/llvm-mca/View.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/View.h?rev=340644&view=auto
==============================================================================
--- llvm/trunk/tools/llvm-mca/View.h (original)
+++ llvm/trunk/tools/llvm-mca/View.h (removed)
@@ -1,32 +0,0 @@
-//===----------------------- View.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 the main interface for Views. Each view contributes a
-/// portion of the final report generated by the tool.
-///
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TOOLS_LLVM_MCA_VIEW_H
-#define LLVM_TOOLS_LLVM_MCA_VIEW_H
-
-#include "HWEventListener.h"
-#include "llvm/Support/raw_ostream.h"
-
-namespace mca {
-
-class View : public HWEventListener {
-public:
-  virtual void printView(llvm::raw_ostream &OS) const = 0;
-  virtual ~View() = default;
-  void anchor() override;
-};
-} // namespace mca
-
-#endif

Copied: llvm/trunk/tools/llvm-mca/Views/DispatchStatistics.cpp (from r340644, llvm/trunk/tools/llvm-mca/DispatchStatistics.cpp)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/DispatchStatistics.cpp?p2=llvm/trunk/tools/llvm-mca/Views/DispatchStatistics.cpp&p1=llvm/trunk/tools/llvm-mca/DispatchStatistics.cpp&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/DispatchStatistics.cpp (original)
+++ llvm/trunk/tools/llvm-mca/Views/DispatchStatistics.cpp Fri Aug 24 13:24:53 2018
@@ -13,7 +13,7 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#include "DispatchStatistics.h"
+#include "Views/DispatchStatistics.h"
 #include "llvm/Support/Format.h"
 
 using namespace llvm;

Copied: llvm/trunk/tools/llvm-mca/Views/DispatchStatistics.h (from r340644, llvm/trunk/tools/llvm-mca/DispatchStatistics.h)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/DispatchStatistics.h?p2=llvm/trunk/tools/llvm-mca/Views/DispatchStatistics.h&p1=llvm/trunk/tools/llvm-mca/DispatchStatistics.h&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/DispatchStatistics.h (original)
+++ llvm/trunk/tools/llvm-mca/Views/DispatchStatistics.h Fri Aug 24 13:24:53 2018
@@ -34,7 +34,7 @@
 #ifndef LLVM_TOOLS_LLVM_MCA_DISPATCHVIEW_H
 #define LLVM_TOOLS_LLVM_MCA_DISPATCHVIEW_H
 
-#include "View.h"
+#include "Views/View.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/MC/MCSubtargetInfo.h"
 #include <map>

Copied: llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.cpp (from r340644, llvm/trunk/tools/llvm-mca/InstructionInfoView.cpp)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.cpp?p2=llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.cpp&p1=llvm/trunk/tools/llvm-mca/InstructionInfoView.cpp&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/InstructionInfoView.cpp (original)
+++ llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.cpp Fri Aug 24 13:24:53 2018
@@ -12,7 +12,7 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#include "InstructionInfoView.h"
+#include "Views/InstructionInfoView.h"
 
 namespace mca {
 

Copied: llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.h (from r340644, llvm/trunk/tools/llvm-mca/InstructionInfoView.h)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.h?p2=llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.h&p1=llvm/trunk/tools/llvm-mca/InstructionInfoView.h&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/InstructionInfoView.h (original)
+++ llvm/trunk/tools/llvm-mca/Views/InstructionInfoView.h Fri Aug 24 13:24:53 2018
@@ -36,7 +36,7 @@
 #define LLVM_TOOLS_LLVM_MCA_INSTRUCTIONINFOVIEW_H
 
 #include "SourceMgr.h"
-#include "View.h"
+#include "Views/View.h"
 #include "llvm/MC/MCInstPrinter.h"
 #include "llvm/MC/MCInstrInfo.h"
 #include "llvm/MC/MCSubtargetInfo.h"

Copied: llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.cpp (from r340644, llvm/trunk/tools/llvm-mca/RegisterFileStatistics.cpp)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.cpp?p2=llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.cpp&p1=llvm/trunk/tools/llvm-mca/RegisterFileStatistics.cpp&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/RegisterFileStatistics.cpp (original)
+++ llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.cpp Fri Aug 24 13:24:53 2018
@@ -12,7 +12,7 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#include "RegisterFileStatistics.h"
+#include "Views/RegisterFileStatistics.h"
 #include "llvm/Support/Format.h"
 
 using namespace llvm;

Copied: llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.h (from r340644, llvm/trunk/tools/llvm-mca/RegisterFileStatistics.h)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.h?p2=llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.h&p1=llvm/trunk/tools/llvm-mca/RegisterFileStatistics.h&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/RegisterFileStatistics.h (original)
+++ llvm/trunk/tools/llvm-mca/Views/RegisterFileStatistics.h Fri Aug 24 13:24:53 2018
@@ -32,7 +32,7 @@
 #ifndef LLVM_TOOLS_LLVM_MCA_REGISTERFILESTATISTICS_H
 #define LLVM_TOOLS_LLVM_MCA_REGISTERFILESTATISTICS_H
 
-#include "View.h"
+#include "Views/View.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/MC/MCSubtargetInfo.h"
 

Copied: llvm/trunk/tools/llvm-mca/Views/ResourcePressureView.cpp (from r340644, llvm/trunk/tools/llvm-mca/ResourcePressureView.cpp)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/ResourcePressureView.cpp?p2=llvm/trunk/tools/llvm-mca/Views/ResourcePressureView.cpp&p1=llvm/trunk/tools/llvm-mca/ResourcePressureView.cpp&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/ResourcePressureView.cpp (original)
+++ llvm/trunk/tools/llvm-mca/Views/ResourcePressureView.cpp Fri Aug 24 13:24:53 2018
@@ -12,7 +12,7 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#include "ResourcePressureView.h"
+#include "Views/ResourcePressureView.h"
 #include "llvm/Support/FormattedStream.h"
 #include "llvm/Support/raw_ostream.h"
 

Copied: llvm/trunk/tools/llvm-mca/Views/ResourcePressureView.h (from r340644, llvm/trunk/tools/llvm-mca/ResourcePressureView.h)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/ResourcePressureView.h?p2=llvm/trunk/tools/llvm-mca/Views/ResourcePressureView.h&p1=llvm/trunk/tools/llvm-mca/ResourcePressureView.h&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/ResourcePressureView.h (original)
+++ llvm/trunk/tools/llvm-mca/Views/ResourcePressureView.h Fri Aug 24 13:24:53 2018
@@ -59,7 +59,7 @@
 #define LLVM_TOOLS_LLVM_MCA_RESOURCEPRESSUREVIEW_H
 
 #include "SourceMgr.h"
-#include "View.h"
+#include "Views/View.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/MC/MCInstPrinter.h"
 #include "llvm/MC/MCSubtargetInfo.h"

Copied: llvm/trunk/tools/llvm-mca/Views/RetireControlUnitStatistics.cpp (from r340644, llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.cpp)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/RetireControlUnitStatistics.cpp?p2=llvm/trunk/tools/llvm-mca/Views/RetireControlUnitStatistics.cpp&p1=llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.cpp&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.cpp (original)
+++ llvm/trunk/tools/llvm-mca/Views/RetireControlUnitStatistics.cpp Fri Aug 24 13:24:53 2018
@@ -12,7 +12,7 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#include "RetireControlUnitStatistics.h"
+#include "Views/RetireControlUnitStatistics.h"
 #include "llvm/Support/Format.h"
 
 using namespace llvm;

Copied: llvm/trunk/tools/llvm-mca/Views/RetireControlUnitStatistics.h (from r340644, llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.h)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/RetireControlUnitStatistics.h?p2=llvm/trunk/tools/llvm-mca/Views/RetireControlUnitStatistics.h&p1=llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.h&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/RetireControlUnitStatistics.h (original)
+++ llvm/trunk/tools/llvm-mca/Views/RetireControlUnitStatistics.h Fri Aug 24 13:24:53 2018
@@ -26,7 +26,7 @@
 #ifndef LLVM_TOOLS_LLVM_MCA_RETIRECONTROLUNITSTATISTICS_H
 #define LLVM_TOOLS_LLVM_MCA_RETIRECONTROLUNITSTATISTICS_H
 
-#include "View.h"
+#include "Views/View.h"
 #include "llvm/MC/MCSubtargetInfo.h"
 #include <map>
 

Copied: llvm/trunk/tools/llvm-mca/Views/SchedulerStatistics.cpp (from r340644, llvm/trunk/tools/llvm-mca/SchedulerStatistics.cpp)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/SchedulerStatistics.cpp?p2=llvm/trunk/tools/llvm-mca/Views/SchedulerStatistics.cpp&p1=llvm/trunk/tools/llvm-mca/SchedulerStatistics.cpp&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/SchedulerStatistics.cpp (original)
+++ llvm/trunk/tools/llvm-mca/Views/SchedulerStatistics.cpp Fri Aug 24 13:24:53 2018
@@ -12,7 +12,7 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#include "SchedulerStatistics.h"
+#include "Views/SchedulerStatistics.h"
 #include "llvm/Support/Format.h"
 
 using namespace llvm;

Copied: llvm/trunk/tools/llvm-mca/Views/SchedulerStatistics.h (from r340644, llvm/trunk/tools/llvm-mca/SchedulerStatistics.h)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/SchedulerStatistics.h?p2=llvm/trunk/tools/llvm-mca/Views/SchedulerStatistics.h&p1=llvm/trunk/tools/llvm-mca/SchedulerStatistics.h&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/SchedulerStatistics.h (original)
+++ llvm/trunk/tools/llvm-mca/Views/SchedulerStatistics.h Fri Aug 24 13:24:53 2018
@@ -31,7 +31,7 @@
 #ifndef LLVM_TOOLS_LLVM_MCA_SCHEDULERSTATISTICS_H
 #define LLVM_TOOLS_LLVM_MCA_SCHEDULERSTATISTICS_H
 
-#include "View.h"
+#include "Views/View.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/MC/MCSubtargetInfo.h"
 #include <map>

Copied: llvm/trunk/tools/llvm-mca/Views/SummaryView.cpp (from r340644, llvm/trunk/tools/llvm-mca/SummaryView.cpp)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/SummaryView.cpp?p2=llvm/trunk/tools/llvm-mca/Views/SummaryView.cpp&p1=llvm/trunk/tools/llvm-mca/SummaryView.cpp&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/SummaryView.cpp (original)
+++ llvm/trunk/tools/llvm-mca/Views/SummaryView.cpp Fri Aug 24 13:24:53 2018
@@ -13,7 +13,7 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#include "SummaryView.h"
+#include "Views/SummaryView.h"
 #include "Support.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/Format.h"

Copied: llvm/trunk/tools/llvm-mca/Views/SummaryView.h (from r340644, llvm/trunk/tools/llvm-mca/SummaryView.h)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/SummaryView.h?p2=llvm/trunk/tools/llvm-mca/Views/SummaryView.h&p1=llvm/trunk/tools/llvm-mca/SummaryView.h&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/SummaryView.h (original)
+++ llvm/trunk/tools/llvm-mca/Views/SummaryView.h Fri Aug 24 13:24:53 2018
@@ -30,7 +30,7 @@
 #define LLVM_TOOLS_LLVM_MCA_SUMMARYVIEW_H
 
 #include "SourceMgr.h"
-#include "View.h"
+#include "Views/View.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/MC/MCSchedule.h"
 #include "llvm/Support/raw_ostream.h"

Copied: llvm/trunk/tools/llvm-mca/Views/TimelineView.cpp (from r340644, llvm/trunk/tools/llvm-mca/TimelineView.cpp)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/TimelineView.cpp?p2=llvm/trunk/tools/llvm-mca/Views/TimelineView.cpp&p1=llvm/trunk/tools/llvm-mca/TimelineView.cpp&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/TimelineView.cpp (original)
+++ llvm/trunk/tools/llvm-mca/Views/TimelineView.cpp Fri Aug 24 13:24:53 2018
@@ -12,7 +12,7 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#include "TimelineView.h"
+#include "Views/TimelineView.h"
 
 using namespace llvm;
 

Copied: llvm/trunk/tools/llvm-mca/Views/TimelineView.h (from r340644, llvm/trunk/tools/llvm-mca/TimelineView.h)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/TimelineView.h?p2=llvm/trunk/tools/llvm-mca/Views/TimelineView.h&p1=llvm/trunk/tools/llvm-mca/TimelineView.h&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/TimelineView.h (original)
+++ llvm/trunk/tools/llvm-mca/Views/TimelineView.h Fri Aug 24 13:24:53 2018
@@ -101,7 +101,7 @@
 #define LLVM_TOOLS_LLVM_MCA_TIMELINEVIEW_H
 
 #include "SourceMgr.h"
-#include "View.h"
+#include "Views/View.h"
 #include "llvm/MC/MCInstPrinter.h"
 #include "llvm/MC/MCSubtargetInfo.h"
 #include "llvm/Support/FormattedStream.h"

Copied: llvm/trunk/tools/llvm-mca/Views/View.cpp (from r340644, llvm/trunk/tools/llvm-mca/View.cpp)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/Views/View.cpp?p2=llvm/trunk/tools/llvm-mca/Views/View.cpp&p1=llvm/trunk/tools/llvm-mca/View.cpp&r1=340644&r2=340645&rev=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/View.cpp (original)
+++ llvm/trunk/tools/llvm-mca/Views/View.cpp Fri Aug 24 13:24:53 2018
@@ -12,7 +12,7 @@
 ///
 //===----------------------------------------------------------------------===//
 
-#include "View.h"
+#include "Views/View.h"
 
 namespace mca {
 

Modified: llvm/trunk/tools/llvm-mca/llvm-mca.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mca/llvm-mca.cpp?rev=340645&r1=340644&r2=340645&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-mca/llvm-mca.cpp (original)
+++ llvm/trunk/tools/llvm-mca/llvm-mca.cpp Fri Aug 24 13:24:53 2018
@@ -23,18 +23,18 @@
 
 #include "CodeRegion.h"
 #include "Context.h"
-#include "DispatchStatistics.h"
 #include "FetchStage.h"
-#include "InstructionInfoView.h"
 #include "InstructionTables.h"
 #include "Pipeline.h"
 #include "PipelinePrinter.h"
-#include "RegisterFileStatistics.h"
-#include "ResourcePressureView.h"
-#include "RetireControlUnitStatistics.h"
-#include "SchedulerStatistics.h"
-#include "SummaryView.h"
-#include "TimelineView.h"
+#include "Views/DispatchStatistics.h"
+#include "Views/InstructionInfoView.h"
+#include "Views/RegisterFileStatistics.h"
+#include "Views/ResourcePressureView.h"
+#include "Views/RetireControlUnitStatistics.h"
+#include "Views/SchedulerStatistics.h"
+#include "Views/SummaryView.h"
+#include "Views/TimelineView.h"
 #include "llvm/MC/MCAsmInfo.h"
 #include "llvm/MC/MCContext.h"
 #include "llvm/MC/MCObjectFileInfo.h"




More information about the llvm-commits mailing list