16#ifndef LLVM_CODEGEN_STACKPROTECTOR_H
17#define LLVM_CODEGEN_STACKPROTECTOR_H
33class TargetLoweringBase;
39 static constexpr unsigned DefaultSSPBufferSize = 8;
55 std::optional<DomTreeUpdater> DTU;
64 unsigned SSPBufferSize = DefaultSSPBufferSize;
73 bool HasPrologue =
false;
76 bool HasIRCheck =
false;
84 bool InsertStackProtectors();
96 bool ContainsProtectableArray(
Type *Ty,
bool &IsLarge,
bool Strong =
false,
97 bool InStruct =
false)
const;
104 bool RequiresStackProtector();
This header is deprecated in favour of llvm/TargetParser/Triple.h.
Machine Check Debug Module
This file defines the SmallPtrSet class.
an instruction to allocate memory on the stack
Represent the analysis usage information of a pass.
LLVM Basic Block Representation.
FunctionPass class - This class is used to implement most global optimizations.
The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted.
SSPLayoutKind
Stack Smashing Protection (SSP) rules require that vulnerable stack allocations are located close the...
A Module instance is used to store all the information related to an LLVM module.
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
bool shouldEmitSDCheck(const BasicBlock &BB) const
void copyToMachineFrameInfo(MachineFrameInfo &MFI) const
bool runOnFunction(Function &Fn) override
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
This base class for TargetLowering contains the SelectionDAG-independent parts that can be used from ...
Primary interface to the complete machine description for the target machine.
Triple - Helper class for working with autoconf configuration names.
The instances of the Type class are immutable: once they are created, they are never changed.
@ BasicBlock
Various leaf nodes.
This is an optimization pass for GlobalISel generic memory operations.