[llvm] 3866e0a - GlobalISel: Fail expansion of G_DYN_STACKALLOC for StackGrowsUp
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 3 16:56:15 PDT 2020
Author: Matt Arsenault
Date: 2020-06-03T19:56:07-04:00
New Revision: 3866e0a563ebfd622a0041d107f8d402097db0c1
URL: https://github.com/llvm/llvm-project/commit/3866e0a563ebfd622a0041d107f8d402097db0c1
DIFF: https://github.com/llvm/llvm-project/commit/3866e0a563ebfd622a0041d107f8d402097db0c1.diff
LOG: GlobalISel: Fail expansion of G_DYN_STACKALLOC for StackGrowsUp
Added:
Modified:
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
index 189c645ad9f4..6d39b1fd854c 100644
--- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
@@ -5029,16 +5029,19 @@ LegalizerHelper::lowerShuffleVector(MachineInstr &MI) {
LegalizerHelper::LegalizeResult
LegalizerHelper::lowerDynStackAlloc(MachineInstr &MI) {
+ const auto &MF = *MI.getMF();
+ const auto &TFI = *MF.getSubtarget().getFrameLowering();
+ if (TFI.getStackGrowthDirection() == TargetFrameLowering::StackGrowsUp)
+ return UnableToLegalize;
+
Register Dst = MI.getOperand(0).getReg();
Register AllocSize = MI.getOperand(1).getReg();
Align Alignment = assumeAligned(MI.getOperand(2).getImm());
- const auto &MF = *MI.getMF();
- const auto &TLI = *MF.getSubtarget().getTargetLowering();
-
LLT PtrTy = MRI.getType(Dst);
LLT IntPtrTy = LLT::scalar(PtrTy.getSizeInBits());
+ const auto &TLI = *MF.getSubtarget().getTargetLowering();
Register SPReg = TLI.getStackPointerRegisterToSaveRestore();
auto SPTmp = MIRBuilder.buildCopy(PtrTy, SPReg);
SPTmp = MIRBuilder.buildCast(IntPtrTy, SPTmp);
More information about the llvm-commits
mailing list