X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgraph.h;h=1bbe4bb0f0891bb30603f0b799f59790eeab1df1;hb=d2dc2564b47d9c113d7e6e598574e9733627fcca;hp=bb612fd735ce1a5a02424dad5010a9bdc1b7c5d2;hpb=44fec44bd47ef88ae276179866d4a65cda6e0253;p=libfirm diff --git a/ir/ir/irgraph.h b/ir/ir/irgraph.h index bb612fd73..1bbe4bb0f 100644 --- a/ir/ir/irgraph.h +++ b/ir/ir/irgraph.h @@ -210,12 +210,6 @@ void set_irg_end_reg (ir_graph *irg, ir_node *node); ir_node *get_irg_end_except (const ir_graph *irg); void set_irg_end_except (ir_graph *irg, ir_node *node); - -/* @@@ oblivious, no more supported. */ -ir_node *get_irg_cstore (const ir_graph *irg); -void set_irg_cstore (ir_graph *irg, ir_node *node); -/* end oblivious */ - /** Returns the node that represents the frame pointer. */ ir_node *get_irg_frame (const ir_graph *irg); /** Sets the node that represents the frame pointer. */ @@ -270,12 +264,12 @@ long get_irg_graph_nr(ir_graph *irg); /** The states of an ir graph. * - * state phase values: phase_building, phase_high, phase_low. + * state phase values: phase_building, phase_high, phase_low, phase_backend. * * The graph is in phase_building during construction of the irgraph. * The construction is finished by a call to finalize_cons(). * - * Finalize_cons() sets the state to phase_high. All Firm nodes are + * Finalize_cons() sets the state to phase_high. All stadard Firm nodes are * allowed. * * To get the irgraph into phase_low all Sel nodes must be removed and @@ -283,18 +277,23 @@ long get_irg_graph_nr(ir_graph *irg); * type tag nodes must be removed (@@@ really?). Initialization of * memory allocated by Alloc must be explicit. @@@ More conditions? * + * phase_backend is set if architecture specific machine nodes are inserted + * (and probally most standard Firm are removed). */ typedef enum { phase_building, phase_high, - phase_low + phase_low, + phase_backend } irg_phase_state; /** returns the phase_state of an IR graph. */ irg_phase_state get_irg_phase_state (const ir_graph *irg); /** sets the phase state of an IR graph. */ -void set_irg_phase_low(ir_graph *irg); +void set_irg_phase_state(ir_graph *irg, irg_phase_state state); + +#define set_irg_phase_low(irg) set_irg_phase_state(irg, phase_low) /** state: op_pin_state_pinned The graph is "op_pin_state_pinned" if all nodes are associated with a basic block. @@ -317,6 +316,15 @@ typedef enum { irg_outs_state get_irg_outs_state(const ir_graph *irg); void set_irg_outs_inconsistent(ir_graph *irg); +/** state: extended basic block state. */ +typedef enum { + extblk_none = 0, /**< No extended basic block information is constructed. Default. */ + extblk_valid = 1, /**< Extended basic block information is valid. */ + extblk_invalid = 2 /**< Extended basic block information is constructed but invalid. */ +} irg_extblk_state; +irg_extblk_state get_irg_extblk_state(const ir_graph *irg); +void set_irg_extblk_inconsistent(ir_graph *irg); + /** state: dom_state * Signals the state of the dominator / post dominator information. */ @@ -467,6 +475,9 @@ void *get_irg_loc_description(ir_graph *irg, int n); */ unsigned get_irg_estimated_node_cnt(const ir_graph *irg); +/** Returns the last irn index for this graph. */ +unsigned get_irg_last_idx(const ir_graph *irg); + /** * Access custom graph data. * The data must have been registered with