X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fcommon%2Firtools.h;h=2d9461158db77607950b1efb1586dc9887c4883a;hb=7b9845d0fd8dca046df792801e1565b54582287d;hp=c2492acef912ce6067d21246126329c7be599e78;hpb=24c7b6c8648b4238032e0d8b0063da79eae71881;p=libfirm diff --git a/ir/common/irtools.h b/ir/common/irtools.h index c2492acef..2d9461158 100644 --- a/ir/common/irtools.h +++ b/ir/common/irtools.h @@ -6,11 +6,11 @@ * Modified by: * Created: * CVS-ID: $Id$ - * Copyright: (c) 1999-2005 Universität Karlsruhe + * Copyright: (c) 1999-2006 Universität Karlsruhe * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. */ -#ifndef _IRTOOLS_H_ -#define _IRTOOLS_H_ +#ifndef _FIRM_COMMON_IRTOOLS_H_ +#define _FIRM_COMMON_IRTOOLS_H_ #include "firm_config.h" #include "firm_types.h" @@ -20,6 +20,8 @@ lc_opt_entry_t *firm_opt_get_root(void); #endif +#include "pset.h" + #undef MIN #undef MAX #define MAX(x, y) ((x) > (y) ? (x) : (y)) @@ -31,7 +33,7 @@ lc_opt_entry_t *firm_opt_get_root(void); * @param d Another number. * @return 0 if c == d, -1 if c < d, 1 if c > d. */ -#define CMP(c, d) (((c) > (d)) - ((c) < (d))) +#define QSORT_CMP(c, d) (((c) > (d)) - ((c) < (d))) /** @@ -44,6 +46,11 @@ lc_opt_entry_t *firm_opt_get_root(void); */ #define PTR_TO_INT(v) ((int)((char *)(v) - (char *)0)) +/** + * Dump a pset containing Firm objects. + */ +void firm_pset_dump(pset *set); + /** * The famous clear_link() walker-function. * Do not implement it by yourself, use this one @@ -63,4 +70,15 @@ void firm_clear_link(ir_node *n, void *env); */ void copy_irn_to_irg(ir_node *n, ir_graph *irg); -#endif /* _IRTOOLS_H_ */ +/** + * Creates an exact copy of a node. + * The copy resists on the same graph in the same block. + * + * @param n the node to copy + * + * @note If the copy is not changed, the next CSE operation will + * replace it by the original, so beware. + */ +ir_node *exact_copy(const ir_node *n); + +#endif /* _FIRM_COMMON_IRTOOLS_H_ */