BugFix: TLS variables are Sels, not SymConst
[libfirm] / ir / ana / irextbb.h
index 18f0676..472fe03 100644 (file)
@@ -21,6 +21,7 @@
 #define _IREXTBB_H_
 
 #include "firm_types.h"
+#include "execfreq.h"
 
 #ifndef _IR_EXTBB_TYPEDEF_
 #define _IR_EXTBB_TYPEDEF_
@@ -47,10 +48,21 @@ typedef void extbb_walk_func(ir_extblk *blk, void *env);
 #endif
 
 /**
- * Compute the extended basic blocks for a graph
+ * Checks whether a pointer points to a extended basic block.
+ * Intern version for libFirm.
+ */
+int is_ir_extbb(const void *thing);
+
+/**
+ * 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.
  */
@@ -59,7 +71,7 @@ void free_extbb(ir_graph *irg);
 /**
  * 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);
 
@@ -163,6 +175,8 @@ void irg_extblock_walk(ir_extblk *blk, extbb_walk_func *pre, extbb_walk_func *po
 
 /**
  * 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