Lines Matching defs:MachineOperand

1 //===-- llvm/CodeGen/MachineOperand.h - MachineOperand class ----*- C++ -*-===//
10 // This file contains the declaration of the MachineOperand class.
36 /// MachineOperand class - Representation of each machine instruction operand.
41 /// not having to call the MachineOperand destructor.
43 class MachineOperand {
165 MachineOperand *Prev; // Access list for register. See MRI.
166 MachineOperand *Next;
183 explicit MachineOperand(MachineOperandType K)
212 /// The MachineOperand copy constructor also copies ParentMI, expecting the
213 /// original to be deleted. If a MachineOperand is ever stored outside a
223 // Accessors that tell you what kind of MachineOperand you're looking at.
270 assert(isReg() && "Wrong MachineOperand accessor");
275 assert(isReg() && "Wrong MachineOperand accessor");
280 assert(isReg() && "Wrong MachineOperand accessor");
285 assert(isReg() && "Wrong MachineOperand accessor");
290 assert(isReg() && "Wrong MachineOperand accessor");
295 assert(isReg() && "Wrong MachineOperand accessor");
300 assert(isReg() && "Wrong MachineOperand accessor");
305 assert(isReg() && "Wrong MachineOperand accessor");
310 assert(isReg() && "Wrong MachineOperand accessor");
315 assert(isReg() && "Wrong MachineOperand accessor");
320 assert(isReg() && "Wrong MachineOperand accessor");
332 assert(isReg() && "Wrong MachineOperand accessor");
345 assert(isReg() && "Wrong MachineOperand accessor");
368 assert(isReg() && "Wrong MachineOperand accessor");
373 assert(isReg() && !IsDef && "Wrong MachineOperand accessor");
379 assert(isReg() && IsDef && "Wrong MachineOperand accessor");
384 assert(isReg() && "Wrong MachineOperand accessor");
389 assert(isReg() && "Wrong MachineOperand accessor");
394 assert(isReg() && IsDef && "Wrong MachineOperand accessor");
399 assert(isReg() && !IsDef && "Wrong MachineOperand accessor");
408 assert(isImm() && "Wrong MachineOperand accessor");
413 assert(isCImm() && "Wrong MachineOperand accessor");
418 assert(isFPImm() && "Wrong MachineOperand accessor");
423 assert(isMBB() && "Wrong MachineOperand accessor");
429 "Wrong MachineOperand accessor");
434 assert(isGlobal() && "Wrong MachineOperand accessor");
439 assert(isBlockAddress() && "Wrong MachineOperand accessor");
444 assert(isMCSymbol() && "Wrong MachineOperand accessor");
449 assert(isCFIIndex() && "Wrong MachineOperand accessor");
457 isBlockAddress()) && "Wrong MachineOperand accessor");
463 assert(isSymbol() && "Wrong MachineOperand accessor");
485 assert(isRegMask() && "Wrong MachineOperand accessor");
491 assert(isRegLiveOut() && "Wrong MachineOperand accessor");
496 assert(isMetadata() && "Wrong MachineOperand accessor");
505 assert(isImm() && "Wrong MachineOperand mutator");
511 isBlockAddress()) && "Wrong MachineOperand accessor");
518 "Wrong MachineOperand accessor");
523 assert(isMBB() && "Wrong MachineOperand accessor");
533 bool isIdenticalTo(const MachineOperand &Other) const;
535 /// \brief MachineOperand hash_value overload.
540 friend hash_code hash_value(const MachineOperand &MO);
558 static MachineOperand CreateImm(int64_t Val) {
559 MachineOperand Op(MachineOperand::MO_Immediate);
564 static MachineOperand CreateCImm(const ConstantInt *CI) {
565 MachineOperand Op(MachineOperand::MO_CImmediate);
570 static MachineOperand CreateFPImm(const ConstantFP *CFP) {
571 MachineOperand Op(MachineOperand::MO_FPImmediate);
576 static MachineOperand CreateReg(unsigned Reg, bool isDef, bool isImp = false,
585 MachineOperand Op(MachineOperand::MO_Register);
601 static MachineOperand CreateMBB(MachineBasicBlock *MBB,
603 MachineOperand Op(MachineOperand::MO_MachineBasicBlock);
608 static MachineOperand CreateFI(int Idx) {
609 MachineOperand Op(MachineOperand::MO_FrameIndex);
613 static MachineOperand CreateCPI(unsigned Idx, int Offset,
615 MachineOperand Op(MachineOperand::MO_ConstantPoolIndex);
621 static MachineOperand CreateTargetIndex(unsigned Idx, int64_t Offset,
623 MachineOperand Op(MachineOperand::MO_TargetIndex);
629 static MachineOperand CreateJTI(unsigned Idx,
631 MachineOperand Op(MachineOperand::MO_JumpTableIndex);
636 static MachineOperand CreateGA(const GlobalValue *GV, int64_t Offset,
638 MachineOperand Op(MachineOperand::MO_GlobalAddress);
644 static MachineOperand CreateES(const char *SymName,
646 MachineOperand Op(MachineOperand::MO_ExternalSymbol);
652 static MachineOperand CreateBA(const BlockAddress *BA, int64_t Offset,
654 MachineOperand Op(MachineOperand::MO_BlockAddress);
672 static MachineOperand CreateRegMask(const uint32_t *Mask) {
674 MachineOperand Op(MachineOperand::MO_RegisterMask);
678 static MachineOperand CreateRegLiveOut(const uint32_t *Mask) {
680 MachineOperand Op(MachineOperand::MO_RegisterLiveOut);
684 static MachineOperand CreateMetadata(const MDNode *Meta) {
685 MachineOperand Op(MachineOperand::MO_Metadata);
690 static MachineOperand CreateMCSymbol(MCSymbol *Sym) {
691 MachineOperand Op(MachineOperand::MO_MCSymbol);
696 static MachineOperand CreateCFIIndex(unsigned CFIIndex) {
697 MachineOperand Op(MachineOperand::MO_CFIIndex);
718 inline raw_ostream &operator<<(raw_ostream &OS, const MachineOperand& MO) {
725 hash_code hash_value(const MachineOperand &MO);