diff options
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h')
-rw-r--r-- | llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h | 48 |
1 files changed, 20 insertions, 28 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h index ca2860afe13..f0bffe54415 100644 --- a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h +++ b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h @@ -14,17 +14,18 @@ #ifndef LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEFUNCTIONINFO_H #define LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEFUNCTIONINFO_H +#include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallVector.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/MC/MCLinkerOptimizationHint.h" +#include <cassert> namespace llvm { /// AArch64FunctionInfo - This class is derived from MachineFunctionInfo and /// contains private AArch64-specific information for each MachineFunction. class AArch64FunctionInfo final : public MachineFunctionInfo { - /// Number of bytes of arguments this function has on the stack. If the callee /// is expected to restore the argument stack this should be a multiple of 16, /// all usable during a tail call. @@ -34,16 +35,16 @@ class AArch64FunctionInfo final : public MachineFunctionInfo { /// space to a function with 16-bytes then misalignment of this value would /// make a stack adjustment necessary, which could not be undone by the /// callee. - unsigned BytesInStackArgArea; + unsigned BytesInStackArgArea = 0; /// The number of bytes to restore to deallocate space for incoming /// arguments. Canonically 0 in the C calling convention, but non-zero when /// callee is expected to pop the args. - unsigned ArgumentStackToRestore; + unsigned ArgumentStackToRestore = 0; /// HasStackFrame - True if this function has a stack frame. Set by /// determineCalleeSaves(). - bool HasStackFrame; + bool HasStackFrame = false; /// \brief Amount of stack frame size, not including callee-saved registers. unsigned LocalStackSize; @@ -53,54 +54,44 @@ class AArch64FunctionInfo final : public MachineFunctionInfo { /// \brief Number of TLS accesses using the special (combinable) /// _TLS_MODULE_BASE_ symbol. - unsigned NumLocalDynamicTLSAccesses; + unsigned NumLocalDynamicTLSAccesses = 0; /// \brief FrameIndex for start of varargs area for arguments passed on the /// stack. - int VarArgsStackIndex; + int VarArgsStackIndex = 0; /// \brief FrameIndex for start of varargs area for arguments passed in /// general purpose registers. - int VarArgsGPRIndex; + int VarArgsGPRIndex = 0; /// \brief Size of the varargs area for arguments passed in general purpose /// registers. - unsigned VarArgsGPRSize; + unsigned VarArgsGPRSize = 0; /// \brief FrameIndex for start of varargs area for arguments passed in /// floating-point registers. - int VarArgsFPRIndex; + int VarArgsFPRIndex = 0; /// \brief Size of the varargs area for arguments passed in floating-point /// registers. - unsigned VarArgsFPRSize; + unsigned VarArgsFPRSize = 0; /// True if this function has a subset of CSRs that is handled explicitly via /// copies. - bool IsSplitCSR; + bool IsSplitCSR = false; /// True when the stack gets realigned dynamically because the size of stack /// frame is unknown at compile time. e.g., in case of VLAs. - bool StackRealigned; + bool StackRealigned = false; /// True when the callee-save stack area has unused gaps that may be used for /// other stack allocations. - bool CalleeSaveStackHasFreeSpace; + bool CalleeSaveStackHasFreeSpace = false; public: - AArch64FunctionInfo() - : BytesInStackArgArea(0), ArgumentStackToRestore(0), HasStackFrame(false), - NumLocalDynamicTLSAccesses(0), VarArgsStackIndex(0), VarArgsGPRIndex(0), - VarArgsGPRSize(0), VarArgsFPRIndex(0), VarArgsFPRSize(0), - IsSplitCSR(false), StackRealigned(false), - CalleeSaveStackHasFreeSpace(false) {} - - explicit AArch64FunctionInfo(MachineFunction &MF) - : BytesInStackArgArea(0), ArgumentStackToRestore(0), HasStackFrame(false), - NumLocalDynamicTLSAccesses(0), VarArgsStackIndex(0), VarArgsGPRIndex(0), - VarArgsGPRSize(0), VarArgsFPRIndex(0), VarArgsFPRSize(0), - IsSplitCSR(false), StackRealigned(false), - CalleeSaveStackHasFreeSpace(false) { + AArch64FunctionInfo() = default; + + explicit AArch64FunctionInfo(MachineFunction &MF) { (void)MF; } @@ -193,6 +184,7 @@ private: MILOHContainer LOHContainerSet; SetOfInstructions LOHRelated; }; -} // End llvm namespace -#endif +} // end namespace llvm + +#endif // LLVM_LIB_TARGET_AARCH64_AARCH64MACHINEFUNCTIONINFO_H |