retdec
Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
retdec::bin2llvmir::StackPointerOpsRemove Class Reference

#include <stack_pointer_ops.h>

Inheritance diagram for retdec::bin2llvmir::StackPointerOpsRemove:
Inheritance graph
[legend]
Collaboration diagram for retdec::bin2llvmir::StackPointerOpsRemove:
Collaboration graph
[legend]

Public Member Functions

 StackPointerOpsRemove ()
 
virtual bool runOnModule (llvm::Module &m) override
 
bool runOnModuleCustom (llvm::Module &m, Abi *a)
 

Static Public Attributes

static char ID = 0
 

Private Member Functions

bool run ()
 
bool removeStackPointerStores ()
 
bool removePreservationStores ()
 

Private Attributes

llvm::Module * _module = nullptr
 
Abi_abi = nullptr
 

Constructor & Destructor Documentation

◆ StackPointerOpsRemove()

retdec::bin2llvmir::StackPointerOpsRemove::StackPointerOpsRemove ( )

Member Function Documentation

◆ removePreservationStores()

bool retdec::bin2llvmir::StackPointerOpsRemove::removePreservationStores ( )
private

Finds those allocas that are only used to store some value from ebp and then this value is stored back to ebp.

◆ removeStackPointerStores()

bool retdec::bin2llvmir::StackPointerOpsRemove::removeStackPointerStores ( )
private

◆ run()

bool retdec::bin2llvmir::StackPointerOpsRemove::run ( )
private
Returns
True if module _module was modified in any way, false otherwise.

◆ runOnModule()

bool retdec::bin2llvmir::StackPointerOpsRemove::runOnModule ( llvm::Module &  m)
overridevirtual

◆ runOnModuleCustom()

bool retdec::bin2llvmir::StackPointerOpsRemove::runOnModuleCustom ( llvm::Module &  m,
Abi a 
)

Member Data Documentation

◆ _abi

Abi* retdec::bin2llvmir::StackPointerOpsRemove::_abi = nullptr
private

◆ _module

llvm::Module* retdec::bin2llvmir::StackPointerOpsRemove::_module = nullptr
private

◆ ID

char retdec::bin2llvmir::StackPointerOpsRemove::ID = 0
static

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