+/**
+ * Creates an ir_graph pass for shape_blocks().
+ *
+ * @param name the name of this pass or NULL
+ *
+ * @return the newly created ir_graph pass
+ */
+ir_graph_pass_t *shape_blocks_pass(const char *name);
+
+/**
+ * Perform loop inversion on a given graph.
+ * Loop inversion transform a head controlled loop (like while(...) {} and
+ * for(...) {}) into a foot controlled loop (do {} while(...)).
+ */
+void do_loop_inversion(ir_graph *irg);
+
+/**
+ * Perform loop peeling on a given graph.
+ */
+void do_loop_peeling(ir_graph *irg);
+
+typedef ir_type *(*get_Alloc_func)(ir_node *n);
+/** Set a new get_Alloc_func and returns the old one. */
+get_Alloc_func firm_set_Alloc_func(get_Alloc_func newf);
+