mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
[CodeGen] Allow printing MachineMemOperands with less context in SDAGDumper
Don't assume SelectionDAG is non-null as the targets can use it with a null pointer. Differential Revision: https://reviews.llvm.org/D44611 llvm-svn: 329908
This commit is contained in:
parent
2c966d209b
commit
1a07c4b8f7
@ -425,15 +425,28 @@ static Printable PrintNodeId(const SDNode &Node) {
|
||||
|
||||
// Print the MMO with more information from the SelectionDAG.
|
||||
static void printMemOperand(raw_ostream &OS, const MachineMemOperand &MMO,
|
||||
const SelectionDAG *G) {
|
||||
const MachineFunction &MF = G->getMachineFunction();
|
||||
const Function &F = MF.getFunction();
|
||||
const MachineFrameInfo &MFI = MF.getFrameInfo();
|
||||
const TargetInstrInfo *TII = G->getSubtarget().getInstrInfo();
|
||||
ModuleSlotTracker MST(F.getParent());
|
||||
MST.incorporateFunction(F);
|
||||
const MachineFunction *MF, const Module *M,
|
||||
const MachineFrameInfo *MFI,
|
||||
const TargetInstrInfo *TII, LLVMContext &Ctx) {
|
||||
ModuleSlotTracker MST(M);
|
||||
if (MF)
|
||||
MST.incorporateFunction(MF->getFunction());
|
||||
SmallVector<StringRef, 0> SSNs;
|
||||
MMO.print(OS, MST, SSNs, *G->getContext(), &MFI, TII);
|
||||
MMO.print(OS, MST, SSNs, Ctx, MFI, TII);
|
||||
}
|
||||
|
||||
static void printMemOperand(raw_ostream &OS, const MachineMemOperand &MMO,
|
||||
const SelectionDAG *G) {
|
||||
if (G) {
|
||||
const MachineFunction *MF = &G->getMachineFunction();
|
||||
return printMemOperand(OS, MMO, MF, MF->getFunction().getParent(),
|
||||
&MF->getFrameInfo(), G->getSubtarget().getInstrInfo(),
|
||||
*G->getContext());
|
||||
} else {
|
||||
LLVMContext Ctx;
|
||||
return printMemOperand(OS, MMO, /*MF=*/nullptr, /*M=*/nullptr,
|
||||
/*MFI=*/nullptr, /*TII=*/nullptr, Ctx);
|
||||
}
|
||||
}
|
||||
|
||||
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||
|
Loading…
Reference in New Issue
Block a user