LLVM 20.0.0git
|
This class prints out the machine functions using the MIR serialization format. More...
Public Member Functions | |
MIRPrinter (raw_ostream &OS, const MachineModuleInfo &MMI) | |
void | print (const MachineFunction &MF) |
void | convert (yaml::MachineFunction &MF, const MachineRegisterInfo &RegInfo, const TargetRegisterInfo *TRI) |
void | convert (ModuleSlotTracker &MST, yaml::MachineFrameInfo &YamlMFI, const MachineFrameInfo &MFI) |
void | convert (yaml::MachineFunction &MF, const MachineConstantPool &ConstantPool) |
void | convert (ModuleSlotTracker &MST, yaml::MachineJumpTable &YamlJTI, const MachineJumpTableInfo &JTI) |
void | convertStackObjects (yaml::MachineFunction &YMF, const MachineFunction &MF, ModuleSlotTracker &MST) |
void | convertEntryValueObjects (yaml::MachineFunction &YMF, const MachineFunction &MF, ModuleSlotTracker &MST) |
void | convertCallSiteObjects (yaml::MachineFunction &YMF, const MachineFunction &MF, ModuleSlotTracker &MST) |
void | convertMachineMetadataNodes (yaml::MachineFunction &YMF, const MachineFunction &MF, MachineModuleSlotTracker &MST) |
This class prints out the machine functions using the MIR serialization format.
Definition at line 102 of file MIRPrinter.cpp.
|
inline |
Definition at line 111 of file MIRPrinter.cpp.
References OS.
void MIRPrinter::convert | ( | ModuleSlotTracker & | MST, |
yaml::MachineFrameInfo & | YamlMFI, | ||
const MachineFrameInfo & | MFI | ||
) |
Definition at line 353 of file MIRPrinter.cpp.
References llvm::MachineFrameInfo::adjustsStack(), llvm::yaml::MachineFrameInfo::AdjustsStack, llvm::yaml::MachineFrameInfo::CVBytesOfCalleeSavedRegisters, llvm::MachineFrameInfo::getCVBytesOfCalleeSavedRegisters(), llvm::MachineFrameInfo::getLocalFrameSize(), llvm::MachineFrameInfo::getMaxAlign(), llvm::MachineFrameInfo::getMaxCallFrameSize(), llvm::MachineFrameInfo::getOffsetAdjustment(), llvm::MachineFrameInfo::getRestorePoint(), llvm::MachineFrameInfo::getSavePoint(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineFrameInfo::hasCalls(), llvm::yaml::MachineFrameInfo::HasCalls, llvm::MachineFrameInfo::hasMustTailInVarArgFunc(), llvm::yaml::MachineFrameInfo::HasMustTailInVarArgFunc, llvm::MachineFrameInfo::hasOpaqueSPAdjustment(), llvm::yaml::MachineFrameInfo::HasOpaqueSPAdjustment, llvm::MachineFrameInfo::hasPatchPoint(), llvm::yaml::MachineFrameInfo::HasPatchPoint, llvm::MachineFrameInfo::hasStackMap(), llvm::yaml::MachineFrameInfo::HasStackMap, llvm::MachineFrameInfo::hasTailCall(), llvm::yaml::MachineFrameInfo::HasTailCall, llvm::MachineFrameInfo::hasVAStart(), llvm::yaml::MachineFrameInfo::HasVAStart, llvm::MachineFrameInfo::isCalleeSavedInfoValid(), llvm::yaml::MachineFrameInfo::IsCalleeSavedInfoValid, llvm::MachineFrameInfo::isFrameAddressTaken(), llvm::yaml::MachineFrameInfo::IsFrameAddressTaken, llvm::MachineFrameInfo::isMaxCallFrameSizeComputed(), llvm::MachineFrameInfo::isReturnAddressTaken(), llvm::yaml::MachineFrameInfo::IsReturnAddressTaken, llvm::yaml::MachineFrameInfo::LocalFrameSize, llvm::yaml::MachineFrameInfo::MaxAlignment, llvm::yaml::MachineFrameInfo::MaxCallFrameSize, llvm::yaml::MachineFrameInfo::OffsetAdjustment, llvm::printMBBReference(), llvm::yaml::MachineFrameInfo::RestorePoint, llvm::yaml::MachineFrameInfo::SavePoint, llvm::yaml::MachineFrameInfo::StackSize, llvm::yaml::StringValue::Value, and llvm::Align::value().
void MIRPrinter::convert | ( | ModuleSlotTracker & | MST, |
yaml::MachineJumpTable & | YamlJTI, | ||
const MachineJumpTableInfo & | JTI | ||
) |
Definition at line 601 of file MIRPrinter.cpp.
References llvm::yaml::MachineJumpTable::Entries, llvm::MachineJumpTableInfo::getEntryKind(), llvm::MachineJumpTableInfo::getJumpTables(), llvm::yaml::MachineJumpTable::Kind, MBB, and llvm::printMBBReference().
void MIRPrinter::convert | ( | yaml::MachineFunction & | MF, |
const MachineConstantPool & | ConstantPool | ||
) |
Definition at line 579 of file MIRPrinter.cpp.
References llvm::yaml::MachineConstantPoolValue::Alignment, llvm::yaml::MachineFunction::Constants, llvm::yaml::MachineConstantPoolValue::ID, llvm::yaml::MachineConstantPoolValue::IsTargetSpecific, llvm::Value::print(), llvm::Value::printAsOperand(), and llvm::yaml::MachineConstantPoolValue::Value.
void MIRPrinter::convert | ( | yaml::MachineFunction & | MF, |
const MachineRegisterInfo & | RegInfo, | ||
const TargetRegisterInfo * | TRI | ||
) |
Definition at line 312 of file MIRPrinter.cpp.
References llvm::yaml::MachineFunction::CalleeSavedRegisters, llvm::yaml::VirtualRegisterDefinition::Class, llvm::MachineRegisterInfo::getCalleeSavedRegs(), llvm::MachineRegisterInfo::getNumVirtRegs(), llvm::MachineRegisterInfo::getSimpleHint(), llvm::MachineRegisterInfo::getVRegName(), I, llvm::yaml::VirtualRegisterDefinition::ID, llvm::Register::index2VirtReg(), llvm::MachineRegisterInfo::isUpdatedCSRsInitialized(), llvm::MachineRegisterInfo::liveins(), llvm::yaml::MachineFunction::LiveIns, llvm::yaml::VirtualRegisterDefinition::PreferredRegister, llvm::printRegClassOrBank(), printRegMIR(), llvm::yaml::MachineFunctionLiveIn::Register, llvm::MachineRegisterInfo::tracksLiveness(), llvm::yaml::MachineFunction::TracksRegLiveness, TRI, llvm::yaml::MachineFunctionLiveIn::VirtualRegister, and llvm::yaml::MachineFunction::VirtualRegisters.
void MIRPrinter::convertCallSiteObjects | ( | yaml::MachineFunction & | YMF, |
const MachineFunction & | MF, | ||
ModuleSlotTracker & | MST | ||
) |
Definition at line 532 of file MIRPrinter.cpp.
References A, llvm::yaml::CallSiteInfo::ArgForwardingRegs, llvm::yaml::CallSiteInfo::ArgRegPair::ArgNo, B, llvm::yaml::CallSiteInfo::MachineInstrLoc::BlockNum, llvm::yaml::CallSiteInfo::CallLocation, llvm::yaml::MachineFunction::CallSitesInfo, llvm::MachineFunction::getCallSitesInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::yaml::CallSiteInfo::MachineInstrLoc::Offset, printRegMIR(), llvm::yaml::CallSiteInfo::ArgRegPair::Reg, llvm::sort(), and TRI.
Referenced by print().
void MIRPrinter::convertEntryValueObjects | ( | yaml::MachineFunction & | YMF, |
const MachineFunction & | MF, | ||
ModuleSlotTracker & | MST | ||
) |
Definition at line 385 of file MIRPrinter.cpp.
References llvm::yaml::MachineFunction::EntryValueObjects, llvm::yaml::EntryValueObject::EntryValueRegister, llvm::MachineFunction::getEntryValueVariableDbgInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), printRegMIR(), printStackObjectDbgInfo(), and TRI.
Referenced by print().
void MIRPrinter::convertMachineMetadataNodes | ( | yaml::MachineFunction & | YMF, |
const MachineFunction & | MF, | ||
MachineModuleSlotTracker & | MST | ||
) |
Definition at line 566 of file MIRPrinter.cpp.
References llvm::MachineModuleSlotTracker::collectMachineMDNodes(), llvm::MachineFunction::getFunction(), llvm::GlobalValue::getParent(), and llvm::yaml::MachineFunction::MachineMetadataNodes.
Referenced by print().
void MIRPrinter::convertStackObjects | ( | yaml::MachineFunction & | YMF, |
const MachineFunction & | MF, | ||
ModuleSlotTracker & | MST | ||
) |
Definition at line 398 of file MIRPrinter.cpp.
References llvm::yaml::MachineStackObject::Alignment, llvm::yaml::FixedMachineStackObject::Alignment, assert(), llvm::yaml::MachineStackObject::DefaultType, llvm::yaml::FixedMachineStackObject::DefaultType, llvm::yaml::MachineFunction::FixedStackObjects, llvm::yaml::MachineFunction::FrameInfo, llvm::yaml::MachineFrameInfo::FunctionContext, llvm::MachineFrameInfo::getCalleeSavedInfo(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getFunctionContextIndex(), llvm::MachineFunction::getInStackSlotVariableDbgInfo(), llvm::MachineFrameInfo::getLocalFrameObjectCount(), llvm::MachineFrameInfo::getLocalFrameObjectMap(), llvm::MachineFrameInfo::getNumFixedObjects(), llvm::MachineFrameInfo::getObjectAlign(), llvm::MachineFrameInfo::getObjectAllocation(), llvm::MachineFrameInfo::getObjectIndexBegin(), llvm::MachineFrameInfo::getObjectIndexEnd(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineFrameInfo::getObjectSize(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFrameInfo::getStackID(), llvm::MachineFrameInfo::getStackProtectorIndex(), llvm::MachineFunction::getSubtarget(), llvm::MachineFrameInfo::hasFunctionContextIndex(), llvm::MachineFrameInfo::hasStackProtectorIndex(), I, llvm::yaml::MachineStackObject::ID, llvm::yaml::FixedMachineStackObject::ID, Idx, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::insert(), llvm::yaml::FixedMachineStackObject::IsAliased, llvm::MachineFrameInfo::isAliasedObjectIndex(), llvm::MachineFrameInfo::isDeadObjectIndex(), llvm::yaml::FixedMachineStackObject::IsImmutable, llvm::MachineFrameInfo::isImmutableObjectIndex(), llvm::MachineFrameInfo::isSpillSlotObjectIndex(), llvm::MachineFrameInfo::isVariableSizedObjectIndex(), llvm::yaml::MachineStackObject::Name, llvm::yaml::MachineStackObject::Offset, llvm::yaml::FixedMachineStackObject::Offset, printRegMIR(), printStackObjectDbgInfo(), llvm::MIPrinter::printStackObjectReference(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::yaml::MachineStackObject::Size, llvm::yaml::FixedMachineStackObject::Size, llvm::yaml::MachineStackObject::SpillSlot, llvm::yaml::FixedMachineStackObject::SpillSlot, llvm::yaml::MachineStackObject::StackID, llvm::yaml::FixedMachineStackObject::StackID, llvm::yaml::MachineFunction::StackObjects, llvm::yaml::MachineFrameInfo::StackProtector, TRI, llvm::yaml::MachineStackObject::Type, llvm::yaml::FixedMachineStackObject::Type, llvm::yaml::StringValue::Value, and llvm::yaml::MachineStackObject::VariableSized.
Referenced by print().
void MIRPrinter::print | ( | const MachineFunction & | MF | ) |
Definition at line 196 of file MIRPrinter.cpp.
References llvm::yaml::MachineFunction::Alignment, llvm::yaml::MachineFunction::Body, llvm::MachineFunction::callsEHReturn(), llvm::yaml::MachineFunction::CallsEHReturn, llvm::MachineFunction::callsUnwindInit(), llvm::yaml::MachineFunction::CallsUnwindInit, convert, convertCallSiteObjects(), convertEntryValueObjects(), convertMachineMetadataNodes(), convertStackObjects(), llvm::MachineFunction::DebugValueSubstitutions, llvm::yaml::MachineFunction::DebugValueSubstitutions, llvm::MachineFunction::exposesReturnsTwice(), llvm::yaml::MachineFunction::ExposesReturnsTwice, llvm::MachineFunctionProperties::FailedISel, llvm::yaml::MachineFunction::FailedISel, llvm::MachineFunctionProperties::FailsVerification, llvm::yaml::MachineFunction::FailsVerification, llvm::raw_ostream::flush(), llvm::yaml::MachineFunction::FrameInfo, llvm::MachineFunction::getAlignment(), llvm::MachineFunction::getConstantPool(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getJumpTableInfo(), llvm::MachineFunction::getName(), llvm::MachineFunction::getProperties(), llvm::MachineFunction::getRegInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::MachineFunction::hasEHCatchret(), llvm::yaml::MachineFunction::HasEHCatchret, llvm::MachineFunction::hasEHFunclets(), llvm::yaml::MachineFunction::HasEHFunclets, llvm::MachineFunction::hasEHScopes(), llvm::yaml::MachineFunction::HasEHScopes, llvm::MachineFunctionProperties::hasProperty(), llvm::MachineFunction::hasWinCFI(), llvm::yaml::MachineFunction::HasWinCFI, llvm::ModuleSlotTracker::incorporateFunction(), llvm::MachineFunction::isOutlined(), llvm::yaml::MachineFunction::IsOutlined, llvm::yaml::MachineFunction::JumpTableInfo, llvm::MachineFunctionProperties::Legalized, llvm::yaml::MachineFunction::Legalized, llvm::yaml::MachineFunction::MachineFuncInfo, MBB, llvm::yaml::MachineFunction::Name, llvm::MIPrinter::print(), llvm::MachineFunctionProperties::RegBankSelected, llvm::yaml::MachineFunction::RegBankSelected, llvm::MachineFunctionProperties::Selected, llvm::yaml::MachineFunction::Selected, SimplifyMIR, llvm::MachineFunctionProperties::TracksDebugUserValues, llvm::yaml::MachineFunction::TracksDebugUserValues, llvm::MachineFunction::useDebugInstrRef(), llvm::yaml::MachineFunction::UseDebugInstrRef, llvm::yaml::StringValue::Value, and llvm::yaml::BlockStringValue::Value.