blob: 42a1ed38b503e2c9cda880fe558b880b27cdfae1 [file] [log] [blame]
Miloš Stojanović24b7b992020-01-17 14:28:54 +01001//===-- 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>>
Roman Lebedev6030fe02020-02-12 20:54:39 +030030 generateCodeTemplates(InstructionTemplate Variant,
Miloš Stojanović24b7b992020-01-17 14:28:54 +010031 const BitVector &ForbiddenRegisters) const override;
32};
33
34} // namespace exegesis
35} // namespace llvm
36
37#endif // LLVM_TOOLS_LLVM_EXEGESIS_SERIALSNIPPETGENERATOR_H