1 //===--------------------- CustomBehaviour.cpp ------------------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
10 /// This file implements methods from the CustomBehaviour interface.
12 //===----------------------------------------------------------------------===//
14 #include "llvm/MCA/CustomBehaviour.h"
19 CustomBehaviour::~CustomBehaviour() = default;
21 unsigned CustomBehaviour::checkCustomHazard(ArrayRef
<InstRef
> IssuedInst
,
23 // 0 signifies that there are no hazards that need to be waited on
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
>>();
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
>>();
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
>>();
45 UniqueInstrument
InstrumentManager::createInstrument(llvm::StringRef Desc
,
46 llvm::StringRef Data
) {
47 return std::make_unique
<Instrument
>(Desc
, Data
);
50 SmallVector
<UniqueInstrument
>
51 InstrumentManager::createInstruments(const MCInst
&Inst
) {
52 return SmallVector
<UniqueInstrument
>();
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();