*/
extern ir_prog *irp;
+#ifndef NDEBUG
+void irp_reserve_resources(ir_prog *irp, ir_resources_t resources);
+void irp_free_resources(ir_prog *irp, ir_resources_t resources);
+ir_resources_t irp_resources_reserved(const ir_prog *irp);
+#else
+void irp_reserve_resources(irp, resources)
+void irp_free_resources(irp, resources)
+ir_resources_t irp_resources_reserved(irp) 0
+#endif
+
/**
* Returns the access points from where everything in the ir can be accessed.
*
}
#ifndef NDEBUG
-void ir_reserve_resources(ir_graph *irg, ir_resources_t resources)
-{
+void ir_reserve_resources(ir_graph *irg, ir_resources_t resources) {
assert((irg->reserved_resources & resources) == 0);
irg->reserved_resources |= resources;
}
-void ir_free_resources(ir_graph *irg, ir_resources_t resources)
-{
+void ir_free_resources(ir_graph *irg, ir_resources_t resources) {
assert((irg->reserved_resources & resources) == resources);
irg->reserved_resources &= ~resources;
}
-ir_resources_t ir_resources_reserved(const ir_graph *irg)
-{
+ir_resources_t ir_resources_reserved(const ir_graph *irg) {
return irg->reserved_resources;
}
#endif /* NDEBUG */
res->max_irg_idx = 0;
#ifdef DEBUG_libfirm
- res->max_node_nr = 0;
+ res->max_node_nr = 0;
+#endif
+#ifndef NDEBUG
+ res->reserved_resources = 0;
#endif
return res;
assert(pos <= 0 && pos < get_irp_n_asms());
return irp->global_asms[pos];
}
+
+#ifndef NDEBUG
+void irp_reserve_resources(ir_prog *irp, ir_resources_t resources) {
+ assert((irp->reserved_resources & resources) == 0);
+ irp->reserved_resources |= resources;
+}
+
+void irp_free_resources(ir_prog *irp, ir_resources_t resources) {
+ assert((irp->reserved_resources & resources) == resources);
+ irp->reserved_resources &= ~resources;
+}
+
+ir_resources_t irp_resources_reserved(const ir_prog *irp) {
+ return irp->reserved_resources;
+}
+#endif
#endif
#ifndef NDEBUG
- ir_resources_t reserved_resources;/**< Bitset for tracking used resources. */
+ ir_resources_t reserved_resources; /**< Bitset for tracking used local resources. */
#endif
};
#ifdef DEBUG_libfirm
long max_node_nr; /**< to generate unique numbers for nodes. */
#endif
+#ifndef NDEBUG
+ ir_resources_t reserved_resources; /**< Bitset for tracking used global resources. */
+#endif
};
#endif