-/**
- * Symbolic names for the different dumping colors.
- */
-typedef enum ird_color_t {
- ird_color_prog_background,
- ird_color_block_background,
- ird_color_dead_block_background,
- ird_color_block_inout,
- ird_color_default_node,
- ird_color_phi,
- ird_color_memory,
- ird_color_controlflow,
- ird_color_const,
- ird_color_anchor,
- ird_color_proj,
- ird_color_uses_memory,
- ird_color_error,
- ird_color_entity,
- ird_color_count
-} ird_color_t;
-
-/**
- * Edge kinds.
- */
-typedef enum {
- data_edge = 0x01, /**< A data edge between two basic blocks. */
- block_edge = 0x02, /**< An edge from a node to its basic block. */
- cf_edge = 0x03, /**< A regularly control flow edge. */
- exc_cf_edge = 0x04, /**< An exceptional control flow edge. */
- mem_edge = 0x05, /**< A memory edge. */
- dominator_edge = 0x06, /**< A dominator edge from a block to its immediate dominator. */
- node2type_edge = 0x07, /**< An edge from an IR node to a type. */
-
- ent_type_edge = 0x11, /**< An edge from an entity to its type. */
- ent_own_edge = 0x12, /**< An edge from an entity to its owner type. */
- ent_overwrites_edge = 0x13, /**< An edge from an entity to the entity it overwrites. */
- ent_value_edge = 0x14, /**< An edge from an entity to its value entity. */
- ent_corr_edge = 0x15, /**< An edge from an entity to the member entity its initializes. */
-
- meth_par_edge = 0x21, /**< An edge from a method type to one of its parameter types. */
- meth_res_edge = 0x22, /**< An edge from a method type to one of its result types. */
- type_super_edge = 0x23, /**< An edge from a class type to its super/basis type. */
- union_edge = 0x24, /**< An edge from a union type to its member types. */
- ptr_pts_to_edge = 0x25, /**< An edge from a pointer type to its points-to type. */
- arr_elt_type_edge = 0x26, /**< An edge from an array type to its element type. */
- arr_ent_edge = 0x27, /**< An edge from a array type to its element entity. */
- type_member_edge = 0x28, /**< An edge from a compound type to its member entities. */
-
- /* additional flags */
- intra_edge = 0, /**< Intra edge flag: edge do not cross basic block boundaries */
- inter_edge = 0x40, /**< Inter edge flag: edge cross basic block boundaries */
- back_edge = 0x80 /**< Backwards edge flag. */
-} edge_kind;
-
-/* **************************************************************************** */
-/* GRAPH DUMPERS */
-/* **************************************************************************** */
-
-/**
- * This hook is called to insert some special nodes into dumped graph
- */
-typedef int (*DUMP_IR_GRAPH_FUNC)(FILE *F, ir_graph *irg);
-/**
- * This hook is called to dump the vcg attributes of a node to a file.
- * If this function returns zero, the default attributes are added, else
- * removed.
- */
-typedef int (*DUMP_NODE_VCGATTR_FUNC)(FILE *F, ir_node *node, ir_node *local);
-/**
- * This hook is called to dump the vcg attributes of an edge to a file.
- * If this function returns zero, the default attributes are added, else
- * removed.
- */
-typedef int (*DUMP_EDGE_VCGATTR_FUNC)(FILE *F, ir_node *node, int to);
-
-/** Set the ir graph dump hook. */
-FIRM_DLL void set_dump_ir_graph_hook(DUMP_IR_GRAPH_FUNC hook);
-/** Set the node_vcgattr hook. */
-FIRM_DLL void set_dump_node_vcgattr_hook(DUMP_NODE_VCGATTR_FUNC hook);
-/** Set the edge_vcgattr hook. */
-FIRM_DLL void set_dump_edge_vcgattr_hook(DUMP_EDGE_VCGATTR_FUNC hook);
-
-typedef int (*DUMP_NODE_EDGE_FUNC)(FILE *f, ir_node *node);
-
-/**
- * Set the hook to be called to dump additional edges to a node.
- * @param func The hook to be called.
- */
-FIRM_DLL void set_dump_node_edge_hook(DUMP_NODE_EDGE_FUNC func);
-
-/**
- * Get the additional edge dump hook.
- * @return The current additional edge dump hook.]
- */
-FIRM_DLL DUMP_NODE_EDGE_FUNC get_dump_node_edge_hook(void);
-
-/**
- * Set the hook to be called to dump additional edges to a block.
- * @param func The hook to be called.
- */
-FIRM_DLL void set_dump_block_edge_hook(DUMP_NODE_EDGE_FUNC func);
-
-/**
- * Get the additional block edge dump hook.
- * @return The current additional block edge dump hook.
- */
-FIRM_DLL DUMP_NODE_EDGE_FUNC get_dump_block_edge_hook(void);
-
-/** Dump a firm graph.