X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeutil.h;h=c11eac3f05bf2398f17d8af655b2888b21b4fd71;hb=712cea35fe399ae20e3a33eb9bf81360b5000cf3;hp=1f6e7d3f4b481031064c88b7687cb967dfa644c3;hpb=fd36bead18e3a2d5d6d5b9129c15c1c959e8c8a7;p=libfirm diff --git a/ir/be/beutil.h b/ir/be/beutil.h index 1f6e7d3f4..c11eac3f0 100644 --- a/ir/be/beutil.h +++ b/ir/be/beutil.h @@ -2,13 +2,21 @@ #ifndef _BEUTIL_H #define _BEUTIL_H +#include "firm_config.h" + #include +#include "pset.h" #include "irnode.h" -#include "config.h" - #include "bearch.h" +/** + * Get an empty set. + * This function always returns the same set. + */ +pset *be_empty_set(void); + + /** Undefine this to disable debugging mode. */ #define BE_DEBUG 1 @@ -21,7 +29,7 @@ */ static INLINE const ir_node *get_block(const ir_node *irn) { - return is_Block(irn) ? irn : get_nodes_block(irn); + return is_Block(irn) ? irn : get_nodes_block(irn); } static INLINE int is_firm_be_mode(const ir_mode *mode) @@ -93,4 +101,27 @@ static INLINE FILE *ffopen(const char *base, const char *ext, const char *mode) */ void dump_ir_block_graph_sched(ir_graph *irg, const char *suffix); -#endif +/** + * Dump a extended block graph with schedule edges. + * @param irg The graph. + * @param suffix A suffix to its file name. + */ +void dump_ir_extblock_graph_sched(ir_graph *irg, const char *suffix); + +/** + * Dumps a graph and numbers all dumps. + * @param irg The graph + * @param suffix A suffix to its file name. + * @param dumper The dump function + */ +void be_dump(ir_graph *irg, const char *suffix, void (*dumper)(ir_graph *, const char *)); + + +#endif /* _BEUTIL_H */ + +/** + * Search for an irn in @p accept. + * The search is started at @p start_point_exclusive and continues upwards the dom-tree + * @return The first node out of accept if found. Else NULL is returned. + */ +ir_node *dom_up_search(pset *accept, ir_node *start_point_exclusive);