X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgraph_t.h;h=8fcd7968c1c58c7631b008de6ef4bac807262411;hb=3db23eee84cbabb3f399f1ca820948114a9c837c;hp=c123a686817901d6414da1d3e7c4abcdf6123a8c;hpb=9f7a1e686bde4ec490e4983a6f4cf204528b90cd;p=libfirm diff --git a/ir/ir/irgraph_t.h b/ir/ir/irgraph_t.h index c123a6868..8fcd7968c 100644 --- a/ir/ir/irgraph_t.h +++ b/ir/ir/irgraph_t.h @@ -21,7 +21,6 @@ * @file * @brief Entry point to the representation of procedure code -- internal header. * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Michael Beck - * @version $Id$ */ #ifndef FIRM_IR_IRGRAPH_T_H #define FIRM_IR_IRGRAPH_T_H @@ -41,8 +40,48 @@ #include "pset.h" #include "set.h" -/** Suffix that is added to every frame type. */ -#define FRAME_TP_SUFFIX "frame_tp" +#define is_ir_graph(thing) is_ir_graph_(thing) +#define get_irg_start_block(irg) get_irg_start_block_(irg) +#define set_irg_start_block(irg, node) set_irg_start_block_(irg, node) +#define get_irg_start(irg) get_irg_start_(irg) +#define set_irg_start(irg, node) set_irg_start_(irg, node) +#define get_irg_end_block(irg) get_irg_end_block_(irg) +#define set_irg_end_block(irg, node) set_irg_end_block_(irg, node) +#define get_irg_end(irg) get_irg_end_(irg) +#define set_irg_end(irg, node) set_irg_end_(irg, node) +#define get_irg_initial_exec(irg) get_irg_initial_exec_(irg) +#define set_irg_initial_exec(irg, node) set_irg_initial_exec_(irg, node) +#define get_irg_frame(irg) get_irg_frame_(irg) +#define set_irg_frame(irg, node) set_irg_frame_(irg, node) +#define get_irg_initial_mem(irg) get_irg_initial_mem_(irg) +#define set_irg_initial_mem(irg, node) set_irg_initial_mem_(irg, node) +#define get_irg_args(irg) get_irg_args_(irg) +#define set_irg_args(irg, node) set_irg_args_(irg, node) +#define get_irg_no_mem(irg) get_irg_no_mem_(irg) +#define set_irn_no_mem(irg, node) set_irn_no_mem_(irg, node) +#define get_irg_entity(irg) get_irg_entity_(irg) +#define set_irg_entity(irg, ent) set_irg_entity_(irg, ent) +#define get_irg_frame_type(irg) get_irg_frame_type_(irg) +#define set_irg_frame_type(irg, ftp) set_irg_frame_type_(irg, ftp) +#define get_irg_pinned(irg) get_irg_pinned_(irg) +#define get_irg_callee_info_state(irg) get_irg_callee_info_state_(irg) +#define set_irg_callee_info_state(irg, s) set_irg_callee_info_state_(irg, s) +#define get_irg_additional_properties(irg) get_irg_additional_properties_(irg) +#define set_irg_additional_properties(irg, m) set_irg_additional_properties_(irg, m) +#define set_irg_additional_property(irg, f) set_irg_additional_property_(irg, f) +#define set_irg_link(irg, thing) set_irg_link_(irg, thing) +#define get_irg_link(irg) get_irg_link_(irg) +#define get_irg_visited(irg) get_irg_visited_(irg) +#define get_irg_block_visited(irg) get_irg_block_visited_(irg) +#define set_irg_block_visited(irg, v) set_irg_block_visited_(irg, v) +#define inc_irg_block_visited(irg) inc_irg_block_visited_(irg) +#define dec_irg_block_visited(irg) dec_irg_block_visited_(irg) +#define get_irg_fp_model(irg) get_irg_fp_model_(irg) +#define get_idx_irn(irg, idx) get_idx_irn_(irg, idx) +#define irg_is_constrained(irg, constraints) irg_is_constrained_(irg, constraints) +#define add_irg_properties(irg, props) add_irg_properties_(irg, props) +#define clear_irg_properties(irg, props) clear_irg_properties_(irg, props) +#define irg_has_properties(irg, props) irg_has_properties_(irg, props) /** * Initializes the graph construction module. @@ -82,10 +121,19 @@ ir_graph *create_irg_copy(ir_graph *irg); * @param irg the IR graph * @param p new pin state */ -void set_irg_pinned(ir_graph *irg, op_pin_state p); +static inline void set_irg_pinned(ir_graph *irg, op_pin_state p) +{ + irg->irg_pinned_state = p; +} /** Returns the obstack associated with the graph. */ -struct obstack *get_irg_obstack(const ir_graph *irg); +static inline struct obstack *get_irg_obstack(ir_graph *const irg) +{ + assert(obstack_object_size(&irg->obst) == 0); + return &irg->obst; +} + + /** * Returns true if the node n is allocated on the storage of graph irg. @@ -217,32 +265,11 @@ static inline void set_irg_frame_type_(ir_graph *irg, ir_type *ftp) irg->frame_type = ftp; } -static inline struct obstack *get_irg_obstack_(const ir_graph *irg) -{ - return irg->obst; -} - - -static inline irg_phase_state get_irg_phase_state_(const ir_graph *irg) -{ - return irg->phase_state; -} - -static inline void set_irg_phase_state_(ir_graph *irg, irg_phase_state state) -{ - irg->phase_state = state; -} - static inline op_pin_state get_irg_pinned_(const ir_graph *irg) { return irg->irg_pinned_state; } -static inline void set_irg_pinned_(ir_graph *irg, op_pin_state p) -{ - irg->irg_pinned_state = p; -} - static inline irg_callee_info_state get_irg_callee_info_state_(const ir_graph *irg) { return irg->callee_info_state; @@ -260,37 +287,6 @@ static inline void set_irg_callee_info_state_(ir_graph *irg, irg_callee_info_sta set_irp_callee_info_state(s); } -static inline irg_inline_property get_irg_inline_property_(const ir_graph *irg) -{ - return irg->inline_property; -} - -static inline void set_irg_inline_property_(ir_graph *irg, irg_inline_property s) -{ - irg->inline_property = s; -} - -static inline mtp_additional_properties get_irg_additional_properties_(const ir_graph *irg) -{ - if (irg->additional_properties & mtp_property_inherited) - return get_method_additional_properties(get_entity_type(irg->ent)); - return irg->additional_properties; -} - -static inline void set_irg_additional_properties_(ir_graph *irg, mtp_additional_properties mask) -{ - irg->additional_properties = mask & ~mtp_property_inherited; -} - -static inline void add_irg_additional_properties_(ir_graph *irg, mtp_additional_properties flag) -{ - mtp_additional_properties prop = irg->additional_properties; - - if (prop & mtp_property_inherited) - prop = get_method_additional_properties(get_entity_type(irg->ent)); - irg->additional_properties = prop | flag; -} - static inline void set_irg_link_(ir_graph *irg, void *thing) { irg->link = thing; @@ -326,30 +322,34 @@ static inline void dec_irg_block_visited_(ir_graph *irg) --irg->block_visited; } -static inline unsigned get_irg_estimated_node_cnt_(const ir_graph *irg) -{ - return irg->estimated_node_count; -} - /* Return the floating point model of this graph. */ static inline unsigned get_irg_fp_model_(const ir_graph *irg) { return irg->fp_model; } -static inline void set_irg_state_(ir_graph *irg, ir_graph_state_t state) +static inline int irg_is_constrained_(const ir_graph *irg, + ir_graph_constraints_t constraints) +{ + return (irg->constraints & constraints) == constraints; +} + +static inline void add_irg_properties_(ir_graph *irg, + ir_graph_properties_t props) { - irg->state = (ir_graph_state_t) (irg->state | state); + irg->properties |= props; } -static inline void clear_irg_state_(ir_graph *irg, ir_graph_state_t state) +static inline void clear_irg_properties_(ir_graph *irg, + ir_graph_properties_t props) { - irg->state = (ir_graph_state_t) (irg->state & ~state); + irg->properties &= ~props; } -static inline int is_irg_state_(const ir_graph *irg, ir_graph_state_t state) +static inline int irg_has_properties_(const ir_graph *irg, + ir_graph_properties_t props) { - return (irg->state & state) == state; + return (irg->properties & props) == props; } /** @@ -380,7 +380,7 @@ static inline void irg_kill_node(ir_graph *irg, ir_node *n) if (idx + 1 == irg->last_node_idx) --irg->last_node_idx; irg->idx_irn_map[idx] = NULL; - obstack_free(irg->obst, n); + obstack_free(&irg->obst, n); } /** @@ -420,54 +420,4 @@ static inline void set_irg_anchor(ir_graph *irg, int idx, ir_node *irn) set_irn_n(irg->anchor, idx, irn); } - -#define is_ir_graph(thing) is_ir_graph_(thing) -#define get_irg_start_block(irg) get_irg_start_block_(irg) -#define set_irg_start_block(irg, node) set_irg_start_block_(irg, node) -#define get_irg_start(irg) get_irg_start_(irg) -#define set_irg_start(irg, node) set_irg_start_(irg, node) -#define get_irg_end_block(irg) get_irg_end_block_(irg) -#define set_irg_end_block(irg, node) set_irg_end_block_(irg, node) -#define get_irg_end(irg) get_irg_end_(irg) -#define set_irg_end(irg, node) set_irg_end_(irg, node) -#define get_irg_initial_exec(irg) get_irg_initial_exec_(irg) -#define set_irg_initial_exec(irg, node) set_irg_initial_exec_(irg, node) -#define get_irg_frame(irg) get_irg_frame_(irg) -#define set_irg_frame(irg, node) set_irg_frame_(irg, node) -#define get_irg_initial_mem(irg) get_irg_initial_mem_(irg) -#define set_irg_initial_mem(irg, node) set_irg_initial_mem_(irg, node) -#define get_irg_args(irg) get_irg_args_(irg) -#define set_irg_args(irg, node) set_irg_args_(irg, node) -#define get_irg_no_mem(irg) get_irg_no_mem_(irg) -#define set_irn_no_mem(irg, node) set_irn_no_mem_(irg, node) -#define get_irg_entity(irg) get_irg_entity_(irg) -#define set_irg_entity(irg, ent) set_irg_entity_(irg, ent) -#define get_irg_frame_type(irg) get_irg_frame_type_(irg) -#define set_irg_frame_type(irg, ftp) set_irg_frame_type_(irg, ftp) -#define get_irg_obstack(irg) get_irg_obstack_(irg) -#define get_irg_phase_state(irg) get_irg_phase_state_(irg) -#define set_irg_phase_state(irg, state) set_irg_phase_state_(irg, state) -#define get_irg_pinned(irg) get_irg_pinned_(irg) -#define set_irg_pinned(irg, p) set_irg_pinned_(irg, p) -#define get_irg_callee_info_state(irg) get_irg_callee_info_state_(irg) -#define set_irg_callee_info_state(irg, s) set_irg_callee_info_state_(irg, s) -#define get_irg_inline_property(irg) get_irg_inline_property_(irg) -#define set_irg_inline_property(irg, s) set_irg_inline_property_(irg, s) -#define get_irg_additional_properties(irg) get_irg_additional_properties_(irg) -#define set_irg_additional_properties(irg, m) set_irg_additional_properties_(irg, m) -#define set_irg_additional_property(irg, f) set_irg_additional_property_(irg, f) -#define set_irg_link(irg, thing) set_irg_link_(irg, thing) -#define get_irg_link(irg) get_irg_link_(irg) -#define get_irg_visited(irg) get_irg_visited_(irg) -#define get_irg_block_visited(irg) get_irg_block_visited_(irg) -#define set_irg_block_visited(irg, v) set_irg_block_visited_(irg, v) -#define inc_irg_block_visited(irg) inc_irg_block_visited_(irg) -#define dec_irg_block_visited(irg) dec_irg_block_visited_(irg) -#define get_irg_estimated_node_cnt(irg) get_irg_estimated_node_cnt_(irg) -#define get_irg_fp_model(irg) get_irg_fp_model_(irg) -#define get_idx_irn(irg, idx) get_idx_irn_(irg, idx) -#define set_irg_state(irg, state) set_irg_state_(irg, state) -#define clear_irg_state(irg, state) clear_irg_state_(irg, state) -#define is_irg_state(irg, state) is_irg_state_(irg, state) - #endif