+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() {