+/**
+ * Return the canonical node computing the same value as n.
+ * Looks up the node in a hash table, enters it in the table
+ * if it isn't there yet.
+ */
+ir_node *identify_remember(pset *value_table, ir_node *n);
+
+/** Visit each node in the value table of a graph. */
+void visit_all_identities(ir_graph *irg, irg_walk_func visit, void *env);
+
+/**
+ * Normalize a node by putting constants (and operands with larger
+ * node index) on the right (operator side).
+ *
+ * @param n The node to normalize
+ */
+void ir_normalize_node(ir_node *n);
+
+ir_node *optimize_node(ir_node *n);
+
+ir_node *optimize_in_place_2(ir_node *n);
+
+/**
+ * The value_of operation.
+ * This operation returns for every IR node an associated tarval if existing,
+ * returning tarval_bad otherwise.
+ * No calculations are done here, just a lookup.
+ */
+typedef tarval *(*value_of_func)(const ir_node *self);
+
+extern value_of_func value_of_ptr;
+
+/**
+ * Set a new value_of function.
+ *
+ * @param func the function, NULL restores the default behavior
+ */
+void set_value_of_func(value_of_func func);
+
+/**
+ * Returns the associated tarval of a node.
+ */
+static inline tarval *
+value_of(const ir_node *n) {
+ return value_of_ptr(n);
+}
+
+/**
+ * Sets the default operations for an ir_op_ops.
+ *
+ * @param code the opcode for the default operation
+ * @param ops the operations initialized
+ *
+ * @return
+ * The operations.
+ */
+ir_op_ops *firm_set_default_operations(ir_opcode code, ir_op_ops *ops);
+
+#endif