#include "array.h"
+/* Inline functions. */
+#define get_irp_n_irgs() get_irp_n_irgs_()
+#define get_irp_irg(pos) get_irp_irg_(pos)
+#define get_irp_n_types() get_irp_n_types_()
+#define get_irp_type(pos) get_irp_type_(pos)
+#define get_const_code_irg() get_const_code_irg_()
+#define get_segment_type(s) get_segment_type_(s)
+#define get_glob_type() get_glob_type_()
+#define get_tls_type() get_tls_type_()
+#define get_irp_next_label_nr() get_irp_next_label_nr_()
+
/* inline functions */
static inline ir_type *get_segment_type_(ir_segment_t segment)
{
static inline size_t get_irp_n_irgs_(void)
{
- assert(irp && irp->graphs);
return ARR_LEN(irp->graphs);
}
static inline size_t get_irp_n_types_(void)
{
- assert(irp && irp->types);
return ARR_LEN(irp->types);
}
static inline ir_type *get_irp_type_(size_t pos)
{
- assert(irp->types);
assert(pos < ARR_LEN(irp->types));
/* Don't set the skip_tid result so that no double entries are generated. */
return irp->types[pos];
/** Returns a new, unique number to number nodes or the like. */
static inline long get_irp_new_node_nr(void)
{
- assert(irp);
return irp->max_node_nr++;
}
static inline size_t get_irp_new_irg_idx(void)
{
- assert(irp);
return irp->max_irg_idx++;
}
/** Returns a new, unique label number. */
static inline ir_label_t get_irp_next_label_nr_(void)
{
- assert(irp);
return ++irp->last_label_nr;
}
-/** Whether optimizations should dump irgs */
-static inline int get_irp_optimization_dumps_(void)
-{
- assert(irp);
- return irp->optimization_dumps;
-}
-
-/** Set optimizations to dump irgs */
-static inline void enable_irp_optimization_dumps_(void)
-{
- assert(irp);
- irp->optimization_dumps = 1;
-}
-
void set_irp_ip_outedges(ir_node ** ip_outedges);
ir_node** get_irp_ip_outedges(void);
shrinks the list by one. */
void remove_irp_type(ir_type *typ);
-/* Inline functions. */
-#define get_irp_n_irgs() get_irp_n_irgs_()
-#define get_irp_irg(pos) get_irp_irg_(pos)
-#define get_irp_n_types() get_irp_n_types_()
-#define get_irp_type(pos) get_irp_type_(pos)
-#define get_const_code_irg() get_const_code_irg_()
-#define get_segment_type(s) get_segment_type_(s)
-#define get_glob_type() get_glob_type_()
-#define get_tls_type() get_tls_type_()
-#define get_irp_next_label_nr() get_irp_next_label_nr_()
-#define get_irp_optimization_dumps() get_irp_optimization_dumps_()
-#define enable_irp_optimization_dumps() enable_irp_optimization_dumps_()
+/** Adds irg to the list of ir graphs in the current irp. */
+FIRM_API void add_irp_irg(ir_graph *irg);
+
+/** Removes irg from the list of irgs and
+ shrinks the list by one. */
+FIRM_API void remove_irp_irg(ir_graph *irg);
#endif