From ec3524064c57fbc2c5976ca301bbaadc94006d07 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 1 Aug 2004 05:04:00 +0000 Subject: Add, and start using, the CodeGenInstruction class. This class represents an instance of the Instruction tablegen class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15385 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/CodeGenInstruction.h | 49 +++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 utils/TableGen/CodeGenInstruction.h (limited to 'utils/TableGen/CodeGenInstruction.h') diff --git a/utils/TableGen/CodeGenInstruction.h b/utils/TableGen/CodeGenInstruction.h new file mode 100644 index 0000000000..88f2c17d9d --- /dev/null +++ b/utils/TableGen/CodeGenInstruction.h @@ -0,0 +1,49 @@ +//===- CodeGenInstruction.h - Instruction Class Wrapper ---------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by the LLVM research group and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines a wrapper class for the 'Instruction' TableGen class. +// +//===----------------------------------------------------------------------===// + +#ifndef CODEGEN_INSTRUCTION_H +#define CODEGEN_INSTRUCTION_H + +#include +#include +#include + +namespace llvm { + class Record; + + struct CodeGenInstruction { + Record *TheDef; // The actual record defining this instruction. + std::string Name; // Contents of the 'Name' field. + std::string Namespace; // The namespace the instruction is in. + + /// AsmString - The format string used to emit a .s file for the + /// instruction. + std::string AsmString; + + /// OperandList - The list of declared operands, along with their declared + /// type (which is a record). + std::vector > OperandList; + + // Various boolean values we track for the instruction. + bool isReturn; + bool isBranch; + bool isBarrier; + bool isCall; + bool isTwoAddress; + bool isTerminator; + + CodeGenInstruction(Record *R); + }; +} + +#endif -- cgit v1.2.3