ia32_Minus64Bit needs no contraint copies.
[libfirm] / ir / ir / iropt_t.h
index 196454c..dd79648 100644 (file)
@@ -52,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
@@ -79,7 +78,7 @@ 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);
@@ -102,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;
 
@@ -116,11 +115,16 @@ 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);
 }
 
+/**
+ * returns true if a value becomes zero when converted to mode @p mode
+ */
+bool ir_zero_when_converted(const ir_node *node, ir_mode *dest_mode);
+
 /**
  * Sets the default operations for an ir_op_ops.
  *
@@ -130,38 +134,12 @@ static inline tarval *value_of(const ir_node *n)
  * @return
  *    The operations.
  */
-ir_op_ops *firm_set_default_operations(ir_opcode code, ir_op_ops *ops);
-
-/**
- * Returns true if a == -b
- */
-bool is_negated_value(ir_node *a, ir_node *b);
-
-
-
-/** 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);
+ir_op_ops *firm_set_default_operations(unsigned code, ir_op_ops *ops);
 
-/**
- * Free a Survive DCE environment.
- * NOTE: Survive DCE is considered a bad hack - don't use
- */
-void free_survive_dce(survive_dce_t *sd);
+int ir_mux_is_abs(const ir_node *sel, const ir_node *mux_true,
+                  const ir_node *mux_false);
 
-/**
- * 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);
+ir_node *ir_get_abs_op(const ir_node *sel, ir_node *mux_true,
+                       ir_node *mux_false);
 
 #endif