1//===--------------------- CustomBehaviour.cpp ------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8/// \file 9/// 10/// This file implements methods from the CustomBehaviour interface. 11/// 12//===----------------------------------------------------------------------===// 13 14#include "llvm/MCA/CustomBehaviour.h" 15 16namespace llvm { 17namespace mca { 18 19CustomBehaviour::~CustomBehaviour() = default; 20 21unsigned CustomBehaviour::checkCustomHazard(ArrayRef<InstRef> IssuedInst, 22 const InstRef &IR) { 23 // 0 signifies that there are no hazards that need to be waited on 24 return 0; 25} 26 27std::vector<std::unique_ptr<View>> 28CustomBehaviour::getStartViews(llvm::MCInstPrinter &IP, 29 llvm::ArrayRef<llvm::MCInst> Insts) { 30 return std::vector<std::unique_ptr<View>>(); 31} 32 33std::vector<std::unique_ptr<View>> 34CustomBehaviour::getPostInstrInfoViews(llvm::MCInstPrinter &IP, 35 llvm::ArrayRef<llvm::MCInst> Insts) { 36 return std::vector<std::unique_ptr<View>>(); 37} 38 39std::vector<std::unique_ptr<View>> 40CustomBehaviour::getEndViews(llvm::MCInstPrinter &IP, 41 llvm::ArrayRef<llvm::MCInst> Insts) { 42 return std::vector<std::unique_ptr<View>>(); 43} 44 45UniqueInstrument InstrumentManager::createInstrument(llvm::StringRef Desc, 46 llvm::StringRef Data) { 47 return std::make_unique<Instrument>(Desc, Data); 48} 49 50SmallVector<UniqueInstrument> 51InstrumentManager::createInstruments(const MCInst &Inst) { 52 return SmallVector<UniqueInstrument>(); 53} 54 55unsigned InstrumentManager::getSchedClassID( 56 const MCInstrInfo &MCII, const MCInst &MCI, 57 const llvm::SmallVector<Instrument *> &IVec) const { 58 return MCII.get(MCI.getOpcode()).getSchedClass(); 59} 60 61} // namespace mca 62} // namespace llvm 63