|
LLVM
4.0.0
|
This class prints out the machine instructions using the MIR serialization format. More...
Public Member Functions | |
| MIPrinter (raw_ostream &OS, ModuleSlotTracker &MST, const DenseMap< const uint32_t *, unsigned > &RegisterMaskIds, const DenseMap< int, FrameIndexOperand > &StackObjectOperandMapping) | |
| void | print (const MachineBasicBlock &MBB) |
| void | print (const MachineInstr &MI) |
| void | printMBBReference (const MachineBasicBlock &MBB) |
| void | printIRBlockReference (const BasicBlock &BB) |
| void | printIRValueReference (const Value &V) |
| void | printStackObjectReference (int FrameIndex) |
| void | printOffset (int64_t Offset) |
| void | printTargetFlags (const MachineOperand &Op) |
| void | print (const MachineOperand &Op, const TargetRegisterInfo *TRI, unsigned I, bool ShouldPrintRegisterTies, LLT TypeToPrint, bool IsDef=false) |
| void | print (const MachineMemOperand &Op) |
| void | print (const MCCFIInstruction &CFI, const TargetRegisterInfo *TRI) |
This class prints out the machine instructions using the MIR serialization format.
Definition at line 102 of file MIRPrinter.cpp.
|
inline |
Definition at line 109 of file MIRPrinter.cpp.
| void MIPrinter::print | ( | const MachineBasicBlock & | MBB | ) |
Definition at line 437 of file MIRPrinter.cpp.
References assert(), llvm::MachineInstr::BundledSucc, E, llvm::format(), llvm::MachineBasicBlock::getAlignment(), llvm::MachineBasicBlock::getBasicBlock(), llvm::MachineInstr::getFlag(), llvm::ModuleSlotTracker::getLocalSlot(), llvm::MachineBasicBlock::getNumber(), llvm::BranchProbability::getNumerator(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::MachineBasicBlock::hasAddressTaken(), llvm::MachineBasicBlock::hasSuccessorProbabilities(), I, llvm::raw_ostream::indent(), llvm::MachineBasicBlock::instr_begin(), llvm::MachineBasicBlock::instr_end(), llvm::MachineBasicBlock::isEHPad(), llvm::MachineInstr::isInsideBundle(), llvm::MachineBasicBlock::livein_empty(), llvm::MachineBasicBlock::liveins(), MI, MRI, llvm::PrintLaneMask(), printMBBReference(), printReg(), llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_empty(), llvm::MachineBasicBlock::succ_end(), and llvm::MachineRegisterInfo::tracksLiveness().
Referenced by llvm::MIRPrinter::print(), and print().
| void MIPrinter::print | ( | const MachineInstr & | MI | ) |
Definition at line 567 of file MIRPrinter.cpp.
References assert(), E, llvm::MachineInstr::FrameSetup, llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getFlag(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getSubtarget(), getTypeToPrint(), hasComplexRegisterTies(), I, llvm::MachineInstr::isCFIInstruction(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isImplicit(), llvm::MachineOperand::isReg(), llvm::MachineInstr::memoperands(), llvm::MachineInstr::memoperands_empty(), MRI, print(), llvm::Metadata::printAsOperand(), and TII.
| void MIPrinter::print | ( | const MachineOperand & | Op, |
| const TargetRegisterInfo * | TRI, | ||
| unsigned | I, | ||
| bool | ShouldPrintRegisterTies, | ||
| LLT | TypeToPrint, | ||
| bool | IsDef = false |
||
| ) |
Definition at line 775 of file MIRPrinter.cpp.
References E, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::MachineInstr::findTiedOperandIdx(), llvm::BlockAddress::getBasicBlock(), llvm::MachineOperand::getBlockAddress(), llvm::MachineOperand::getCFIIndex(), llvm::MachineOperand::getCImm(), llvm::MachineOperand::getFPImm(), llvm::MachineFunction::getFrameInstructions(), llvm::BlockAddress::getFunction(), llvm::MachineOperand::getGlobal(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineOperand::getIntrinsicID(), llvm::TargetMachine::getIntrinsicInfo(), llvm::MachineOperand::getMBB(), llvm::MachineOperand::getMCSymbol(), llvm::MachineOperand::getMetadata(), llvm::TargetIntrinsicInfo::getName(), llvm::Intrinsic::getName(), llvm::MCRegisterInfo::getNumRegs(), llvm::MachineOperand::getOffset(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getParent(), llvm::MachineOperand::getPredicate(), llvm::CmpInst::getPredicateName(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getRegLiveOut(), llvm::MachineOperand::getRegMask(), llvm::TargetRegisterInfo::getRegMaskNames(), llvm::MachineOperand::getSubReg(), llvm::TargetRegisterInfo::getSubRegIndexName(), llvm::MachineOperand::getSymbolName(), llvm::MachineFunction::getTarget(), getTargetIndexName(), llvm::MachineOperand::getType(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isDebug(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isEarlyClobber(), llvm::MachineOperand::isImplicit(), llvm::MachineOperand::isInternalRead(), llvm::CmpInst::isIntPredicate(), llvm::MachineOperand::isKill(), llvm::MachineOperand::isTied(), llvm::MachineOperand::isUndef(), llvm::LLT::isValid(), llvm_unreachable, llvm::MachineOperand::MO_BlockAddress, llvm::MachineOperand::MO_CFIIndex, llvm::MachineOperand::MO_CImmediate, llvm::MachineOperand::MO_ConstantPoolIndex, llvm::MachineOperand::MO_ExternalSymbol, llvm::MachineOperand::MO_FPImmediate, llvm::MachineOperand::MO_FrameIndex, llvm::MachineOperand::MO_GlobalAddress, llvm::MachineOperand::MO_Immediate, llvm::MachineOperand::MO_IntrinsicID, llvm::MachineOperand::MO_JumpTableIndex, llvm::MachineOperand::MO_MachineBasicBlock, llvm::MachineOperand::MO_MCSymbol, llvm::MachineOperand::MO_Metadata, llvm::MachineOperand::MO_Predicate, llvm::MachineOperand::MO_Register, llvm::MachineOperand::MO_RegisterLiveOut, llvm::MachineOperand::MO_RegisterMask, llvm::MachineOperand::MO_TargetIndex, llvm::None, llvm::Intrinsic::num_intrinsics, print(), llvm::Metadata::printAsOperand(), llvm::Value::printAsOperand(), printIRBlockReference(), llvm::printLLVMNameWithoutPrefix(), printMBBReference(), printOffset(), printReg(), printStackObjectReference(), printTargetFlags(), and TII.
| void MIPrinter::print | ( | const MachineMemOperand & | Op | ) |
Definition at line 912 of file MIRPrinter.cpp.
References assert(), llvm::PseudoSourceValue::ConstantPool, llvm::PseudoSourceValue::ExternalSymbolCallEntry, llvm::PseudoSourceValue::FixedStack, llvm::MachineMemOperand::getAAInfo(), llvm::MachineMemOperand::getBaseAlignment(), llvm::MachineMemOperand::getOffset(), llvm::MachineMemOperand::getPseudoValue(), llvm::MachineMemOperand::getRanges(), llvm::MachineMemOperand::getSize(), llvm::object::getSymbol(), llvm::MachineMemOperand::getValue(), llvm::PseudoSourceValue::GlobalValueCallEntry, llvm::PseudoSourceValue::GOT, llvm::MachineMemOperand::isDereferenceable(), llvm::MachineMemOperand::isInvariant(), llvm::MachineMemOperand::isLoad(), llvm::MachineMemOperand::isNonTemporal(), llvm::MachineMemOperand::isStore(), llvm::MachineMemOperand::isVolatile(), llvm::PseudoSourceValue::JumpTable, llvm_unreachable, llvm::Metadata::printAsOperand(), printIRValueReference(), llvm::printLLVMNameWithoutPrefix(), printOffset(), printStackObjectReference(), llvm::PseudoSourceValue::Stack, and llvm::PseudoSourceValue::TargetCustom.
| void MIPrinter::print | ( | const MCCFIInstruction & | CFI, |
| const TargetRegisterInfo * | TRI | ||
| ) |
Definition at line 1001 of file MIRPrinter.cpp.
References llvm::MCCFIInstruction::getLabel(), llvm::MCCFIInstruction::getOffset(), llvm::MCCFIInstruction::getOperation(), llvm::MCCFIInstruction::getRegister(), llvm::MCCFIInstruction::OpDefCfa, llvm::MCCFIInstruction::OpDefCfaOffset, llvm::MCCFIInstruction::OpDefCfaRegister, llvm::MCCFIInstruction::OpOffset, llvm::MCCFIInstruction::OpSameValue, and printCFIRegister().
| void MIPrinter::printIRBlockReference | ( | const BasicBlock & | BB | ) |
Definition at line 642 of file MIRPrinter.cpp.
References F, llvm::ModuleSlotTracker::getCurrentFunction(), llvm::ModuleSlotTracker::getLocalSlot(), llvm::Value::getName(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::hasName(), llvm::ModuleSlotTracker::incorporateFunction(), printIRSlotNumber(), and llvm::printLLVMNameWithoutPrefix().
Referenced by print().
Definition at line 661 of file MIRPrinter.cpp.
References llvm::ModuleSlotTracker::getLocalSlot(), llvm::Value::getName(), llvm::Value::hasName(), llvm::Value::printAsOperand(), printIRSlotNumber(), and llvm::printLLVMNameWithoutPrefix().
Referenced by print().
| void MIPrinter::printMBBReference | ( | const MachineBasicBlock & | MBB | ) |
Definition at line 627 of file MIRPrinter.cpp.
References llvm::MachineBasicBlock::getBasicBlock(), and llvm::MachineBasicBlock::getNumber().
Referenced by llvm::MIRPrinter::convert(), and print().
| void MIPrinter::printOffset | ( | int64_t | Offset | ) |
| void MIPrinter::printStackObjectReference | ( | int | FrameIndex | ) |
Definition at line 681 of file MIRPrinter.cpp.
References assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
Referenced by llvm::MIRPrinter::convertStackObjects(), and print().
| void MIPrinter::printTargetFlags | ( | const MachineOperand & | Op | ) |
Definition at line 715 of file MIRPrinter.cpp.
References assert(), fuzzer::Flags, llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getParent(), llvm::MachineFunction::getSubtarget(), getTargetFlagName(), llvm::MachineOperand::getTargetFlags(), llvm::BitmaskEnumDetail::Mask(), and TII.
Referenced by print().
1.8.6