xref: /openbsd-src/gnu/llvm/llvm/lib/MCA/CustomBehaviour.cpp (revision d415bd752c734aee168c4ee86ff32e8cc249eb16)
173471bf0Spatrick //===--------------------- CustomBehaviour.cpp ------------------*- C++ -*-===//
273471bf0Spatrick //
373471bf0Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
473471bf0Spatrick // See https://llvm.org/LICENSE.txt for license information.
573471bf0Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
673471bf0Spatrick //
773471bf0Spatrick //===----------------------------------------------------------------------===//
873471bf0Spatrick /// \file
973471bf0Spatrick ///
1073471bf0Spatrick /// This file implements methods from the CustomBehaviour interface.
1173471bf0Spatrick ///
1273471bf0Spatrick //===----------------------------------------------------------------------===//
1373471bf0Spatrick 
1473471bf0Spatrick #include "llvm/MCA/CustomBehaviour.h"
1573471bf0Spatrick 
1673471bf0Spatrick namespace llvm {
1773471bf0Spatrick namespace mca {
1873471bf0Spatrick 
19*d415bd75Srobert CustomBehaviour::~CustomBehaviour() = default;
2073471bf0Spatrick 
checkCustomHazard(ArrayRef<InstRef> IssuedInst,const InstRef & IR)2173471bf0Spatrick unsigned CustomBehaviour::checkCustomHazard(ArrayRef<InstRef> IssuedInst,
2273471bf0Spatrick                                             const InstRef &IR) {
2373471bf0Spatrick   // 0 signifies that there are no hazards that need to be waited on
2473471bf0Spatrick   return 0;
2573471bf0Spatrick }
2673471bf0Spatrick 
27*d415bd75Srobert std::vector<std::unique_ptr<View>>
getStartViews(llvm::MCInstPrinter & IP,llvm::ArrayRef<llvm::MCInst> Insts)28*d415bd75Srobert CustomBehaviour::getStartViews(llvm::MCInstPrinter &IP,
29*d415bd75Srobert                                llvm::ArrayRef<llvm::MCInst> Insts) {
30*d415bd75Srobert   return std::vector<std::unique_ptr<View>>();
31*d415bd75Srobert }
32*d415bd75Srobert 
33*d415bd75Srobert std::vector<std::unique_ptr<View>>
getPostInstrInfoViews(llvm::MCInstPrinter & IP,llvm::ArrayRef<llvm::MCInst> Insts)34*d415bd75Srobert CustomBehaviour::getPostInstrInfoViews(llvm::MCInstPrinter &IP,
35*d415bd75Srobert                                        llvm::ArrayRef<llvm::MCInst> Insts) {
36*d415bd75Srobert   return std::vector<std::unique_ptr<View>>();
37*d415bd75Srobert }
38*d415bd75Srobert 
39*d415bd75Srobert std::vector<std::unique_ptr<View>>
getEndViews(llvm::MCInstPrinter & IP,llvm::ArrayRef<llvm::MCInst> Insts)40*d415bd75Srobert CustomBehaviour::getEndViews(llvm::MCInstPrinter &IP,
41*d415bd75Srobert                              llvm::ArrayRef<llvm::MCInst> Insts) {
42*d415bd75Srobert   return std::vector<std::unique_ptr<View>>();
43*d415bd75Srobert }
44*d415bd75Srobert 
createInstrument(llvm::StringRef Desc,llvm::StringRef Data)45*d415bd75Srobert SharedInstrument InstrumentManager::createInstrument(llvm::StringRef Desc,
46*d415bd75Srobert                                                      llvm::StringRef Data) {
47*d415bd75Srobert   return std::make_shared<Instrument>(Desc, Data);
48*d415bd75Srobert }
49*d415bd75Srobert 
getSchedClassID(const MCInstrInfo & MCII,const MCInst & MCI,const llvm::SmallVector<SharedInstrument> & IVec) const50*d415bd75Srobert unsigned InstrumentManager::getSchedClassID(
51*d415bd75Srobert     const MCInstrInfo &MCII, const MCInst &MCI,
52*d415bd75Srobert     const llvm::SmallVector<SharedInstrument> &IVec) const {
53*d415bd75Srobert   return MCII.get(MCI.getOpcode()).getSchedClass();
54*d415bd75Srobert }
55*d415bd75Srobert 
5673471bf0Spatrick } // namespace mca
5773471bf0Spatrick } // namespace llvm
58