IDA C++ SDK 9.2
Loading...
Searching...
No Matches
optinsn_t Struct Referenceabstract

User defined callback to optimize individual microcode instructions. More...

#include <hexrays.hpp>

Public Member Functions

virtual ~optinsn_t ()
virtual int idaapi func (mblock_t *blk, minsn_t *ins, int optflags)=0
 Optimize an instruction.

Detailed Description

User defined callback to optimize individual microcode instructions.

Constructor & Destructor Documentation

◆ ~optinsn_t()

virtual optinsn_t::~optinsn_t ( )
inlinevirtual

Member Function Documentation

◆ func()

virtual int idaapi optinsn_t::func ( mblock_t * blk,
minsn_t * ins,
int optflags )
pure virtual

Optimize an instruction.

Parameters
blkcurrent basic block. maybe nullptr, which means that the instruction must be optimized without context
insinstruction to optimize; it is always a top-level instruction. the callback may not delete the instruction but may convert it into nop (see mblock_t::make_nop). to optimize sub-instructions, visit them using minsn_visitor_t. sub-instructions may not be converted into nop but can be converted to "mov x,x". for example: add x,0,x => mov x,x this callback may change other instructions in the block, but should do this with care, e.g. to no break the propagation algorithm if called with OPTI_NO_LDXOPT.
optflagscombination of optimization flags bits
Returns
number of changes made to the instruction. if after this call the instruction's use/def lists have changed, you must mark the block level lists as dirty (see mark_lists_dirty)

The documentation for this struct was generated from the following file: