LLVM 17.0.0git
Classes | Namespaces | Macros | Enumerations
MCInstrDesc.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/MC/MCRegister.h"
Include dependency graph for MCInstrDesc.h:

Go to the source code of this file.

Classes

class  llvm::MCOperandInfo
 This holds information about one operand of a machine instruction, indicating the register class for register operands, etc. More...
 
class  llvm::MCInstrDesc
 Describe properties that are true of each instruction in the target description file. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::MCOI
 
namespace  llvm::MCID
 

Macros

#define MCOI_TIED_TO(op)    ((1 << MCOI::TIED_TO) | ((op) << (4 + MCOI::TIED_TO * 4)))
 
#define MCOI_EARLY_CLOBBER    (1 << MCOI::EARLY_CLOBBER)
 

Enumerations

enum  llvm::MCOI::OperandConstraint { llvm::MCOI::TIED_TO = 0 , llvm::MCOI::EARLY_CLOBBER }
 Operand constraints. More...
 
enum  llvm::MCOI::OperandFlags { llvm::MCOI::LookupPtrRegClass = 0 , llvm::MCOI::Predicate , llvm::MCOI::OptionalDef , llvm::MCOI::BranchTarget }
 These are flags set on operands, but should be considered private, all access should go through the MCOperandInfo accessors. More...
 
enum  llvm::MCOI::OperandType {
  llvm::MCOI::OPERAND_UNKNOWN = 0 , llvm::MCOI::OPERAND_IMMEDIATE = 1 , llvm::MCOI::OPERAND_REGISTER = 2 , llvm::MCOI::OPERAND_MEMORY = 3 ,
  llvm::MCOI::OPERAND_PCREL = 4 , llvm::MCOI::OPERAND_FIRST_GENERIC = 6 , llvm::MCOI::OPERAND_GENERIC_0 = 6 , llvm::MCOI::OPERAND_GENERIC_1 = 7 ,
  llvm::MCOI::OPERAND_GENERIC_2 = 8 , llvm::MCOI::OPERAND_GENERIC_3 = 9 , llvm::MCOI::OPERAND_GENERIC_4 = 10 , llvm::MCOI::OPERAND_GENERIC_5 = 11 ,
  llvm::MCOI::OPERAND_LAST_GENERIC = 11 , llvm::MCOI::OPERAND_FIRST_GENERIC_IMM = 12 , llvm::MCOI::OPERAND_GENERIC_IMM_0 = 12 , llvm::MCOI::OPERAND_LAST_GENERIC_IMM = 12 ,
  llvm::MCOI::OPERAND_FIRST_TARGET = 13
}
 Operands are tagged with one of the values of this enum. More...
 
enum  llvm::MCID::Flag {
  llvm::MCID::PreISelOpcode = 0 , llvm::MCID::Variadic , llvm::MCID::HasOptionalDef , llvm::MCID::Pseudo ,
  llvm::MCID::Meta , llvm::MCID::Return , llvm::MCID::EHScopeReturn , llvm::MCID::Call ,
  llvm::MCID::Barrier , llvm::MCID::Terminator , llvm::MCID::Branch , llvm::MCID::IndirectBranch ,
  llvm::MCID::Compare , llvm::MCID::MoveImm , llvm::MCID::MoveReg , llvm::MCID::Bitcast ,
  llvm::MCID::Select , llvm::MCID::DelaySlot , llvm::MCID::FoldableAsLoad , llvm::MCID::MayLoad ,
  llvm::MCID::MayStore , llvm::MCID::MayRaiseFPException , llvm::MCID::Predicable , llvm::MCID::NotDuplicable ,
  llvm::MCID::UnmodeledSideEffects , llvm::MCID::Commutable , llvm::MCID::ConvertibleTo3Addr , llvm::MCID::UsesCustomInserter ,
  llvm::MCID::HasPostISelHook , llvm::MCID::Rematerializable , llvm::MCID::CheapAsAMove , llvm::MCID::ExtraSrcRegAllocReq ,
  llvm::MCID::ExtraDefRegAllocReq , llvm::MCID::RegSequence , llvm::MCID::ExtractSubreg , llvm::MCID::InsertSubreg ,
  llvm::MCID::Convergent , llvm::MCID::Add , llvm::MCID::Trap , llvm::MCID::VariadicOpsAreDefs ,
  llvm::MCID::Authenticated
}
 These should be considered private to the implementation of the MCInstrDesc class. More...
 

Macro Definition Documentation

◆ MCOI_EARLY_CLOBBER

#define MCOI_EARLY_CLOBBER    (1 << MCOI::EARLY_CLOBBER)

Definition at line 44 of file MCInstrDesc.h.

◆ MCOI_TIED_TO

#define MCOI_TIED_TO (   op)     ((1 << MCOI::TIED_TO) | ((op) << (4 + MCOI::TIED_TO * 4)))

Definition at line 41 of file MCInstrDesc.h.