LLVM  14.0.0git
Classes | Public Member Functions | List of all members
llvm::safestack::StackLayout Class Reference

Compute the layout of an unsafe stack frame. More...

#include "CodeGen/SafeStackLayout.h"

Public Member Functions

 StackLayout (uint64_t StackAlignment)
 
void addObject (const Value *V, unsigned Size, uint64_t Alignment, const StackLifetime::LiveRange &Range)
 Add an object to the stack frame. More...
 
void computeLayout ()
 Run the layout computation for all previously added objects. More...
 
unsigned getObjectOffset (const Value *V)
 Returns the offset to the object start in the stack frame. More...
 
uint64_t getObjectAlignment (const Value *V)
 Returns the alignment of the object. More...
 
unsigned getFrameSize ()
 Returns the size of the entire frame. More...
 
uint64_t getFrameAlignment ()
 Returns the alignment of the frame. More...
 
void print (raw_ostream &OS)
 

Detailed Description

Compute the layout of an unsafe stack frame.

Definition at line 24 of file SafeStackLayout.h.

Constructor & Destructor Documentation

◆ StackLayout()

llvm::safestack::StackLayout::StackLayout ( uint64_t  StackAlignment)
inline

Definition at line 55 of file SafeStackLayout.h.

Member Function Documentation

◆ addObject()

void StackLayout::addObject ( const Value V,
unsigned  Size,
uint64_t  Alignment,
const StackLifetime::LiveRange Range 
)

Add an object to the stack frame.

Value pointer is opaque and used as a handle to retrieve the object's offset in the frame later.

Definition at line 40 of file SafeStackLayout.cpp.

References llvm::max(), and llvm::Check::Size.

◆ computeLayout()

void StackLayout::computeLayout ( )

Run the layout computation for all previously added objects.

Definition at line 135 of file SafeStackLayout.cpp.

References b, llvm::dbgs(), llvm::drop_begin(), LLVM_DEBUG, print(), and llvm::stable_sort().

◆ getFrameAlignment()

uint64_t llvm::safestack::StackLayout::getFrameAlignment ( )
inline

Returns the alignment of the frame.

Definition at line 75 of file SafeStackLayout.h.

◆ getFrameSize()

unsigned llvm::safestack::StackLayout::getFrameSize ( )
inline

Returns the size of the entire frame.

Definition at line 72 of file SafeStackLayout.h.

◆ getObjectAlignment()

uint64_t llvm::safestack::StackLayout::getObjectAlignment ( const Value V)
inline

Returns the alignment of the object.

Definition at line 69 of file SafeStackLayout.h.

◆ getObjectOffset()

unsigned llvm::safestack::StackLayout::getObjectOffset ( const Value V)
inline

Returns the offset to the object start in the stack frame.

Definition at line 66 of file SafeStackLayout.h.

◆ print()

LLVM_DUMP_METHOD void StackLayout::print ( raw_ostream OS)

Definition at line 28 of file SafeStackLayout.cpp.

References i, and IT.

Referenced by computeLayout().


The documentation for this class was generated from the following files: