retdec
Protected Member Functions | Friends | List of all members
retdec::bin2llvmir::IdiomsVStudio Class Reference

Visual Studio instruction idioms. More...

#include <idioms_vstudio.h>

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

Protected Member Functions

llvm::Instruction * exchangeAndZeroAssign (llvm::BasicBlock::iterator) const
 
llvm::Instruction * exchangeOrMinusOneAssign (llvm::BasicBlock::iterator) const
 
- Protected Member Functions inherited from retdec::bin2llvmir::IdiomsAbstract
 IdiomsAbstract ()
 
void init (llvm::Module *M, CC_compiler cc, CC_arch arch)
 
CC_compiler getCompiler () const
 
CC_arch getArch () const
 
llvm::Module * getModule () const
 
virtual bool doAnalysis (llvm::Function &, llvm::Pass *)=0
 
virtual ~IdiomsAbstract ()=default
 
bool findBranchDependingOn (llvm::BranchInst **br, llvm::BasicBlock &bb, const llvm::Value *val) const
 

Friends

class IdiomsAnalysis
 

Additional Inherited Members

- Static Protected Member Functions inherited from retdec::bin2llvmir::IdiomsAbstract
static void eraseInstFromBasicBlock (llvm::Value *val, llvm::BasicBlock *bb)
 
static bool isPowerOfTwo (unsigned x)
 
static bool isPowerOfTwoRepresentable (const llvm::ConstantInt *cnst)
 

Detailed Description

Visual Studio instruction idioms.

Member Function Documentation

◆ exchangeAndZeroAssign()

llvm::Instruction * retdec::bin2llvmir::IdiomsVStudio::exchangeAndZeroAssign ( llvm::BasicBlock::iterator  iter) const
protected

Exchange X & 0 with X = 0

Parameters
itervalue to visit
Returns
replaced Instruction, otherwise nullptr

◆ exchangeOrMinusOneAssign()

llvm::Instruction * retdec::bin2llvmir::IdiomsVStudio::exchangeOrMinusOneAssign ( llvm::BasicBlock::iterator  iter) const
protected

Exchange X | -1 with X = -1

Parameters
itervalue to visit
Returns
replaced Instruction, otherwise nullptr

Friends And Related Function Documentation

◆ IdiomsAnalysis

friend class IdiomsAnalysis
friend

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