-/* Returns a new, unique exception region number. */
-unsigned long (get_irp_next_region_nr)(void) {
- return _get_irp_next_region_nr();
+ir_label_t (get_irp_next_label_nr)(void)
+{
+ return get_irp_next_label_nr_();
+}
+
+void add_irp_asm(ident *asm_string)
+{
+ ARR_APP1(ident *, irp->global_asms, asm_string);
+}
+
+size_t get_irp_n_asms(void)
+{
+ return ARR_LEN(irp->global_asms);
+}
+
+ident *get_irp_asm(size_t pos)
+{
+ assert(pos < get_irp_n_asms());
+ return irp->global_asms[pos];
+}
+
+int (get_irp_optimization_dumps)(void)
+{
+ return get_irp_optimization_dumps_();
+}
+
+void (enable_irp_optimization_dumps)(void)
+{
+ enable_irp_optimization_dumps_();
+}
+
+#ifndef NDEBUG
+void irp_reserve_resources(ir_prog *irp, irp_resources_t resources)
+{
+ assert((irp->reserved_resources & resources) == 0);
+ irp->reserved_resources |= resources;
+}
+
+void irp_free_resources(ir_prog *irp, irp_resources_t resources)
+{
+ assert((irp->reserved_resources & resources) == resources);
+ irp->reserved_resources &= ~resources;
+}
+
+irp_resources_t irp_resources_reserved(const ir_prog *irp)
+{
+ return irp->reserved_resources;