#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.
* @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.
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;
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;
--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;
}
/**
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);
}
/**
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