LLVM  8.0.1
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 (unsigned StackAlignment)
 
void addObject (const Value *V, unsigned Size, unsigned Alignment, const StackColoring::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...
 
unsigned getObjectAlignment (const Value *V)
 Returns the alignment of the object. More...
 
unsigned getFrameSize ()
 Returns the size of the entire frame. More...
 
unsigned 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 25 of file SafeStackLayout.h.

Constructor & Destructor Documentation

◆ StackLayout()

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

Definition at line 55 of file SafeStackLayout.h.

References addObject(), computeLayout(), and Size.

Member Function Documentation

◆ addObject()

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

References llvm::max(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and Size.

Referenced by StackLayout().

◆ computeLayout()

void StackLayout::computeLayout ( )

Run the layout computation for all previously added objects.

Definition at line 137 of file SafeStackLayout.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::dbgs(), llvm::SmallVectorTemplateCommon< T, typename >::end(), LLVM_DEBUG, print(), and llvm::SmallVectorBase::size().

Referenced by StackLayout().

◆ getFrameAlignment()

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

Returns the alignment of the frame.

Definition at line 75 of file SafeStackLayout.h.

References print().

◆ getFrameSize()

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

Returns the size of the entire frame.

Definition at line 72 of file SafeStackLayout.h.

References llvm::SmallVectorTemplateCommon< T, typename >::back(), and llvm::SmallVectorBase::empty().

◆ getObjectAlignment()

unsigned 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 30 of file SafeStackLayout.cpp.

References IT, and llvm::SmallVectorBase::size().

Referenced by computeLayout(), and getFrameAlignment().


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