diff options
| author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-10-24 16:56:43 +0000 |
|---|---|---|
| committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-10-24 16:56:43 +0000 |
| commit | 65c77d7283b0026c1f8235514a67eb57fbcc31ec (patch) | |
| tree | d9f221196175b79fd26c98a0964760004781ef20 /llvm/tools/llvm-mca | |
| parent | d5a27884b1ffc3077b915046eeb241a5c31bf458 (diff) | |
| download | bcm5719-llvm-65c77d7283b0026c1f8235514a67eb57fbcc31ec.tar.gz bcm5719-llvm-65c77d7283b0026c1f8235514a67eb57fbcc31ec.zip | |
[llvm-mca] Remove dependency from InstrBuilder in class InstructionTables.
Also, removed the initialization of vectors used for processor resource masks.
Support function 'computeProcResourceMasks()' already calls method resize on
those vectors.
No functional change intended.
llvm-svn: 345161
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. |

