#include "firm_types.h"
#include "pset.h"
-#include "bearch_t.h"
+#include "bearch.h"
#ifdef _MSC_VER
typedef __int64 long64;
*/
pset *be_empty_set(void);
-/** Undefine this to disable debugging mode. */
-#define BE_DEBUG 1
-
/**
* Convenient block getter.
* Works also, if the given node is a block.
return is_Block(irn) ? irn : get_nodes_block(irn);
}
-static inline int is_firm_be_mode(const ir_mode *mode)
-{
- return mode_is_data(mode);
-}
-
/**
* Check, if a node produces or consumes a data value.
* If it does, it is significant for scheduling and register allocation.
int i, n;
/* If the node produces a data value, return immediately. */
- if (is_firm_be_mode(get_irn_mode(irn)))
+ if (mode_is_data(get_irn_mode(irn)))
return 1;
/* else check, if it takes a data value, if that is so, return */
for(i = 0, n = get_irn_arity(irn); i < n; ++i) {
ir_node *op = get_irn_n(irn, i);
- if (is_firm_be_mode(get_irn_mode(op)))
+ if (mode_is_data(get_irn_mode(op)))
return 1;
}
*/
ir_node *be_get_Proj_for_pn(const ir_node *irn, long pn);
+/**
+ * Returns an array (an ARR_F) of the programs blocks in reverse postorder
+ * (note: caller has to free the memory with DEL_ARR_F after use;
+ * of course you can use ARR_LEN on the array too.)
+ */
+ir_node **be_get_cfgpostorder(ir_graph *irg);
+
/**
* Opens a file named base.ext with the mode mode.
*/