diff options
Diffstat (limited to 'llvm/tools/llvm-mca')
| -rw-r--r-- | llvm/tools/llvm-mca/Views/SummaryView.cpp | 3 | ||||
| -rw-r--r-- | llvm/tools/llvm-mca/include/InstrBuilder.h | 3 | ||||
| -rw-r--r-- | llvm/tools/llvm-mca/include/Stages/InstructionTables.h | 9 | ||||
| -rw-r--r-- | llvm/tools/llvm-mca/lib/HardwareUnits/ResourceManager.cpp | 3 | ||||
| -rw-r--r-- | llvm/tools/llvm-mca/lib/Stages/InstructionTables.cpp | 1 | ||||
| -rw-r--r-- | llvm/tools/llvm-mca/llvm-mca.cpp | 2 |
6 files changed, 9 insertions, 12 deletions
diff --git a/llvm/tools/llvm-mca/Views/SummaryView.cpp b/llvm/tools/llvm-mca/Views/SummaryView.cpp index 98f3410d61b..8d529ba1549 100644 --- a/llvm/tools/llvm-mca/Views/SummaryView.cpp +++ b/llvm/tools/llvm-mca/Views/SummaryView.cpp @@ -27,8 +27,7 @@ using namespace llvm; SummaryView::SummaryView(const 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) { + NumMicroOps(0), ProcResourceUsage(Model.getNumProcResourceKinds(), 0) { computeProcResourceMasks(SM, ProcResourceMasks); } diff --git a/llvm/tools/llvm-mca/include/InstrBuilder.h b/llvm/tools/llvm-mca/include/InstrBuilder.h index 9fee94bbb3f..31c52702058 100644 --- a/llvm/tools/llvm-mca/include/InstrBuilder.h +++ b/llvm/tools/llvm-mca/include/InstrBuilder.h @@ -65,8 +65,7 @@ public: InstrBuilder(const llvm::MCSubtargetInfo &sti, const llvm::MCInstrInfo &mcii, const llvm::MCRegisterInfo &mri, const llvm::MCInstrAnalysis &mcia) - : STI(sti), MCII(mcii), MRI(mri), MCIA(mcia), - ProcResourceMasks(STI.getSchedModel().getNumProcResourceKinds()) { + : STI(sti), MCII(mcii), MRI(mri), MCIA(mcia) { computeProcResourceMasks(STI.getSchedModel(), ProcResourceMasks); } diff --git a/llvm/tools/llvm-mca/include/Stages/InstructionTables.h b/llvm/tools/llvm-mca/include/Stages/InstructionTables.h index 16be004d115..de31a7949bb 100644 --- a/llvm/tools/llvm-mca/include/Stages/InstructionTables.h +++ b/llvm/tools/llvm-mca/include/Stages/InstructionTables.h @@ -18,8 +18,8 @@ #define LLVM_TOOLS_LLVM_MCA_INSTRUCTIONTABLES_H #include "HardwareUnits/Scheduler.h" -#include "InstrBuilder.h" #include "Stages/Stage.h" +#include "Support.h" #include "llvm/ADT/SmallVector.h" #include "llvm/MC/MCSchedule.h" @@ -27,12 +27,13 @@ namespace mca { class InstructionTables final : public Stage { const llvm::MCSchedModel &SM; - InstrBuilder &IB; llvm::SmallVector<std::pair<ResourceRef, ResourceCycles>, 4> UsedResources; + llvm::SmallVector<uint64_t, 8> Masks; public: - InstructionTables(const llvm::MCSchedModel &Model, InstrBuilder &Builder) - : Stage(), SM(Model), IB(Builder) {} + InstructionTables(const llvm::MCSchedModel &Model) : Stage(), SM(Model) { + computeProcResourceMasks(Model, Masks); + } bool hasWorkToComplete() const override { return false; } llvm::Error execute(InstRef &IR) override; diff --git a/llvm/tools/llvm-mca/lib/HardwareUnits/ResourceManager.cpp b/llvm/tools/llvm-mca/lib/HardwareUnits/ResourceManager.cpp index bb6ed309c26..e033217d52d 100644 --- a/llvm/tools/llvm-mca/lib/HardwareUnits/ResourceManager.cpp +++ b/llvm/tools/llvm-mca/lib/HardwareUnits/ResourceManager.cpp @@ -97,8 +97,7 @@ getStrategyFor(const ResourceState &RS) { return std::unique_ptr<ResourceStrategy>(nullptr); } -ResourceManager::ResourceManager(const MCSchedModel &SM) - : ProcResID2Mask(SM.getNumProcResourceKinds()) { +ResourceManager::ResourceManager(const MCSchedModel &SM) { computeProcResourceMasks(SM, ProcResID2Mask); Resources.resize(SM.getNumProcResourceKinds()); Strategies.resize(SM.getNumProcResourceKinds()); diff --git a/llvm/tools/llvm-mca/lib/Stages/InstructionTables.cpp b/llvm/tools/llvm-mca/lib/Stages/InstructionTables.cpp index e49eb446062..06319f857dc 100644 --- a/llvm/tools/llvm-mca/lib/Stages/InstructionTables.cpp +++ b/llvm/tools/llvm-mca/lib/Stages/InstructionTables.cpp @@ -22,7 +22,6 @@ namespace mca { using namespace llvm; Error InstructionTables::execute(InstRef &IR) { - ArrayRef<uint64_t> Masks = IB.getProcResourceMasks(); const InstrDesc &Desc = IR.getInstruction()->getDesc(); UsedResources.clear(); diff --git a/llvm/tools/llvm-mca/llvm-mca.cpp b/llvm/tools/llvm-mca/llvm-mca.cpp index 9ad761e6665..9992395fb6e 100644 --- a/llvm/tools/llvm-mca/llvm-mca.cpp +++ b/llvm/tools/llvm-mca/llvm-mca.cpp @@ -519,7 +519,7 @@ int main(int argc, char **argv) { // Create a pipeline, stages, and a printer. auto P = llvm::make_unique<mca::Pipeline>(); P->appendStage(llvm::make_unique<mca::FetchStage>(IB, S)); - P->appendStage(llvm::make_unique<mca::InstructionTables>(SM, IB)); + P->appendStage(llvm::make_unique<mca::InstructionTables>(SM)); mca::PipelinePrinter Printer(*P); // Create the views for this pipeline, execute, and emit a report. |

