#define _IREXTBB_H_
#include "firm_types.h"
+#include "execfreq.h"
#ifndef _IR_EXTBB_TYPEDEF_
#define _IR_EXTBB_TYPEDEF_
int is_ir_extbb(const void *thing);
/**
- * Compute the extended basic blocks for a graph
+ * Compute the extended basic blocks for a graph.
*/
void compute_extbb(ir_graph *irg);
+/**
+ * Compute the extended basic blocks for a graph based on execution frequencies.
+ */
+void compute_extbb_execfreqs(ir_graph *irg, ir_exec_freq *execfreqs);
+
/**
* free all extended block info.
*/
/**
* Return the extended block of a node.
*
- * @param blk the extended basic block
+ * @param node the node
*/
ir_extblk *get_nodes_extbb(ir_node *node);
/**
* Walks only over reachable Extended Basic Block nodes in the graph.
+ * Ensures, that the extended block containing the End node is visited last
+ * and the block containing Start visited first (in post order).
*
* @param irg - the irg graph
* @param pre - walker function, executed before the predecessor of a block are visited