//===--------------------- InstructionTables.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 custom stage to generate instruction tables. /// See the description of command-line flag -instruction-tables in /// docs/CommandGuide/lvm-mca.rst /// //===----------------------------------------------------------------------===// #ifndef LLVM_TOOLS_LLVM_MCA_INSTRUCTIONTABLES_H #define LLVM_TOOLS_LLVM_MCA_INSTRUCTIONTABLES_H #include "InstrBuilder.h" #include "Scheduler.h" #include "Stage.h" #include "View.h" #include "llvm/ADT/SmallVector.h" #include "llvm/MC/MCSchedule.h" namespace mca { class InstructionTables : public Stage { const llvm::MCSchedModel &SM; InstrBuilder &IB; llvm::SmallVector, 4> UsedResources; public: InstructionTables(const llvm::MCSchedModel &Model, InstrBuilder &Builder) : Stage(), SM(Model), IB(Builder) {} bool hasWorkToComplete() const override final { return false; } bool execute(InstRef &IR) override final; }; } // namespace mca #endif