diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp index 0fa956e0972..010dfa0a793 100644 --- a/lib/CodeGen/DwarfWriter.cpp +++ b/lib/CodeGen/DwarfWriter.cpp @@ -3415,7 +3415,7 @@ public: void BeginFunction(MachineFunction *MF) { this->MF = MF; shouldEmitTable = shouldEmitMoves = false; - if (TAI->doesSupportExceptionHandling()) { + if (MMI && TAI->doesSupportExceptionHandling()) { // Map all labels and get rid of any dead landing pads. MMI->TidyLandingPads(); diff --git a/lib/Target/PowerPC/PPCRegisterInfo.cpp b/lib/Target/PowerPC/PPCRegisterInfo.cpp index 3bafccde8de..8ef8b3fafa6 100644 --- a/lib/Target/PowerPC/PPCRegisterInfo.cpp +++ b/lib/Target/PowerPC/PPCRegisterInfo.cpp @@ -947,7 +947,7 @@ PPCRegisterInfo::emitPrologue(MachineFunction &MF) const { MachineBasicBlock::iterator MBBI = MBB.begin(); MachineFrameInfo *MFI = MF.getFrameInfo(); MachineModuleInfo *MMI = MFI->getMachineModuleInfo(); - bool needsFrameInfo = (MMI && MMI->hasDebugInfo()) || + bool needsFrameMoves = (MMI && MMI->hasDebugInfo()) || !MF.getFunction()->doesNotThrow(); // Prepare for frame info. @@ -1022,7 +1022,7 @@ PPCRegisterInfo::emitPrologue(MachineFunction &MF) const { unsigned TargetAlign = MF.getTarget().getFrameInfo()->getStackAlignment(); unsigned MaxAlign = MFI->getMaxAlignment(); - if (needsFrameInfo) { + if (needsFrameMoves) { // Mark effective beginning of when frame pointer becomes valid. FrameLabelId = MMI->NextLabelID(); BuildMI(MBB, MBBI, TII.get(PPC::LABEL)).addImm(FrameLabelId).addImm(0); @@ -1098,7 +1098,7 @@ PPCRegisterInfo::emitPrologue(MachineFunction &MF) const { } } - if (needsFrameInfo) { + if (needsFrameMoves) { std::vector &Moves = MMI->getFrameMoves(); if (NegFrameSize) { diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 6c3484ecfff..0a755605d49 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -504,7 +504,7 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { MachineModuleInfo *MMI = MFI->getMachineModuleInfo(); X86MachineFunctionInfo *X86FI = MF.getInfo(); MachineBasicBlock::iterator MBBI = MBB.begin(); - bool needsFrameInfo = (MMI && MMI->hasDebugInfo()) || !Fn->doesNotThrow(); + bool needsFrameMoves = (MMI && MMI->hasDebugInfo()) || !Fn->doesNotThrow(); // Prepare for frame info. unsigned FrameLabelId = 0; @@ -537,7 +537,7 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { .addReg(FramePtr); NumBytes -= SlotSize; - if (needsFrameInfo) { + if (needsFrameMoves) { // Mark effective beginning of when frame pointer becomes valid. FrameLabelId = MMI->NextLabelID(); BuildMI(MBB, MBBI, TII.get(X86::LABEL)).addImm(FrameLabelId).addImm(0); @@ -549,7 +549,7 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { } unsigned ReadyLabelId = 0; - if (needsFrameInfo) { + if (needsFrameMoves) { // Mark effective beginning of when frame pointer is ready. ReadyLabelId = MMI->NextLabelID(); BuildMI(MBB, MBBI, TII.get(X86::LABEL)).addImm(ReadyLabelId).addImm(0); @@ -608,7 +608,7 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { } } - if (needsFrameInfo) { + if (needsFrameMoves) { std::vector &Moves = MMI->getFrameMoves(); const TargetData *TD = MF.getTarget().getTargetData();