retdec
Public Member Functions | Public Attributes | Private Attributes | Friends | List of all members
retdec::bin2llvmir::BasicBlockEntry Class Reference

#include <reaching_definitions.h>

Collaboration diagram for retdec::bin2llvmir::BasicBlockEntry:
Collaboration graph
[legend]

Public Member Functions

 BasicBlockEntry (const llvm::BasicBlock *b=nullptr, std::size_t _id=0)
 
std::string getName () const
 
void initializeKillDefSets ()
 
Changed initDefsOut ()
 
const DefSetdefsFromUse (const llvm::Instruction *I) const
 
const UseSetusesFromDef (const llvm::Instruction *I) const
 
const DefinitiongetDef (const llvm::Instruction *I) const
 
const UsegetUse (const llvm::Instruction *I) const
 

Public Attributes

const llvm::BasicBlock * bb
 
DefVector defs
 
UseVector uses
 
BBEntrySet prevBBs
 
DefSet defsOut
 
DefSet genDefs
 
std::unordered_set< llvm::Value * > killDefs
 
bool changed = false
 

Private Attributes

unsigned id
 

Friends

std::ostream & operator<< (std::ostream &out, const BasicBlockEntry &bbe)
 

Constructor & Destructor Documentation

◆ BasicBlockEntry()

retdec::bin2llvmir::BasicBlockEntry::BasicBlockEntry ( const llvm::BasicBlock *  b = nullptr,
std::size_t  _id = 0 
)

Member Function Documentation

◆ defsFromUse()

const DefSet & retdec::bin2llvmir::BasicBlockEntry::defsFromUse ( const llvm::Instruction *  I) const

◆ getDef()

const Definition * retdec::bin2llvmir::BasicBlockEntry::getDef ( const llvm::Instruction *  I) const

◆ getName()

std::string retdec::bin2llvmir::BasicBlockEntry::getName ( ) const

◆ getUse()

const Use * retdec::bin2llvmir::BasicBlockEntry::getUse ( const llvm::Instruction *  I) const

◆ initDefsOut()

Changed retdec::bin2llvmir::BasicBlockEntry::initDefsOut ( )

REACH_in[B] = Sum (p in pred[B]) (REACH_out[p]) REACH_out[B] = GEN[B] + ( REACH_in[B] - KILL[B] )

◆ initializeKillDefSets()

void retdec::bin2llvmir::BasicBlockEntry::initializeKillDefSets ( )

◆ usesFromDef()

const UseSet & retdec::bin2llvmir::BasicBlockEntry::usesFromDef ( const llvm::Instruction *  I) const

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const BasicBlockEntry bbe 
)
friend

Member Data Documentation

◆ bb

const llvm::BasicBlock* retdec::bin2llvmir::BasicBlockEntry::bb

◆ changed

bool retdec::bin2llvmir::BasicBlockEntry::changed = false

◆ defs

DefVector retdec::bin2llvmir::BasicBlockEntry::defs

◆ defsOut

DefSet retdec::bin2llvmir::BasicBlockEntry::defsOut

◆ genDefs

DefSet retdec::bin2llvmir::BasicBlockEntry::genDefs

◆ id

unsigned retdec::bin2llvmir::BasicBlockEntry::id
private

◆ killDefs

std::unordered_set<llvm::Value*> retdec::bin2llvmir::BasicBlockEntry::killDefs

◆ prevBBs

BBEntrySet retdec::bin2llvmir::BasicBlockEntry::prevBBs

◆ uses

UseVector retdec::bin2llvmir::BasicBlockEntry::uses

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