diff options
Diffstat (limited to 'lib/Target')
| -rw-r--r-- | lib/Target/AMDGPU/AMDGPU.h | 2 | ||||
| -rw-r--r-- | lib/Target/X86/X86FrameLowering.cpp | 13 | ||||
| -rw-r--r-- | lib/Target/X86/X86ISelLowering.cpp | 2 | 
3 files changed, 9 insertions, 8 deletions
| diff --git a/lib/Target/AMDGPU/AMDGPU.h b/lib/Target/AMDGPU/AMDGPU.h index 5d00e1cb3be5..4f718e1ca310 100644 --- a/lib/Target/AMDGPU/AMDGPU.h +++ b/lib/Target/AMDGPU/AMDGPU.h @@ -20,7 +20,7 @@ class AMDGPUInstrPrinter;  class AMDGPUSubtarget;  class AMDGPUTargetMachine;  class FunctionPass; -class MachineSchedContext; +struct MachineSchedContext;  class MCAsmInfo;  class raw_ostream;  class ScheduleDAGInstrs; diff --git a/lib/Target/X86/X86FrameLowering.cpp b/lib/Target/X86/X86FrameLowering.cpp index 8b5fd27b4775..8632bb8254f9 100644 --- a/lib/Target/X86/X86FrameLowering.cpp +++ b/lib/Target/X86/X86FrameLowering.cpp @@ -91,7 +91,8 @@ bool X86FrameLowering::hasFP(const MachineFunction &MF) const {            MFI->isFrameAddressTaken() || MFI->hasOpaqueSPAdjustment() ||            MF.getInfo<X86MachineFunctionInfo>()->getForceFramePointer() ||            MMI.callsUnwindInit() || MMI.hasEHFunclets() || MMI.callsEHReturn() || -          MFI->hasStackMap() || MFI->hasPatchPoint()); +          MFI->hasStackMap() || MFI->hasPatchPoint() || +          MFI->hasCopyImplyingStackAdjustment());  }  static unsigned getSUBriOpcode(unsigned IsLP64, int64_t Imm) { @@ -943,11 +944,11 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF,    // push and pop from the stack.    if (Is64Bit && !Fn->hasFnAttribute(Attribute::NoRedZone) &&        !TRI->needsStackRealignment(MF) && -      !MFI->hasVarSizedObjects() &&    // No dynamic alloca. -      !MFI->adjustsStack() &&          // No calls. -      !IsWin64CC &&                    // Win64 has no Red Zone -      !MFI->hasOpaqueSPAdjustment() && // Don't push and pop. -      !MF.shouldSplitStack()) {        // Regular stack +      !MFI->hasVarSizedObjects() &&             // No dynamic alloca. +      !MFI->adjustsStack() &&                   // No calls. +      !IsWin64CC &&                             // Win64 has no Red Zone +      !MFI->hasCopyImplyingStackAdjustment() && // Don't push and pop. +      !MF.shouldSplitStack()) {                 // Regular stack      uint64_t MinSize = X86FI->getCalleeSavedFrameSize();      if (HasFP) MinSize += SlotSize;      StackSize = std::max(MinSize, StackSize > 128 ? StackSize - 128 : 0); diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 1ec93b5f2d23..b723059f091d 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -17458,7 +17458,7 @@ static SDValue LowerINTRINSIC_W_CHAIN(SDValue Op, const X86Subtarget *Subtarget,        // We need a frame pointer because this will get lowered to a PUSH/POP        // sequence.        MachineFrameInfo *MFI = DAG.getMachineFunction().getFrameInfo(); -      MFI->setHasOpaqueSPAdjustment(true); +      MFI->setHasCopyImplyingStackAdjustment(true);        // Don't do anything here, we will expand these intrinsics out later        // during ExpandISelPseudos in EmitInstrWithCustomInserter.        return SDValue(); | 
