+
+void remove_irp_type(type *typ) {
+ remove_irp_type_from_list (typ);
+}
+
+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?? */
+ /* Don't set the skip_tid result so that no double entries are generated. */
+ return skip_tid(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
+
+/*- File name / executable name or the like -*/
+void set_irp_prog_name(ident *name) {
+ irp->name = name;
+}
+ident *get_irp_prog_ident(void) {
+ return irp->name;
+}
+const char *get_irp_prog_name(void) {
+ return get_id_str(irp->name);
+}
+
+
+ir_graph *get_const_code_irg(void)
+{
+ return irp->const_code_irg;
+}
+
+void set_irp_ip_outedges(ir_node ** ip_outedges)
+{
+ irp -> ip_outedges = ip_outedges;
+}
+
+ir_node** get_irp_ip_outedges(void)
+{
+ return(irp -> ip_outedges);
+}