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 {
162 MachineOperand *Prev; // Access list for register. See MRI.
163 MachineOperand *Next;
180 explicit MachineOperand(MachineOperandType K)
209 /// The MachineOperand copy constructor also copies ParentMI, expecting the
210 /// original to be deleted. If a MachineOperand is ever stored outside a
220 // Accessors that tell you what kind of MachineOperand you're looking at.
265 assert(isReg() && "Wrong MachineOperand accessor");
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");
327 assert(isReg() && "Wrong MachineOperand accessor");
340 assert(isReg() && "Wrong MachineOperand accessor");
363 assert(isReg() && "Wrong MachineOperand accessor");
368 assert(isReg() && !IsDef && "Wrong MachineOperand accessor");
374 assert(isReg() && IsDef && "Wrong MachineOperand accessor");
379 assert(isReg() && "Wrong MachineOperand accessor");
384 assert(isReg() && "Wrong MachineOperand accessor");
389 assert(isReg() && IsDef && "Wrong MachineOperand accessor");
394 assert(isReg() && IsDef && "Wrong MachineOperand accessor");
403 assert(isImm() && "Wrong MachineOperand accessor");
408 assert(isCImm() && "Wrong MachineOperand accessor");
413 assert(isFPImm() && "Wrong MachineOperand accessor");
418 assert(isMBB() && "Wrong MachineOperand accessor");
424 "Wrong MachineOperand accessor");
429 assert(isGlobal() && "Wrong MachineOperand accessor");
434 assert(isBlockAddress() && "Wrong MachineOperand accessor");
439 assert(isMCSymbol() && "Wrong MachineOperand accessor");
447 isBlockAddress()) && "Wrong MachineOperand accessor");
453 assert(isSymbol() && "Wrong MachineOperand accessor");
475 assert(isRegMask() && "Wrong MachineOperand accessor");
480 assert(isMetadata() && "Wrong MachineOperand accessor");
489 assert(isImm() && "Wrong MachineOperand mutator");
495 isBlockAddress()) && "Wrong MachineOperand accessor");
502 "Wrong MachineOperand accessor");
507 assert(isMBB() && "Wrong MachineOperand accessor");
517 bool isIdenticalTo(const MachineOperand &Other) const;
519 /// \brief MachineOperand hash_value overload.
524 friend hash_code hash_value(const MachineOperand &MO);
542 static MachineOperand CreateImm(int64_t Val) {
543 MachineOperand Op(MachineOperand::MO_Immediate);
548 static MachineOperand CreateCImm(const ConstantInt *CI) {
549 MachineOperand Op(MachineOperand::MO_CImmediate);
554 static MachineOperand CreateFPImm(const ConstantFP *CFP) {
555 MachineOperand Op(MachineOperand::MO_FPImmediate);
560 static MachineOperand CreateReg(unsigned Reg, bool isDef, bool isImp = false,
567 MachineOperand Op(MachineOperand::MO_Register);
583 static MachineOperand CreateMBB(MachineBasicBlock *MBB,
585 MachineOperand Op(MachineOperand::MO_MachineBasicBlock);
590 static MachineOperand CreateFI(int Idx) {
591 MachineOperand Op(MachineOperand::MO_FrameIndex);
595 static MachineOperand CreateCPI(unsigned Idx, int Offset,
597 MachineOperand Op(MachineOperand::MO_ConstantPoolIndex);
603 static MachineOperand CreateTargetIndex(unsigned Idx, int64_t Offset,
605 MachineOperand Op(MachineOperand::MO_TargetIndex);
611 static MachineOperand CreateJTI(unsigned Idx,
613 MachineOperand Op(MachineOperand::MO_JumpTableIndex);
618 static MachineOperand CreateGA(const GlobalValue *GV, int64_t Offset,
620 MachineOperand Op(MachineOperand::MO_GlobalAddress);
626 static MachineOperand CreateES(const char *SymName,
628 MachineOperand Op(MachineOperand::MO_ExternalSymbol);
634 static MachineOperand CreateBA(const BlockAddress *BA, int64_t Offset,
636 MachineOperand Op(MachineOperand::MO_BlockAddress);
654 static MachineOperand CreateRegMask(const uint32_t *Mask) {
656 MachineOperand Op(MachineOperand::MO_RegisterMask);
660 static MachineOperand CreateMetadata(const MDNode *Meta) {
661 MachineOperand Op(MachineOperand::MO_Metadata);
666 static MachineOperand CreateMCSymbol(MCSymbol *Sym) {
667 MachineOperand Op(MachineOperand::MO_MCSymbol);
688 inline raw_ostream &operator<<(raw_ostream &OS, const MachineOperand& MO) {
695 hash_code hash_value(const MachineOperand &MO);