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 
16 namespace llvm {
17 namespace mca {
18 
19 CustomBehaviour::~CustomBehaviour() = default;
20 
21 unsigned 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 
27 std::vector<std::unique_ptr<View>>
28 CustomBehaviour::getStartViews(llvm::MCInstPrinter &IP,
29                                llvm::ArrayRef<llvm::MCInst> Insts) {
30   return std::vector<std::unique_ptr<View>>();
31 }
32 
33 std::vector<std::unique_ptr<View>>
34 CustomBehaviour::getPostInstrInfoViews(llvm::MCInstPrinter &IP,
35                                        llvm::ArrayRef<llvm::MCInst> Insts) {
36   return std::vector<std::unique_ptr<View>>();
37 }
38 
39 std::vector<std::unique_ptr<View>>
40 CustomBehaviour::getEndViews(llvm::MCInstPrinter &IP,
41                              llvm::ArrayRef<llvm::MCInst> Insts) {
42   return std::vector<std::unique_ptr<View>>();
43 }
44 
45 SharedInstrument InstrumentManager::createInstrument(llvm::StringRef Desc,
46                                                      llvm::StringRef Data) {
47   return std::make_shared<Instrument>(Desc, Data);
48 }
49 
50 unsigned InstrumentManager::getSchedClassID(
51     const MCInstrInfo &MCII, const MCInst &MCI,
52     const llvm::SmallVector<SharedInstrument> &IVec) const {
53   return MCII.get(MCI.getOpcode()).getSchedClass();
54 }
55 
56 } // namespace mca
57 } // namespace llvm
58