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