================
@@ -4663,6 +4664,20 @@ LegalizerHelper::createStackTemporary(TypeSize Bytes, 
Align Alignment,
   return MIRBuilder.buildFrameIndex(FramePtrTy, FrameIdx);
 }
 
+MachineInstrBuilder LegalizerHelper::createStackStoreLoad(Register Val,
+                                                          LLT DstTy) {
+  LLT SrcTy = MRI.getType(Val);
+  Align StackTypeAlign = getStackTemporaryAlignment(SrcTy);
+  MachinePointerInfo PtrInfo;
+  auto StackTemp =
+      createStackTemporary(SrcTy.getSizeInBytes(), StackTypeAlign, PtrInfo);
+
+  MIRBuilder.buildStore(Val, StackTemp, PtrInfo, StackTypeAlign);
+  return MIRBuilder.buildLoad(
+      DstTy, StackTemp, PtrInfo,
+      std::min(StackTypeAlign, getStackTemporaryAlignment(DstTy)));
----------------
arsenm wrote:

Can just directly use the maximum alignment you should have computed above 

https://github.com/llvm/llvm-project/pull/121171
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to