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

Instruction idiom analysis. More...

#include <idioms.h>

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

Public Member Functions

 Idioms ()
 
virtual bool runOnFunction (llvm::Function &f) override
 
virtual bool doInitialization (llvm::Module &M) override
 
virtual bool doFinalization (llvm::Module &M) override
 
IdiomsAnalysisgetCompilerAnalysis (llvm::Module &M)
 

Static Public Attributes

static char ID = 0
 

Private Attributes

IdiomsAnalysism_idioms = nullptr
 
Configm_config = nullptr
 

Detailed Description

Instruction idiom analysis.

Constructor & Destructor Documentation

◆ Idioms()

retdec::bin2llvmir::Idioms::Idioms ( )

Constructor

Member Function Documentation

◆ doFinalization()

bool retdec::bin2llvmir::Idioms::doFinalization ( llvm::Module &  M)
overridevirtual

Finalization method called on every module

Parameters
Mmodule
Returns
always true

◆ doInitialization()

bool retdec::bin2llvmir::Idioms::doInitialization ( llvm::Module &  M)
overridevirtual

Inalization method called on every module

Parameters
Mmodule
Returns
always true

◆ getCompilerAnalysis()

IdiomsAnalysis * retdec::bin2llvmir::Idioms::getCompilerAnalysis ( llvm::Module &  M)

Get instance of idioms collection used depending on compiler

Parameters
MModule used
Returns
idioms collection

TODO matula: Idiom analysis still has its own architecture and compiler representations. It could/should use the representations from retdec::config.

◆ runOnFunction()

bool retdec::bin2llvmir::Idioms::runOnFunction ( llvm::Function &  f)
overridevirtual

Instruction idioms analysis

Returns
true if an exchange was made

Member Data Documentation

◆ ID

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

◆ m_config

Config* retdec::bin2llvmir::Idioms::m_config = nullptr
private

◆ m_idioms

IdiomsAnalysis* retdec::bin2llvmir::Idioms::m_idioms = nullptr
private

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