X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbenode_t.h;h=3e620c4f4176dd8857b4353a355ff144cea6a696;hb=7b2fdea15f812ae2c395540f34c0e722c71e3a82;hp=1b422fdb21b5ad6a033caf4687d0cfbee1a2264f;hpb=47bb27bdaf7c524167169c6208389b0da9410071;p=libfirm diff --git a/ir/be/benode_t.h b/ir/be/benode_t.h index 1b422fdb2..3e620c4f4 100644 --- a/ir/be/benode_t.h +++ b/ir/be/benode_t.h @@ -68,8 +68,8 @@ typedef enum { /** Expresses the direction of the stack pointer increment of IncSP nodes. */ typedef enum { - be_stack_dir_along = 0, - be_stack_dir_against = 1 + be_stack_dir_expand = 0, + be_stack_dir_shrink = 1 } be_stack_dir_t; /** Not used yet. */ @@ -87,8 +87,6 @@ typedef enum { void be_node_init(void); -const arch_irn_handler_t be_node_irn_handler; - enum { be_pos_Spill_frame = 0, be_pos_Spill_val = 1 @@ -162,9 +160,10 @@ entity *be_Call_get_entity(const ir_node *call); void be_Call_set_entity(ir_node *call, entity *ent); enum { - be_pos_Call_mem = 0, - be_pos_Call_sp = 1, - be_pos_Call_ptr = 2 + be_pos_Call_mem = 0, + be_pos_Call_sp = 1, + be_pos_Call_ptr = 2, + be_pos_Call_first_arg = 3 }; ir_node *be_new_Call(ir_graph *irg, ir_node *bl, ir_node *mem, ir_node *sp, ir_node *ptr, int n_outs, int n, ir_node *in[]); @@ -261,15 +260,27 @@ void be_node_set_flags(ir_node *irn, int pos, arch_irn_flags_t flags); void be_node_set_reg_class(ir_node *irn, int pos, const arch_register_class_t *cls); /** - * Insert a Perm node after a specific node in the schedule. - * The Perm permutes over all values live at the given node. - * This means that all liveness intervals are cut apart at this - * location in the program. + * Make a new phi handler. + * @param env The architecture environment. + * @return A new phi handler. */ -ir_node *insert_Perm_after(const arch_env_t *env, - const arch_register_class_t *cls, - dom_front_info_t *dom_front, - ir_node *pos); +arch_irn_handler_t *be_phi_handler_new(const arch_env_t *arch_env); +/** + * Free a phi handler. + * @param handler The handler to free. + */ +void be_phi_handler_free(arch_irn_handler_t *handler); + +/** + * Reset the register data in the phi handler. + * This should be called on each new graph and deletes the register information of the current graph. + */ +void be_phi_handler_reset(arch_irn_handler_t *handler); + +/** + * irn handler for common be nodes. + */ +extern const arch_irn_handler_t be_node_irn_handler; #endif /* _BENODE_T_H */