X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Fircons_t.h;h=46066ccef310d9a27b75e2a1e3c59065eb9b9c09;hb=f250d98f949371038744bd320096fa98f4b218fe;hp=80353cb32aae3d7f4c3fa31d76bdee93832a5e69;hpb=a142727aca4ef56cf754045fc0129b6d1b840a63;p=libfirm diff --git a/ir/ir/ircons_t.h b/ir/ir/ircons_t.h index 80353cb32..46066ccef 100644 --- a/ir/ir/ircons_t.h +++ b/ir/ir/ircons_t.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -38,22 +38,46 @@ * * @see uninitialized_local_variable_func_t */ -void init_cons(uninitialized_local_variable_func_t *func); +void firm_init_cons(uninitialized_local_variable_func_t *func); -/* inline functions */ - -static INLINE ir_node * -_new_d_Bad(void) { - return current_ir_graph->anchors[anchor_bad]; -} +/** + * Creates a new Anchor node. + */ +ir_node *new_Anchor(ir_graph *irg); -static INLINE ir_node * -_new_d_NoMem(void) { - return current_ir_graph->anchors[anchor_no_mem]; -} +/** + * Allocate a frag array for a node if the current graph state is phase_building. + * + * @param irn the node for which the frag array should be allocated + * @param op the opcode of the (original) node, if does not match opcode of irn, + * nothing is done + * @param frag_store the address of the frag store in irn attributes, if this + * address contains a value != NULL, does nothing + */ +void firm_alloc_frag_arr(ir_node *irn, ir_op *op, ir_node ***frag_store); +/** + * Restarts SSA construction on the given graph with n_loc + * new values. + * + * @param irg the graph on which the SSA construction is restarted + * @param n_loc number of new variables + * + * After this function is complete, the graph is in phase_building + * again and set_value()/get_value() and mature_block() can be used + * to construct new values. + * + * @note do not use get_mem()/set_mem() they will build a new memory + * instead of modifying the old one which might be not what you expect... + */ +void ssa_cons_start(ir_graph *irg, int n_loc); -#define new_d_Bad() _new_d_Bad() -#define new_d_NoMem() _new_d_NoMem() +/** + * Finalize the (restarted) SSA construction. Matures all blocks that are + * not matured yet and reset the graph state to phase_high. + * + * @param irg the graph on which the SSA construction was restarted + */ +void ssa_cons_finish(ir_graph *irg); #endif