fix more size_t warnings
[libfirm] / ir / ir / iropt_t.h
index 93267ae..93a3ea1 100644 (file)
@@ -26,6 +26,7 @@
 #ifndef FIRM_IR_IROPT_T_H
 #define FIRM_IR_IROPT_T_H
 
+#include <stdbool.h>
 #include "irop_t.h"
 #include "iropt.h"
 #include "irnode_t.h"
@@ -51,21 +52,20 @@ ir_node *equivalent_node(ir_node *n);
 /**
  * Creates a new value table used for storing CSE identities.
  * The value table is used to identify common expressions.
- *
  */
-pset *new_identities(void);
+void new_identities(ir_graph *irg);
 
 /**
  * Deletes a identities value table.
  *
  * @param value_table  the identity set
  */
-void del_identities(pset *value_table);
+void del_identities(ir_graph *irg);
 
 /**
  * Add a node to the identities value table.
  */
-void add_identities(pset *value_table, ir_node *node);
+void add_identities(ir_node *node);
 
 /**
  * Compare function for two nodes in the hash table. Gets two
@@ -78,11 +78,19 @@ int identities_cmp(const void *elt, const void *key);
  * 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);
+ir_node *identify_remember(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);
@@ -93,7 +101,7 @@ ir_node *optimize_in_place_2(ir_node *n);
  * returning tarval_bad otherwise.
  * No calculations are done here, just a lookup.
  */
-typedef tarval *(*value_of_func)(const ir_node *self);
+typedef ir_tarval *(*value_of_func)(const ir_node *self);
 
 extern value_of_func value_of_ptr;
 
@@ -107,8 +115,8 @@ 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) {
+static inline ir_tarval *value_of(const ir_node *n)
+{
        return value_of_ptr(n);
 }
 
@@ -121,6 +129,31 @@ value_of(const ir_node *n) {
  * @return
  *    The operations.
  */
-ir_op_ops *firm_set_default_operations(ir_opcode code, ir_op_ops *ops);
+ir_op_ops *firm_set_default_operations(unsigned code, ir_op_ops *ops);
+
+/** NOTE: Survive DCE is considered a bad hack - don't use */
+typedef struct survive_dce_t survive_dce_t;
+
+/**
+ * Make a new Survive DCE environment.
+ * NOTE: Survive DCE is considered a bad hack - don't use
+ */
+survive_dce_t *new_survive_dce(void);
+
+/**
+ * Free a Survive DCE environment.
+ * NOTE: Survive DCE is considered a bad hack - don't use
+ */
+void free_survive_dce(survive_dce_t *sd);
+
+/**
+ * Register a node pointer to be patched upon DCE.
+ * When DCE occurs, the node pointer specified by @p place will be
+ * patched to the new address of the node it is pointing to.
+ *
+ * @param sd    The Survive DCE environment.
+ * @param place The address of the node pointer.
+ */
+void survive_dce_register_irn(survive_dce_t *sd, ir_node **place);
 
 #endif