xref: /llvm-project/llvm/tools/llvm-exegesis/lib/SerialSnippetGenerator.h (revision 6030fe01f4ee9a65d92effe44749bee11b36d346)
124b7b99bSMiloš Stojanović //===-- SerialSnippetGenerator.h --------------------------------*- C++ -*-===//
224b7b99bSMiloš Stojanović //
324b7b99bSMiloš Stojanović // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
424b7b99bSMiloš Stojanović // See https://llvm.org/LICENSE.txt for license information.
524b7b99bSMiloš Stojanović // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
624b7b99bSMiloš Stojanović //
724b7b99bSMiloš Stojanović //===----------------------------------------------------------------------===//
824b7b99bSMiloš Stojanović ///
924b7b99bSMiloš Stojanović /// \file
1024b7b99bSMiloš Stojanović /// A SnippetGenerator implementation to create serial instruction snippets.
1124b7b99bSMiloš Stojanović ///
1224b7b99bSMiloš Stojanović //===----------------------------------------------------------------------===//
1324b7b99bSMiloš Stojanović 
1424b7b99bSMiloš Stojanović #ifndef LLVM_TOOLS_LLVM_EXEGESIS_SERIALSNIPPETGENERATOR_H
1524b7b99bSMiloš Stojanović #define LLVM_TOOLS_LLVM_EXEGESIS_SERIALSNIPPETGENERATOR_H
1624b7b99bSMiloš Stojanović 
1724b7b99bSMiloš Stojanović #include "Error.h"
1824b7b99bSMiloš Stojanović #include "MCInstrDescView.h"
1924b7b99bSMiloš Stojanović #include "SnippetGenerator.h"
2024b7b99bSMiloš Stojanović 
2124b7b99bSMiloš Stojanović namespace llvm {
2224b7b99bSMiloš Stojanović namespace exegesis {
2324b7b99bSMiloš Stojanović 
2424b7b99bSMiloš Stojanović class SerialSnippetGenerator : public SnippetGenerator {
2524b7b99bSMiloš Stojanović public:
2624b7b99bSMiloš Stojanović   using SnippetGenerator::SnippetGenerator;
2724b7b99bSMiloš Stojanović   ~SerialSnippetGenerator() override;
2824b7b99bSMiloš Stojanović 
2924b7b99bSMiloš Stojanović   Expected<std::vector<CodeTemplate>>
30*6030fe01SRoman Lebedev   generateCodeTemplates(InstructionTemplate Variant,
3124b7b99bSMiloš Stojanović                         const BitVector &ForbiddenRegisters) const override;
3224b7b99bSMiloš Stojanović };
3324b7b99bSMiloš Stojanović 
3424b7b99bSMiloš Stojanović } // namespace exegesis
3524b7b99bSMiloš Stojanović } // namespace llvm
3624b7b99bSMiloš Stojanović 
3724b7b99bSMiloš Stojanović #endif // LLVM_TOOLS_LLVM_EXEGESIS_SERIALSNIPPETGENERATOR_H
38