+be_lv_t *be_liveness(const struct be_irg_t *birg);
+
+/**
+ * Check the given liveness information against a freshly computed one.
+ */
+void be_liveness_check(be_lv_t *lv);
+
+/**
+ * Free the liveness information.
+ */
+void be_liveness_free(be_lv_t *lv);
+
+/**
+ * Recompute the complete liveness information.
+ */
+void be_liveness_recompute(be_lv_t *lv);
+
+/**
+ * Update the liveness information for a single node.
+ * It is irrelevant if there is liveness information present for the node.
+ * The liveness information for the node is firstly deleted and then recomputed.
+ * If the node is fresh and never recorded inf the liveness information before,
+ * it is more efficient to call be_liveness_introduce().
+ */
+void be_liveness_update(be_lv_t *lv, ir_node *irn);
+
+/**
+ * Remove a node from the liveness information.
+ */
+void be_liveness_remove(be_lv_t *lv, const ir_node *irn);
+
+/**
+ * Introduce a new node to the liveness information.
+ * The new irn is not deleted from any block's liveness information, so it must be fresh!
+ * @param lv The liveness info.
+ * @param irn The node.
+ */
+void be_liveness_introduce(be_lv_t *lv, ir_node *irn);
+
+/**
+ * Add all nodes which are missing in the current liveness data.
+ * The liveness data of the already existing nodes (in the liveness data) is not touched.
+ * @param The liveness info.
+ */
+void be_liveness_add_missing(be_lv_t *lv);