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 21 namespace llvm { 22 namespace exegesis { 23 24 class SerialSnippetGenerator : public SnippetGenerator { 25 public: 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