X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbetranshlp.h;h=d91bae7f1985fdf5e6621dadc0e7259706116359;hb=3ea349549afe95a9bc04cff82edf10c23ab0ba48;hp=e0be48a95a17689dd10f55447e7e2e31224834dc;hpb=6322e3310a2da6f19fba3aa1017a9c84d45266fd;p=libfirm diff --git a/ir/be/betranshlp.h b/ir/be/betranshlp.h index e0be48a95..d91bae7f1 100644 --- a/ir/be/betranshlp.h +++ b/ir/be/betranshlp.h @@ -64,6 +64,13 @@ void be_dep_on_frame(ir_node *node); */ ir_node *be_duplicate_node(ir_node *node); +/** clear transform functions and sets some virtual nodes like + * Start, Sync, Pin to the duplication transformer */ +void be_start_transform_setup(void); + +/** register a transform function for a specific node type */ +void be_set_transform_function(ir_op *op, be_transform_func func); + /** * Associate an old node with a transformed node. Uses link field. */ @@ -82,6 +89,14 @@ void be_enqueue_preds(ir_node *node); /** * Transform a graph. Transformers must be registered first. */ -void be_transform_graph(be_irg_t *birg, arch_pretrans_nodes *func); +void be_transform_graph(ir_graph *irg, arch_pretrans_nodes *func); + +/** + * If Mux(sel, t, f) represents an Abs return 1, if it represents -Abs return + * -1, otherwise 0 + */ +int be_mux_is_abs(ir_node *sel, ir_node *mux_true, ir_node *mux_false); + +ir_node *be_get_abs_op(ir_node *sel); -#endif /* FIRM_BE_BETRANSHLP_H */ +#endif