LLVM  16.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 (Align StackAlignment)
 
void addObject (const Value *V, unsigned Size, Align 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...
 
Align getObjectAlignment (const Value *V)
 Returns the alignment of the object. More...
 
unsigned getFrameSize ()
 Returns the size of the entire frame. More...
 
Align 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 ( Align  StackAlignment)
inline

Definition at line 55 of file SafeStackLayout.h.

Member Function Documentation

◆ addObject()

void StackLayout::addObject ( const Value V,
unsigned  Size,
Align  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 39 of file SafeStackLayout.cpp.

References llvm::max().

◆ 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()

Align 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()

Align 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 27 of file SafeStackLayout.cpp.

References i, and IT.

Referenced by computeLayout().


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