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 UniqueInstrument InstrumentManager::createInstrument(llvm::StringRef Desc,
46                                                      llvm::StringRef Data) {
47   return std::make_unique<Instrument>(Desc, Data);
48 }
49 
50 SmallVector<UniqueInstrument>
51 InstrumentManager::createInstruments(const MCInst &Inst) {
52   return SmallVector<UniqueInstrument>();
53 }
54 
55 unsigned 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