1//===-- SerialSnippetGenerator.h --------------------------------*- 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///
9/// \file
10/// A SnippetGenerator implementation to create serial instruction snippets.
11///
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_TOOLS_LLVM_EXEGESIS_SERIALSNIPPETGENERATOR_H
15#define LLVM_TOOLS_LLVM_EXEGESIS_SERIALSNIPPETGENERATOR_H
16
17#include "Error.h"
18#include "MCInstrDescView.h"
19#include "SnippetGenerator.h"
20
21namespace llvm {
22namespace exegesis {
23
24class SerialSnippetGenerator : public SnippetGenerator {
25public:
26 using SnippetGenerator::SnippetGenerator;
27 ~SerialSnippetGenerator() override;
28
29 Expected<std::vector<CodeTemplate>>
30 generateCodeTemplates(InstructionTemplate Variant,
31 const BitVector &ForbiddenRegisters) const override;
32};
33
34} // namespace exegesis
35} // namespace llvm
36
37#endif // LLVM_TOOLS_LLVM_EXEGESIS_SERIALSNIPPETGENERATOR_H
38