IDA C++ SDK 9.2
Loading...
Searching...
No Matches
mbl_graph_t Class Reference

Control flow graph of microcode. More...

#include <hexrays.hpp>

Inheritance diagram for mbl_graph_t:
simple_graph_t gdl_graph_t

Public Member Functions

bool is_ud_chain_dirty (gctype_t gctype)
 Is the use-def chain of the specified kind dirty?
bool is_du_chain_dirty (gctype_t gctype)
 Is the def-use chain of the specified kind dirty?
int get_chain_stamp () const
graph_chains_t *hexapi get_ud (gctype_t gctype)
 Get use-def chains.
graph_chains_t *hexapi get_du (gctype_t gctype)
 Get def-use chains.
bool is_redefined_globally (const mlist_t &list, int b1, int b2, const minsn_t *m1, const minsn_t *m2, maymust_t maymust=MAY_ACCESS) const
 Is LIST redefined in the graph?
bool is_used_globally (const mlist_t &list, int b1, int b2, const minsn_t *m1, const minsn_t *m2, maymust_t maymust=MAY_ACCESS) const
 Is LIST used in the graph?
mblock_tget_mblock (int n) const
Public Member Functions inherited from simple_graph_t
 HEXRAYS_MEMORY_ALLOCATION_FUNCS () virtual bool ignore_edge(int
void hexapi compute_dominators (array_of_node_bitset_t &domin, bool post=false) const
void hexapi compute_immediate_dominators (const array_of_node_bitset_t &domin, intvec_t &idomin, bool post=false) const
int hexapi depth_first_preorder (node_ordering_t *pre) const
int hexapi depth_first_postorder (node_ordering_t *post) const
void depth_first_postorder (node_ordering_t *post, edge_mapper_t *et) const
void depth_first_postorder_for_all_entries (node_ordering_t *post) const
intvec_t find_dead_nodes () const
void find_reaching_nodes (int n, node_bitset_t &reaching) const
bool path_exists (int m, int n) const
bool path_back (const array_of_node_bitset_t &domin, int m, int n) const
bool path_back (const edge_mapper_t &et, int m, int n) const
iterator begin () const
iterator end () const
int front () const
void inc (iterator &p, int n=1) const
virtual int hexapi goup (int node) const newapi
Public Member Functions inherited from gdl_graph_t
 DEFINE_MEMORY_ALLOCATION_FUNCS () virtual ~gdl_graph_t()
virtual char *idaapi get_node_label (char *iobuf, int iobufsize, int n) const
virtual void idaapi print_graph_attributes (FILE *fp) const
virtual bool idaapi print_node (FILE *fp, int n) const
virtual bool idaapi print_edge (FILE *fp, int i, int j) const
virtual void idaapi print_node_attributes (FILE *fp, int n) const
virtual int idaapi size (void) const =0
virtual int idaapi node_qty (void) const
virtual bool idaapi exists (int node) const
virtual int idaapi entry (void) const
virtual int idaapi exit (void) const
virtual int idaapi nsucc (int node) const =0
virtual int idaapi npred (int node) const =0
virtual int idaapi succ (int node, int i) const =0
virtual int idaapi pred (int node, int i) const =0
virtual bool idaapi empty (void) const
virtual bgcolor_t idaapi get_node_color (int n) const
virtual bgcolor_t idaapi get_edge_color (int i, int j) const
void idaapi gen_gdl (FILE *fp) const
void idaapi gen_gdl (const char *file) const
size_t idaapi nedge (int node, bool ispred) const
int idaapi edge (int node, int i, bool ispred) const
int idaapi front (void)
node_iterator idaapi begin (void) const
node_iterator idaapi end (void) const
bool idaapi path_exists (int m, int n) const
void idaapi gen_dot (FILE *fp) const
void idaapi gen_dot (const char *file) const

Additional Inherited Members

Public Types inherited from simple_graph_t
typedef iterator const_iterator
Public Attributes inherited from simple_graph_t
qstring title
bool colored_gdl_edges = false
int const newapi { return false
Protected Member Functions inherited from simple_graph_t
void calc_outgoing_edges (const intvec_t &sub, edgevec_t &el) const
void compute_dominator_info (struct dominator_info_t &di)
bool is_connected_without (const edge_t &forbidden_edge, const intvec_t &dead_nodes) const

Detailed Description

Control flow graph of microcode.

Member Function Documentation

◆ is_ud_chain_dirty()

bool mbl_graph_t::is_ud_chain_dirty ( gctype_t gctype)
inline

Is the use-def chain of the specified kind dirty?

◆ is_du_chain_dirty()

bool mbl_graph_t::is_du_chain_dirty ( gctype_t gctype)
inline

Is the def-use chain of the specified kind dirty?

◆ get_chain_stamp()

int mbl_graph_t::get_chain_stamp ( ) const
inline

◆ get_ud()

graph_chains_t * mbl_graph_t::get_ud ( gctype_t gctype)
inline

Get use-def chains.

◆ get_du()

graph_chains_t * mbl_graph_t::get_du ( gctype_t gctype)
inline

Get def-use chains.

◆ is_redefined_globally()

bool mbl_graph_t::is_redefined_globally ( const mlist_t & list,
int b1,
int b2,
const minsn_t * m1,
const minsn_t * m2,
maymust_t maymust = MAY_ACCESS ) const
inline

Is LIST redefined in the graph?

◆ is_used_globally()

bool mbl_graph_t::is_used_globally ( const mlist_t & list,
int b1,
int b2,
const minsn_t * m1,
const minsn_t * m2,
maymust_t maymust = MAY_ACCESS ) const
inline

Is LIST used in the graph?

◆ get_mblock()

mblock_t * mbl_graph_t::get_mblock ( int n) const
inline

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