[DataLayout] Change return type of `getStackAlignment` to `MaybeAlign` (#105478)
Currently, `getStackAlignment` asserts if the stack alignment wasn't
specified. This makes it inconvenient to use and complicates testing.
This change also makes `exceedsNaturalStackAlignment` method redundant.
diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
index 3fece81..f818c4e 100644
--- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
@@ -9136,8 +9136,8 @@
// realignment.
const TargetRegisterInfo *TRI = MF.getSubtarget().getRegisterInfo();
if (!TRI->hasStackRealignment(MF))
- while (NewAlign > Alignment && DL.exceedsNaturalStackAlignment(NewAlign))
- NewAlign = NewAlign.previous();
+ if (MaybeAlign StackAlign = DL.getStackAlignment())
+ NewAlign = std::min(NewAlign, *StackAlign);
if (NewAlign > Alignment) {
Alignment = NewAlign;
@@ -9244,8 +9244,8 @@
// realignment.
const TargetRegisterInfo *TRI = MF.getSubtarget().getRegisterInfo();
if (!TRI->hasStackRealignment(MF))
- while (NewAlign > Alignment && DL.exceedsNaturalStackAlignment(NewAlign))
- NewAlign = NewAlign.previous();
+ if (MaybeAlign StackAlign = DL.getStackAlignment())
+ NewAlign = std::min(NewAlign, *StackAlign);
if (NewAlign > Alignment) {
Alignment = NewAlign;