verify: Clarify assertion message.
[libfirm] / ir / ir / irgraph_t.h
index c123a68..8fcd796 100644 (file)
@@ -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
 #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