diff options
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h index d82fb436925e..219f83cfd32e 100644 --- a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h +++ b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h @@ -185,6 +185,8 @@ class AArch64FunctionInfo final : public MachineFunctionInfo { /// The frame-index for the TPIDR2 object used for lazy saves. Register LazySaveTPIDR2Obj = 0; + /// Whether this function changes streaming mode within the function. + bool HasStreamingModeChanges = false; /// True if the function need unwind information. mutable std::optional<bool> NeedsDwarfUnwindInfo; @@ -192,6 +194,8 @@ class AArch64FunctionInfo final : public MachineFunctionInfo { /// True if the function need asynchronous unwind information. mutable std::optional<bool> NeedsAsyncDwarfUnwindInfo; + int64_t StackProbeSize = 0; + public: AArch64FunctionInfo(const Function &F, const AArch64Subtarget *STI); @@ -429,6 +433,8 @@ public: bool shouldSignReturnAddress(const MachineFunction &MF) const; bool shouldSignReturnAddress(bool SpillsLR) const; + bool needsShadowCallStackPrologueEpilogue(MachineFunction &MF) const; + bool shouldSignWithBKey() const { return SignWithBKey; } bool isMTETagged() const { return IsMTETagged; } @@ -447,6 +453,15 @@ public: bool needsDwarfUnwindInfo(const MachineFunction &MF) const; bool needsAsyncDwarfUnwindInfo(const MachineFunction &MF) const; + bool hasStreamingModeChanges() const { return HasStreamingModeChanges; } + void setHasStreamingModeChanges(bool HasChanges) { + HasStreamingModeChanges = HasChanges; + } + + bool hasStackProbing() const { return StackProbeSize != 0; } + + int64_t getStackProbeSize() const { return StackProbeSize; } + private: // Hold the lists of LOHs. MILOHContainer LOHContainerSet; |
