X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firopt_t.h;h=dd7964888c4076357f6f88dc80ba0e892b13e35a;hb=af82344c3d1ede9a28e652302a8c2bac7bb1c743;hp=196454ca001ee6bd00488d897fc4f5a22b1db6f1;hpb=94e9283b212f0f10b460248de945576a0bb61703;p=libfirm diff --git a/ir/ir/iropt_t.h b/ir/ir/iropt_t.h index 196454ca0..dd7964888 100644 --- a/ir/ir/iropt_t.h +++ b/ir/ir/iropt_t.h @@ -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