* list must be freed by hand before. */
void free_ir_prog(void);
-/** Sets the file name / executable name or the like. Initially NULL. */
+/** Sets the file name / executable name or the like. Initially the
+ ident 'no_name_set'. */
void set_irp_prog_name (ident *name);
-/** Gets the file name / executable name or the like. Returns NULL if
- * not yet set.
+/** Returns true if the user ever set a program name */
+int irp_prog_name_is_set(void);
+
+/** Gets the file name / executable name or the like.
*/
ident *get_irp_prog_ident(void);
-/** Gets the file name / executable name or the like. Returns NULL if
- * not yet set.
+/** Gets the file name / executable name or the like.
*/
const char *get_irp_prog_name (void);
/** Sets the ir graph at position pos. */
void set_irp_irg(int pos, ir_graph *irg);
+/** Gets the number of graphs _and_ pseudo graphs. */
+int get_irp_n_allirgs(void);
+
+/** Returns the ir graph at position pos of all graphs (including
+ pseudo graphs). Visits first graphs, then pseudo graphs. */
+ir_graph *get_irp_allirg(int pos);
+
/** Returns the "global" type of the irp. */
type *get_glob_type(void);