reset node index on dead node elimination
[libfirm] / ir / ir / iropt_t.h
index eb3bdff..29d3b3b 100644 (file)
@@ -23,6 +23,7 @@
 
 # include "pset.h"
 # include "iropt.h"
+# include "tv.h"
 
 ir_node *equivalent_node (ir_node *n);
 
@@ -38,9 +39,22 @@ ir_node *optimize_node (ir_node *n);
 
 ir_node *optimize_in_place_2 (ir_node *n);
 
-/* Calculate a hash value of a node. */
+/** Calculate a hash value of a node. */
 unsigned ir_node_hash (ir_node *node);
 
+/**
+ * Compare function for two nodes in the hash table. Gets two
+ * nodes as parameters.  Returns 0 if the nodes are a cse.
+ */
+int identities_cmp(const void *elt, const void *key);
+
+/**
+ * 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);
+
 /**
  * Returns the tarval of a Const node or tarval_bad for all other nodes.
  */
@@ -53,8 +67,14 @@ value_of(ir_node *n) {
 }
 
 /**
- * set the default ir op operations
+ * Sets the default operation for an ir_op_ops.
+ *
+ * @param code   the opcode for the default operation
+ * @param ops    the operations initialized
+ *
+ * @return
+ *    The operations.
  */
-ir_op *firm_set_default_operations(ir_op *op);
+ir_op_ops *firm_set_default_operations(opcode code, ir_op_ops *ops);
 
 # endif /* _IROPT_T_H_ */