[llvm] r375084 - [Alignment][NFC] Use Align for TargetFrameLowering/Subtarget

Galina Kistanova via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 18 14:51:52 PDT 2019


Hello Guillaume,

It looks like this commit broke few tests to the builder:
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win

. . .
Failing Tests (3):
    LLVM :: CodeGen/AMDGPU/GlobalISel/inst-select-fabs.mir
    LLVM :: CodeGen/AMDGPU/GlobalISel/inst-select-fneg.mir
    LLVM :: ExecutionEngine/JITLink/X86/MachO_zero_fill_alignment.s

Please have a look?

Thanks

Galina

On Thu, Oct 17, 2019 at 12:47 AM Guillaume Chatelet via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: gchatelet
> Date: Thu Oct 17 00:49:39 2019
> New Revision: 375084
>
> URL: http://llvm.org/viewvc/llvm-project?rev=375084&view=rev
> Log:
> [Alignment][NFC] Use Align for TargetFrameLowering/Subtarget
>
> Summary:
> This is patch is part of a series to introduce an Alignment type.
> See this thread for context:
> http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
> See this patch for the introduction of the type:
> https://reviews.llvm.org/D64790
>
> Reviewers: courbet
>
> Subscribers: jholewinski, arsenm, dschuff, jyknight, dylanmckay, sdardis,
> nemanjai, jvesely, nhaehnle, sbc100, jgravelle-google, hiraditya, aheejin,
> kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, apazos, sabuasal,
> niosHD, jrtc27, MaskRay, zzheng, edward-jones, atanasyan, rogfer01,
> MartinMosbeck, brucehoult, the_o, PkmX, jocewei, jsji, Jim, lenary,
> s.egerton, pzheng, llvm-commits
>
> Tags: #llvm
>
> Differential Revision: https://reviews.llvm.org/D68993
>
> Modified:
>     llvm/trunk/include/llvm/CodeGen/TargetFrameLowering.h
>     llvm/trunk/lib/Target/AArch64/AArch64FrameLowering.h
>     llvm/trunk/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp
>     llvm/trunk/lib/Target/AMDGPU/AMDGPUFrameLowering.h
>     llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h
>     llvm/trunk/lib/Target/AMDGPU/R600FrameLowering.h
>     llvm/trunk/lib/Target/AMDGPU/SIFrameLowering.h
>     llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp
>     llvm/trunk/lib/Target/ARC/ARCFrameLowering.h
>     llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp
>     llvm/trunk/lib/Target/ARM/ARMSubtarget.h
>     llvm/trunk/lib/Target/AVR/AVRFrameLowering.cpp
>     llvm/trunk/lib/Target/BPF/BPFFrameLowering.h
>     llvm/trunk/lib/Target/Hexagon/HexagonFrameLowering.h
>     llvm/trunk/lib/Target/Lanai/LanaiFrameLowering.h
>     llvm/trunk/lib/Target/MSP430/MSP430FrameLowering.h
>     llvm/trunk/lib/Target/Mips/MipsAsmPrinter.cpp
>     llvm/trunk/lib/Target/Mips/MipsFrameLowering.h
>     llvm/trunk/lib/Target/Mips/MipsSubtarget.cpp
>     llvm/trunk/lib/Target/Mips/MipsSubtarget.h
>     llvm/trunk/lib/Target/Mips/MipsTargetMachine.cpp
>     llvm/trunk/lib/Target/NVPTX/NVPTXFrameLowering.cpp
>     llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp
>     llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h
>     llvm/trunk/lib/Target/RISCV/RISCVFrameLowering.h
>     llvm/trunk/lib/Target/Sparc/SparcFrameLowering.cpp
>     llvm/trunk/lib/Target/SystemZ/SystemZFrameLowering.cpp
>     llvm/trunk/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
>     llvm/trunk/lib/Target/X86/X86FrameLowering.cpp
>     llvm/trunk/lib/Target/X86/X86FrameLowering.h
>     llvm/trunk/lib/Target/X86/X86Subtarget.cpp
>     llvm/trunk/lib/Target/X86/X86Subtarget.h
>     llvm/trunk/lib/Target/X86/X86TargetMachine.cpp
>     llvm/trunk/lib/Target/XCore/XCoreFrameLowering.cpp
>     llvm/trunk/unittests/CodeGen/MachineInstrTest.cpp
>
> Modified: llvm/trunk/include/llvm/CodeGen/TargetFrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/TargetFrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/TargetFrameLowering.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/TargetFrameLowering.h Thu Oct 17
> 00:49:39 2019
> @@ -54,15 +54,15 @@ public:
>    };
>  private:
>    StackDirection StackDir;
> -  unsigned StackAlignment;
> +  Align StackAlignment;
>    unsigned TransientStackAlignment;
>    int LocalAreaOffset;
>    bool StackRealignable;
>  public:
> -  TargetFrameLowering(StackDirection D, unsigned StackAl, int LAO,
> +  TargetFrameLowering(StackDirection D, Align StackAl, int LAO,
>                        unsigned TransAl = 1, bool StackReal = true)
> -    : StackDir(D), StackAlignment(StackAl),
> TransientStackAlignment(TransAl),
> -      LocalAreaOffset(LAO), StackRealignable(StackReal) {}
> +      : StackDir(D), StackAlignment(StackAl),
> TransientStackAlignment(TransAl),
> +        LocalAreaOffset(LAO), StackRealignable(StackReal) {}
>
>    virtual ~TargetFrameLowering();
>
> @@ -77,7 +77,7 @@ public:
>    /// stack pointer must be aligned on entry to a function.  Typically,
> this
>    /// is the largest alignment for any data object in the target.
>    ///
> -  unsigned getStackAlignment() const { return StackAlignment; }
> +  unsigned getStackAlignment() const { return StackAlignment.value(); }
>
>    /// alignSPAdjust - This method aligns the stack adjustment to the
> correct
>    /// alignment.
>
> Modified: llvm/trunk/lib/Target/AArch64/AArch64FrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64FrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64FrameLowering.h (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64FrameLowering.h Thu Oct 17
> 00:49:39 2019
> @@ -21,7 +21,7 @@ namespace llvm {
>  class AArch64FrameLowering : public TargetFrameLowering {
>  public:
>    explicit AArch64FrameLowering()
> -      : TargetFrameLowering(StackGrowsDown, 16, 0, 16,
> +      : TargetFrameLowering(StackGrowsDown, Align(16), 0, 16,
>                              true /*StackRealignable*/) {}
>
>    void emitCalleeSavedFrameMoves(MachineBasicBlock &MBB,
>
> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp (original)
> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp Thu Oct 17
> 00:49:39 2019
> @@ -13,9 +13,9 @@
>  #include "AMDGPUFrameLowering.h"
>
>  using namespace llvm;
> -AMDGPUFrameLowering::AMDGPUFrameLowering(StackDirection D, unsigned
> StackAl,
> -    int LAO, unsigned TransAl)
> -  : TargetFrameLowering(D, StackAl, LAO, TransAl) { }
> +AMDGPUFrameLowering::AMDGPUFrameLowering(StackDirection D, Align StackAl,
> +                                         int LAO, unsigned TransAl)
> +    : TargetFrameLowering(D, StackAl, LAO, TransAl) {}
>
>  AMDGPUFrameLowering::~AMDGPUFrameLowering() = default;
>
>
> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUFrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUFrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/AMDGPUFrameLowering.h (original)
> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUFrameLowering.h Thu Oct 17 00:49:39
> 2019
> @@ -25,7 +25,7 @@ namespace llvm {
>  /// See TargetFrameInfo for more comments.
>  class AMDGPUFrameLowering : public TargetFrameLowering {
>  public:
> -  AMDGPUFrameLowering(StackDirection D, unsigned StackAl, int LAO,
> +  AMDGPUFrameLowering(StackDirection D, Align StackAl, int LAO,
>                        unsigned TransAl = 1);
>    ~AMDGPUFrameLowering() override;
>
>
> Modified: llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h (original)
> +++ llvm/trunk/lib/Target/AMDGPU/AMDGPUSubtarget.h Thu Oct 17 00:49:39 2019
> @@ -866,9 +866,7 @@ public:
>    // on the pointer value itself may rely on the alignment / known low
> bits of
>    // the pointer. Set this to something above the minimum to avoid needing
>    // dynamic realignment in common cases.
> -  unsigned getStackAlignment() const {
> -    return 16;
> -  }
> +  Align getStackAlignment() const { return Align(16); }
>
>    bool enableMachineScheduler() const override {
>      return true;
> @@ -1257,9 +1255,7 @@ public:
>      return Gen;
>    }
>
> -  unsigned getStackAlignment() const {
> -    return 4;
> -  }
> +  Align getStackAlignment() const { return Align(4); }
>
>    R600Subtarget &initializeSubtargetDependencies(const Triple &TT,
>                                                   StringRef GPU, StringRef
> FS);
>
> Modified: llvm/trunk/lib/Target/AMDGPU/R600FrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/R600FrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/R600FrameLowering.h (original)
> +++ llvm/trunk/lib/Target/AMDGPU/R600FrameLowering.h Thu Oct 17 00:49:39
> 2019
> @@ -15,9 +15,9 @@ namespace llvm {
>
>  class R600FrameLowering : public AMDGPUFrameLowering {
>  public:
> -  R600FrameLowering(StackDirection D, unsigned StackAl, int LAO,
> -                    unsigned TransAl = 1) :
> -    AMDGPUFrameLowering(D, StackAl, LAO, TransAl) {}
> +  R600FrameLowering(StackDirection D, Align StackAl, int LAO,
> +                    unsigned TransAl = 1)
> +      : AMDGPUFrameLowering(D, StackAl, LAO, TransAl) {}
>    ~R600FrameLowering() override;
>
>    void emitPrologue(MachineFunction &MF,
>
> Modified: llvm/trunk/lib/Target/AMDGPU/SIFrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIFrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/SIFrameLowering.h (original)
> +++ llvm/trunk/lib/Target/AMDGPU/SIFrameLowering.h Thu Oct 17 00:49:39 2019
> @@ -20,9 +20,9 @@ class GCNSubtarget;
>
>  class SIFrameLowering final : public AMDGPUFrameLowering {
>  public:
> -  SIFrameLowering(StackDirection D, unsigned StackAl, int LAO,
> -                  unsigned TransAl = 1) :
> -    AMDGPUFrameLowering(D, StackAl, LAO, TransAl) {}
> +  SIFrameLowering(StackDirection D, Align StackAl, int LAO,
> +                  unsigned TransAl = 1)
> +      : AMDGPUFrameLowering(D, StackAl, LAO, TransAl) {}
>    ~SIFrameLowering() override = default;
>
>    void emitEntryFunctionPrologue(MachineFunction &MF,
>
> Modified: llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp (original)
> +++ llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp Thu Oct 17 00:49:39
> 2019
> @@ -2816,7 +2816,7 @@ SDValue SITargetLowering::LowerCall(Call
>        int32_t Offset = LocMemOffset;
>
>        SDValue PtrOff = DAG.getConstant(Offset, DL, PtrVT);
> -      unsigned Align = 0;
> +      MaybeAlign Alignment;
>
>        if (IsTailCall) {
>          ISD::ArgFlagsTy Flags = Outs[realArgIdx].Flags;
> @@ -2824,8 +2824,10 @@ SDValue SITargetLowering::LowerCall(Call
>            Flags.getByValSize() : VA.getValVT().getStoreSize();
>
>          // FIXME: We can have better than the minimum byval required
> alignment.
> -        Align = Flags.isByVal() ? Flags.getByValAlign() :
> -          MinAlign(Subtarget->getStackAlignment(), Offset);
> +        Alignment =
> +            Flags.isByVal()
> +                ? MaybeAlign(Flags.getByValAlign())
> +                : commonAlignment(Subtarget->getStackAlignment(), Offset);
>
>          Offset = Offset + FPDiff;
>          int FI = MFI.CreateFixedObject(OpSize, Offset, true);
> @@ -2844,7 +2846,8 @@ SDValue SITargetLowering::LowerCall(Call
>        } else {
>          DstAddr = PtrOff;
>          DstInfo = MachinePointerInfo::getStack(MF, LocMemOffset);
> -        Align = MinAlign(Subtarget->getStackAlignment(), LocMemOffset);
> +        Alignment =
> +            commonAlignment(Subtarget->getStackAlignment(), LocMemOffset);
>        }
>
>        if (Outs[i].Flags.isByVal()) {
> @@ -2859,7 +2862,8 @@ SDValue SITargetLowering::LowerCall(Call
>
>          MemOpChains.push_back(Cpy);
>        } else {
> -        SDValue Store = DAG.getStore(Chain, DL, Arg, DstAddr, DstInfo,
> Align);
> +        SDValue Store = DAG.getStore(Chain, DL, Arg, DstAddr, DstInfo,
> +                                     Alignment ? Alignment->value() : 0);
>          MemOpChains.push_back(Store);
>        }
>      }
>
> Modified: llvm/trunk/lib/Target/ARC/ARCFrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARC/ARCFrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/ARC/ARCFrameLowering.h (original)
> +++ llvm/trunk/lib/Target/ARC/ARCFrameLowering.h Thu Oct 17 00:49:39 2019
> @@ -27,8 +27,8 @@ class ARCInstrInfo;
>  class ARCFrameLowering : public TargetFrameLowering {
>  public:
>    ARCFrameLowering(const ARCSubtarget &st)
> -      : TargetFrameLowering(TargetFrameLowering::StackGrowsDown, 4, 0),
> ST(st) {
> -  }
> +      : TargetFrameLowering(TargetFrameLowering::StackGrowsDown,
> Align(4), 0),
> +        ST(st) {}
>
>    /// Insert Prologue into the function.
>    void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const
> override;
>
> Modified: llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/ARMSubtarget.cpp Thu Oct 17 00:49:39 2019
> @@ -205,9 +205,9 @@ void ARMSubtarget::initSubtargetFeatures
>      NoARM = true;
>
>    if (isAAPCS_ABI())
> -    stackAlignment = 8;
> +    stackAlignment = Align(8);
>    if (isTargetNaCl() || isAAPCS16_ABI())
> -    stackAlignment = 16;
> +    stackAlignment = Align(16);
>
>    // FIXME: Completely disable sibcall for Thumb1 since
> ThumbRegisterInfo::
>    // emitEpilogue is not ready for them. Thumb tail calls also use t2B, as
>
> Modified: llvm/trunk/lib/Target/ARM/ARMSubtarget.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMSubtarget.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/ARMSubtarget.h (original)
> +++ llvm/trunk/lib/Target/ARM/ARMSubtarget.h Thu Oct 17 00:49:39 2019
> @@ -449,7 +449,7 @@ protected:
>
>    /// stackAlignment - The minimum alignment known to hold of the stack
> frame on
>    /// entry to the function and which must be maintained by every
> function.
> -  unsigned stackAlignment = 4;
> +  Align stackAlignment = Align(4);
>
>    /// CPUString - String name of used CPU.
>    std::string CPUString;
> @@ -816,7 +816,7 @@ public:
>    /// getStackAlignment - Returns the minimum alignment known to hold of
> the
>    /// stack frame on entry to the function and which must be maintained
> by every
>    /// function for this subtarget.
> -  unsigned getStackAlignment() const { return stackAlignment; }
> +  Align getStackAlignment() const { return stackAlignment; }
>
>    unsigned getMaxInterleaveFactor() const { return MaxInterleaveFactor; }
>
>
> Modified: llvm/trunk/lib/Target/AVR/AVRFrameLowering.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AVR/AVRFrameLowering.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/AVR/AVRFrameLowering.cpp (original)
> +++ llvm/trunk/lib/Target/AVR/AVRFrameLowering.cpp Thu Oct 17 00:49:39 2019
> @@ -30,7 +30,8 @@
>  namespace llvm {
>
>  AVRFrameLowering::AVRFrameLowering()
> -    : TargetFrameLowering(TargetFrameLowering::StackGrowsDown, 1, -2) {}
> +    : TargetFrameLowering(TargetFrameLowering::StackGrowsDown,
> Align::None(),
> +                          -2) {}
>
>  bool AVRFrameLowering::canSimplifyCallFramePseudos(
>      const MachineFunction &MF) const {
>
> Modified: llvm/trunk/lib/Target/BPF/BPFFrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/BPF/BPFFrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/BPF/BPFFrameLowering.h (original)
> +++ llvm/trunk/lib/Target/BPF/BPFFrameLowering.h Thu Oct 17 00:49:39 2019
> @@ -21,7 +21,7 @@ class BPFSubtarget;
>  class BPFFrameLowering : public TargetFrameLowering {
>  public:
>    explicit BPFFrameLowering(const BPFSubtarget &sti)
> -      : TargetFrameLowering(TargetFrameLowering::StackGrowsDown, 8, 0) {}
> +      : TargetFrameLowering(TargetFrameLowering::StackGrowsDown,
> Align(8), 0) {}
>
>    void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const
> override;
>    void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const
> override;
>
> Modified: llvm/trunk/lib/Target/Hexagon/HexagonFrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonFrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Hexagon/HexagonFrameLowering.h (original)
> +++ llvm/trunk/lib/Target/Hexagon/HexagonFrameLowering.h Thu Oct 17
> 00:49:39 2019
> @@ -30,7 +30,7 @@ class TargetRegisterClass;
>  class HexagonFrameLowering : public TargetFrameLowering {
>  public:
>    explicit HexagonFrameLowering()
> -      : TargetFrameLowering(StackGrowsDown, 8, 0, 1, true) {}
> +      : TargetFrameLowering(StackGrowsDown, Align(8), 0, 1, true) {}
>
>    // All of the prolog/epilog functionality, including saving and
> restoring
>    // callee-saved registers is handled in emitPrologue. This is to have
> the
>
> Modified: llvm/trunk/lib/Target/Lanai/LanaiFrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Lanai/LanaiFrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Lanai/LanaiFrameLowering.h (original)
> +++ llvm/trunk/lib/Target/Lanai/LanaiFrameLowering.h Thu Oct 17 00:49:39
> 2019
> @@ -31,7 +31,7 @@ protected:
>  public:
>    explicit LanaiFrameLowering(const LanaiSubtarget &Subtarget)
>        : TargetFrameLowering(StackGrowsDown,
> -                            /*StackAlignment=*/8,
> +                            /*StackAlignment=*/Align(8),
>                              /*LocalAreaOffset=*/0),
>          STI(Subtarget) {}
>
>
> Modified: llvm/trunk/lib/Target/MSP430/MSP430FrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430FrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/MSP430/MSP430FrameLowering.h (original)
> +++ llvm/trunk/lib/Target/MSP430/MSP430FrameLowering.h Thu Oct 17 00:49:39
> 2019
> @@ -22,7 +22,8 @@ protected:
>
>  public:
>    explicit MSP430FrameLowering()
> -      : TargetFrameLowering(TargetFrameLowering::StackGrowsDown, 2, -2,
> 2) {}
> +      : TargetFrameLowering(TargetFrameLowering::StackGrowsDown,
> Align(2), -2,
> +                            2) {}
>
>    /// emitProlog/emitEpilog - These methods insert prolog and epilog code
> into
>    /// the function.
>
> Modified: llvm/trunk/lib/Target/Mips/MipsAsmPrinter.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsAsmPrinter.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MipsAsmPrinter.cpp (original)
> +++ llvm/trunk/lib/Target/Mips/MipsAsmPrinter.cpp Thu Oct 17 00:49:39 2019
> @@ -781,7 +781,7 @@ void MipsAsmPrinter::EmitStartOfAsmFile(
>    StringRef CPU = MIPS_MC::selectMipsCPU(TT, TM.getTargetCPU());
>    StringRef FS = TM.getTargetFeatureString();
>    const MipsTargetMachine &MTM = static_cast<const MipsTargetMachine
> &>(TM);
> -  const MipsSubtarget STI(TT, CPU, FS, MTM.isLittleEndian(), MTM, 0);
> +  const MipsSubtarget STI(TT, CPU, FS, MTM.isLittleEndian(), MTM, None);
>
>    bool IsABICalls = STI.isABICalls();
>    const MipsABIInfo &ABI = MTM.getABI();
>
> Modified: llvm/trunk/lib/Target/Mips/MipsFrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsFrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MipsFrameLowering.h (original)
> +++ llvm/trunk/lib/Target/Mips/MipsFrameLowering.h Thu Oct 17 00:49:39 2019
> @@ -24,8 +24,9 @@ protected:
>    const MipsSubtarget &STI;
>
>  public:
> -  explicit MipsFrameLowering(const MipsSubtarget &sti, unsigned Alignment)
> -    : TargetFrameLowering(StackGrowsDown, Alignment, 0, Alignment),
> STI(sti) {}
> +  explicit MipsFrameLowering(const MipsSubtarget &sti, Align Alignment)
> +      : TargetFrameLowering(StackGrowsDown, Alignment, 0,
> Alignment.value()),
> +        STI(sti) {}
>
>    static const MipsFrameLowering *create(const MipsSubtarget &ST);
>
>
> Modified: llvm/trunk/lib/Target/Mips/MipsSubtarget.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsSubtarget.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MipsSubtarget.cpp (original)
> +++ llvm/trunk/lib/Target/Mips/MipsSubtarget.cpp Thu Oct 17 00:49:39 2019
> @@ -69,7 +69,7 @@ void MipsSubtarget::anchor() {}
>
>  MipsSubtarget::MipsSubtarget(const Triple &TT, StringRef CPU, StringRef
> FS,
>                               bool little, const MipsTargetMachine &TM,
> -                             unsigned StackAlignOverride)
> +                             MaybeAlign StackAlignOverride)
>      : MipsGenSubtargetInfo(TT, CPU, FS), MipsArchVersion(MipsDefault),
>        IsLittle(little), IsSoftFloat(false), IsSingleFloat(false),
> IsFPXX(false),
>        NoABICalls(false), Abs2008(false), IsFP64bit(false),
> UseOddSPReg(true),
> @@ -81,10 +81,9 @@ MipsSubtarget::MipsSubtarget(const Tripl
>        Os16(Mips_Os16), HasMSA(false), UseTCCInDIV(false), HasSym32(false),
>        HasEVA(false), DisableMadd4(false), HasMT(false), HasCRC(false),
>        HasVirt(false), HasGINV(false), UseIndirectJumpsHazard(false),
> -      StackAlignOverride(StackAlignOverride),
> -      TM(TM), TargetTriple(TT), TSInfo(),
> -      InstrInfo(
> -          MipsInstrInfo::create(initializeSubtargetDependencies(CPU, FS,
> TM))),
> +      StackAlignOverride(StackAlignOverride), TM(TM), TargetTriple(TT),
> +      TSInfo(), InstrInfo(MipsInstrInfo::create(
> +                    initializeSubtargetDependencies(CPU, FS, TM))),
>        FrameLowering(MipsFrameLowering::create(*this)),
>        TLInfo(MipsTargetLowering::create(TM, *this)) {
>
> @@ -248,12 +247,12 @@ MipsSubtarget::initializeSubtargetDepend
>      InMips16HardFloat = true;
>
>    if (StackAlignOverride)
> -    stackAlignment = StackAlignOverride;
> +    stackAlignment = *StackAlignOverride;
>    else if (isABI_N32() || isABI_N64())
> -    stackAlignment = 16;
> +    stackAlignment = Align(16);
>    else {
>      assert(isABI_O32() && "Unknown ABI for stack alignment!");
> -    stackAlignment = 8;
> +    stackAlignment = Align(8);
>    }
>
>    return *this;
>
> Modified: llvm/trunk/lib/Target/Mips/MipsSubtarget.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsSubtarget.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MipsSubtarget.h (original)
> +++ llvm/trunk/lib/Target/Mips/MipsSubtarget.h Thu Oct 17 00:49:39 2019
> @@ -194,10 +194,10 @@ class MipsSubtarget : public MipsGenSubt
>
>    /// The minimum alignment known to hold of the stack frame on
>    /// entry to the function and which must be maintained by every
> function.
> -  unsigned stackAlignment;
> +  Align stackAlignment;
>
>    /// The overridden stack alignment.
> -  unsigned StackAlignOverride;
> +  MaybeAlign StackAlignOverride;
>
>    InstrItineraryData InstrItins;
>
> @@ -230,7 +230,7 @@ public:
>    /// This constructor initializes the data members to match that
>    /// of the specified triple.
>    MipsSubtarget(const Triple &TT, StringRef CPU, StringRef FS, bool
> little,
> -                const MipsTargetMachine &TM, unsigned StackAlignOverride);
> +                const MipsTargetMachine &TM, MaybeAlign
> StackAlignOverride);
>
>    /// ParseSubtargetFeatures - Parses features string setting specified
>    /// subtarget options.  Definition of function is auto generated by
> tblgen.
> @@ -349,7 +349,7 @@ public:
>    // really use them if in addition we are in mips16 mode
>    static bool useConstantIslands();
>
> -  unsigned getStackAlignment() const { return stackAlignment; }
> +  Align getStackAlignment() const { return stackAlignment; }
>
>    // Grab relocation model
>    Reloc::Model getRelocationModel() const;
>
> Modified: llvm/trunk/lib/Target/Mips/MipsTargetMachine.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsTargetMachine.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MipsTargetMachine.cpp (original)
> +++ llvm/trunk/lib/Target/Mips/MipsTargetMachine.cpp Thu Oct 17 00:49:39
> 2019
> @@ -119,12 +119,15 @@ MipsTargetMachine::MipsTargetMachine(con
>                          getEffectiveCodeModel(CM, CodeModel::Small), OL),
>        isLittle(isLittle), TLOF(std::make_unique<MipsTargetObjectFile>()),
>        ABI(MipsABIInfo::computeTargetABI(TT, CPU, Options.MCOptions)),
> -      Subtarget(nullptr), DefaultSubtarget(TT, CPU, FS, isLittle, *this,
> -
>  Options.StackAlignmentOverride),
> +      Subtarget(nullptr),
> +      DefaultSubtarget(TT, CPU, FS, isLittle, *this,
> +                       MaybeAlign(Options.StackAlignmentOverride)),
>        NoMips16Subtarget(TT, CPU, FS.empty() ? "-mips16" : FS.str() +
> ",-mips16",
> -                        isLittle, *this, Options.StackAlignmentOverride),
> +                        isLittle, *this,
> +                        MaybeAlign(Options.StackAlignmentOverride)),
>        Mips16Subtarget(TT, CPU, FS.empty() ? "+mips16" : FS.str() +
> ",+mips16",
> -                      isLittle, *this, Options.StackAlignmentOverride) {
> +                      isLittle, *this,
> +                      MaybeAlign(Options.StackAlignmentOverride)) {
>    Subtarget = &DefaultSubtarget;
>    initAsmInfo();
>  }
> @@ -196,8 +199,9 @@ MipsTargetMachine::getSubtargetImpl(cons
>      // creation will depend on the TM and the code generation flags on the
>      // function that reside in TargetOptions.
>      resetTargetOptions(F);
> -    I = std::make_unique<MipsSubtarget>(TargetTriple, CPU, FS, isLittle,
> *this,
> -                                         Options.StackAlignmentOverride);
> +    I = std::make_unique<MipsSubtarget>(
> +        TargetTriple, CPU, FS, isLittle, *this,
> +        MaybeAlign(Options.StackAlignmentOverride));
>    }
>    return I.get();
>  }
>
> Modified: llvm/trunk/lib/Target/NVPTX/NVPTXFrameLowering.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/NVPTXFrameLowering.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/NVPTX/NVPTXFrameLowering.cpp (original)
> +++ llvm/trunk/lib/Target/NVPTX/NVPTXFrameLowering.cpp Thu Oct 17 00:49:39
> 2019
> @@ -25,7 +25,7 @@
>  using namespace llvm;
>
>  NVPTXFrameLowering::NVPTXFrameLowering()
> -    : TargetFrameLowering(TargetFrameLowering::StackGrowsUp, 8, 0) {}
> +    : TargetFrameLowering(TargetFrameLowering::StackGrowsUp, Align(8), 0)
> {}
>
>  bool NVPTXFrameLowering::hasFP(const MachineFunction &MF) const { return
> true; }
>
>
> Modified: llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp (original)
> +++ llvm/trunk/lib/Target/PowerPC/PPCSubtarget.cpp Thu Oct 17 00:49:39 2019
> @@ -60,7 +60,7 @@ PPCSubtarget::PPCSubtarget(const Triple
>        InstrInfo(*this), TLInfo(TM, *this) {}
>
>  void PPCSubtarget::initializeEnvironment() {
> -  StackAlignment = 16;
> +  StackAlignment = Align(16);
>    DarwinDirective = PPC::DIR_NONE;
>    HasMFOCRF = false;
>    Has64BitSupport = false;
>
> Modified: llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h (original)
> +++ llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h Thu Oct 17 00:49:39 2019
> @@ -78,7 +78,7 @@ protected:
>
>    /// stackAlignment - The minimum alignment known to hold of the stack
> frame on
>    /// entry to the function and which must be maintained by every
> function.
> -  unsigned StackAlignment;
> +  Align StackAlignment;
>
>    /// Selected instruction itineraries (one entry per itinerary class.)
>    InstrItineraryData InstrItins;
> @@ -166,7 +166,7 @@ public:
>    /// getStackAlignment - Returns the minimum alignment known to hold of
> the
>    /// stack frame on entry to the function and which must be maintained
> by every
>    /// function for this subtarget.
> -  unsigned getStackAlignment() const { return StackAlignment; }
> +  Align getStackAlignment() const { return StackAlignment; }
>
>    /// getDarwinDirective - Returns the -m directive specified for the cpu.
>    ///
> @@ -281,11 +281,11 @@ public:
>    bool hasDirectMove() const { return HasDirectMove; }
>
>    bool isQPXStackUnaligned() const { return IsQPXStackUnaligned; }
> -  unsigned getPlatformStackAlignment() const {
> +  Align getPlatformStackAlignment() const {
>      if ((hasQPX() || isBGQ()) && !isQPXStackUnaligned())
> -      return 32;
> +      return Align(32);
>
> -    return 16;
> +    return Align(16);
>    }
>
>    // DarwinABI has a 224-byte red zone. PPC32 SVR4ABI(Non-DarwinABI) has
> no
>
> Modified: llvm/trunk/lib/Target/RISCV/RISCVFrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/RISCV/RISCVFrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/RISCV/RISCVFrameLowering.h (original)
> +++ llvm/trunk/lib/Target/RISCV/RISCVFrameLowering.h Thu Oct 17 00:49:39
> 2019
> @@ -22,7 +22,7 @@ class RISCVFrameLowering : public Target
>  public:
>    explicit RISCVFrameLowering(const RISCVSubtarget &STI)
>        : TargetFrameLowering(StackGrowsDown,
> -                            /*StackAlignment=*/16,
> +                            /*StackAlignment=*/Align(16),
>                              /*LocalAreaOffset=*/0),
>          STI(STI) {}
>
>
> Modified: llvm/trunk/lib/Target/Sparc/SparcFrameLowering.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/SparcFrameLowering.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Sparc/SparcFrameLowering.cpp (original)
> +++ llvm/trunk/lib/Target/Sparc/SparcFrameLowering.cpp Thu Oct 17 00:49:39
> 2019
> @@ -34,7 +34,8 @@ DisableLeafProc("disable-sparc-leaf-proc
>
>  SparcFrameLowering::SparcFrameLowering(const SparcSubtarget &ST)
>      : TargetFrameLowering(TargetFrameLowering::StackGrowsDown,
> -                          ST.is64Bit() ? 16 : 8, 0, ST.is64Bit() ? 16 :
> 8) {}
> +                          ST.is64Bit() ? Align(16) : Align(8), 0,
> +                          ST.is64Bit() ? 16 : 8) {}
>
>  void SparcFrameLowering::emitSPAdjustment(MachineFunction &MF,
>                                            MachineBasicBlock &MBB,
>
> Modified: llvm/trunk/lib/Target/SystemZ/SystemZFrameLowering.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZFrameLowering.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/SystemZ/SystemZFrameLowering.cpp (original)
> +++ llvm/trunk/lib/Target/SystemZ/SystemZFrameLowering.cpp Thu Oct 17
> 00:49:39 2019
> @@ -46,7 +46,7 @@ static const TargetFrameLowering::SpillS
>  } // end anonymous namespace
>
>  SystemZFrameLowering::SystemZFrameLowering()
> -    : TargetFrameLowering(TargetFrameLowering::StackGrowsDown, 8,
> +    : TargetFrameLowering(TargetFrameLowering::StackGrowsDown, Align(8),
>                            -SystemZMC::CallFrameSize, 8,
>                            false /* StackRealignable */) {
>    // Create a mapping from register number to save slot offset.
>
> Modified: llvm/trunk/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/WebAssemblyFrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/WebAssembly/WebAssemblyFrameLowering.h (original)
> +++ llvm/trunk/lib/Target/WebAssembly/WebAssemblyFrameLowering.h Thu Oct
> 17 00:49:39 2019
> @@ -29,7 +29,7 @@ public:
>    static const size_t RedZoneSize = 128;
>
>    WebAssemblyFrameLowering()
> -      : TargetFrameLowering(StackGrowsDown, /*StackAlignment=*/16,
> +      : TargetFrameLowering(StackGrowsDown, /*StackAlignment=*/Align(16),
>                              /*LocalAreaOffset=*/0,
>                              /*TransientStackAlignment=*/16,
>                              /*StackRealignable=*/true) {}
>
> Modified: llvm/trunk/lib/Target/X86/X86FrameLowering.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FrameLowering.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86FrameLowering.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86FrameLowering.cpp Thu Oct 17 00:49:39 2019
> @@ -35,8 +35,8 @@
>  using namespace llvm;
>
>  X86FrameLowering::X86FrameLowering(const X86Subtarget &STI,
> -                                   unsigned StackAlignOverride)
> -    : TargetFrameLowering(StackGrowsDown, StackAlignOverride,
> +                                   MaybeAlign StackAlignOverride)
> +    : TargetFrameLowering(StackGrowsDown, StackAlignOverride.valueOrOne(),
>                            STI.is64Bit() ? -8 : -4),
>        STI(STI), TII(*STI.getInstrInfo()), TRI(STI.getRegisterInfo()) {
>    // Cache a bunch of frame-related predicates for this subtarget.
>
> Modified: llvm/trunk/lib/Target/X86/X86FrameLowering.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FrameLowering.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86FrameLowering.h (original)
> +++ llvm/trunk/lib/Target/X86/X86FrameLowering.h Thu Oct 17 00:49:39 2019
> @@ -25,7 +25,7 @@ class X86RegisterInfo;
>
>  class X86FrameLowering : public TargetFrameLowering {
>  public:
> -  X86FrameLowering(const X86Subtarget &STI, unsigned StackAlignOverride);
> +  X86FrameLowering(const X86Subtarget &STI, MaybeAlign
> StackAlignOverride);
>
>    // Cached subtarget predicates.
>
>
> Modified: llvm/trunk/lib/Target/X86/X86Subtarget.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86Subtarget.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86Subtarget.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86Subtarget.cpp Thu Oct 17 00:49:39 2019
> @@ -288,10 +288,10 @@ void X86Subtarget::initSubtargetFeatures
>    // Stack alignment is 16 bytes on Darwin, Linux, kFreeBSD and Solaris
> (both
>    // 32 and 64 bit) and for all 64-bit targets.
>    if (StackAlignOverride)
> -    stackAlignment = StackAlignOverride;
> +    stackAlignment = *StackAlignOverride;
>    else if (isTargetDarwin() || isTargetLinux() || isTargetSolaris() ||
>             isTargetKFreeBSD() || In64BitMode)
> -    stackAlignment = 16;
> +    stackAlignment = Align(16);
>
>    // Some CPUs have more overhead for gather. The specified overhead is
> relative
>    // to the Load operation. "2" is the number provided by Intel
> architects. This
> @@ -321,12 +321,11 @@ X86Subtarget &X86Subtarget::initializeSu
>
>  X86Subtarget::X86Subtarget(const Triple &TT, StringRef CPU, StringRef FS,
>                             const X86TargetMachine &TM,
> -                           unsigned StackAlignOverride,
> +                           MaybeAlign StackAlignOverride,
>                             unsigned PreferVectorWidthOverride,
>                             unsigned RequiredVectorWidth)
> -    : X86GenSubtargetInfo(TT, CPU, FS),
> -      PICStyle(PICStyles::None), TM(TM), TargetTriple(TT),
> -      StackAlignOverride(StackAlignOverride),
> +    : X86GenSubtargetInfo(TT, CPU, FS), PICStyle(PICStyles::None), TM(TM),
> +      TargetTriple(TT), StackAlignOverride(StackAlignOverride),
>        PreferVectorWidthOverride(PreferVectorWidthOverride),
>        RequiredVectorWidth(RequiredVectorWidth),
>        In64BitMode(TargetTriple.getArch() == Triple::x86_64),
>
> Modified: llvm/trunk/lib/Target/X86/X86Subtarget.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86Subtarget.h?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86Subtarget.h (original)
> +++ llvm/trunk/lib/Target/X86/X86Subtarget.h Thu Oct 17 00:49:39 2019
> @@ -432,7 +432,7 @@ protected:
>
>    /// The minimum alignment known to hold of the stack frame on
>    /// entry to the function and which must be maintained by every
> function.
> -  unsigned stackAlignment = 4;
> +  Align stackAlignment = Align(4);
>
>    /// Max. memset / memcpy size that is turned into rep/movs, rep/stos
> ops.
>    ///
> @@ -459,7 +459,7 @@ protected:
>
>  private:
>    /// Override the stack alignment.
> -  unsigned StackAlignOverride;
> +  MaybeAlign StackAlignOverride;
>
>    /// Preferred vector width from function attribute.
>    unsigned PreferVectorWidthOverride;
> @@ -496,7 +496,7 @@ public:
>    /// of the specified triple.
>    ///
>    X86Subtarget(const Triple &TT, StringRef CPU, StringRef FS,
> -               const X86TargetMachine &TM, unsigned StackAlignOverride,
> +               const X86TargetMachine &TM, MaybeAlign StackAlignOverride,
>                 unsigned PreferVectorWidthOverride,
>                 unsigned RequiredVectorWidth);
>
> @@ -521,7 +521,7 @@ public:
>    /// Returns the minimum alignment known to hold of the
>    /// stack frame on entry to the function and which must be maintained
> by every
>    /// function for this subtarget.
> -  unsigned getStackAlignment() const { return stackAlignment; }
> +  Align getStackAlignment() const { return stackAlignment; }
>
>    /// Returns the maximum memset / memcpy size
>    /// that still makes it profitable to inline the call.
>
> Modified: llvm/trunk/lib/Target/X86/X86TargetMachine.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetMachine.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86TargetMachine.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86TargetMachine.cpp Thu Oct 17 00:49:39 2019
> @@ -307,10 +307,10 @@ X86TargetMachine::getSubtargetImpl(const
>      // creation will depend on the TM and the code generation flags on the
>      // function that reside in TargetOptions.
>      resetTargetOptions(F);
> -    I = std::make_unique<X86Subtarget>(TargetTriple, CPU, FS, *this,
> -                                        Options.StackAlignmentOverride,
> -                                        PreferVectorWidthOverride,
> -                                        RequiredVectorWidth);
> +    I = std::make_unique<X86Subtarget>(
> +        TargetTriple, CPU, FS, *this,
> +        MaybeAlign(Options.StackAlignmentOverride),
> PreferVectorWidthOverride,
> +        RequiredVectorWidth);
>    }
>    return I.get();
>  }
>
> Modified: llvm/trunk/lib/Target/XCore/XCoreFrameLowering.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/XCore/XCoreFrameLowering.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/XCore/XCoreFrameLowering.cpp (original)
> +++ llvm/trunk/lib/Target/XCore/XCoreFrameLowering.cpp Thu Oct 17 00:49:39
> 2019
> @@ -211,7 +211,7 @@ static void RestoreSpillList(MachineBasi
>
>  //===----------------------------------------------------------------------===//
>
>  XCoreFrameLowering::XCoreFrameLowering(const XCoreSubtarget &sti)
> -  : TargetFrameLowering(TargetFrameLowering::StackGrowsDown, 4, 0) {
> +    : TargetFrameLowering(TargetFrameLowering::StackGrowsDown, Align(4),
> 0) {
>    // Do nothing
>  }
>
>
> Modified: llvm/trunk/unittests/CodeGen/MachineInstrTest.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/CodeGen/MachineInstrTest.cpp?rev=375084&r1=375083&r2=375084&view=diff
>
> ==============================================================================
> --- llvm/trunk/unittests/CodeGen/MachineInstrTest.cpp (original)
> +++ llvm/trunk/unittests/CodeGen/MachineInstrTest.cpp Thu Oct 17 00:49:39
> 2019
> @@ -35,7 +35,7 @@ public:
>  class BogusFrameLowering : public TargetFrameLowering {
>  public:
>    BogusFrameLowering()
> -      : TargetFrameLowering(TargetFrameLowering::StackGrowsDown, 4, 4) {}
> +      : TargetFrameLowering(TargetFrameLowering::StackGrowsDown,
> Align(4), 4) {}
>
>    void emitPrologue(MachineFunction &MF,
>                      MachineBasicBlock &MBB) const override {}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191018/8ef25c98/attachment.html>


More information about the llvm-commits mailing list