+
+int get_irp_n_types (void) {
+ assert (irp && irp->types);
+ /* Strangely the first element of the array is NULL. Why?? */
+ return (ARR_LEN((irp)->types) - 1);
+}
+
+type *get_irp_type(int pos) {
+ assert (irp && irp->types);
+ /* Strangely the first element of the array is NULL. Why?? */
+ return irp->types[pos+1];
+
+}
+
+void set_irp_type(int pos, type *typ) {
+ assert (irp && typ);
+ assert (pos < (ARR_LEN((irp)->types) - 1));
+ /* Strangely the first element of the array is NULL. Why?? */
+ irp->types[pos+1] = typ;
+
+}
+
+#ifdef DEBUG_libfirm
+int get_irp_new_node_nr() {
+ assert(irp);
+ irp->max_node_nr = irp->max_node_nr + 1;
+ return irp->max_node_nr - 1;
+}
+#endif