* @author Goetz Lindenmaier
* @date 2000
* @version $Id$
- * @summary
+ * @brief
* Intermediate Representation (IR) of a program.
*
* This file defines a construct that keeps all information about a
IR_SEGMENT_COUNT
} ir_segment_t;
-/**
- * Data structure that holds central information about a program
- * or a module.
- * One irp is created by libFirm on construction, so irp should never be NULL.
- *
- * - main_irg: The ir graph that is the entry point to the program.
- * (Anything not reachable from here may be optimized away
- * if this irp represents a whole program.
- * - irg: List of all ir graphs in the program or module.
- * - type: A list containing all types known to the translated program.
- * Some types can have several entries in this list (as a result of
- * using exchange_types()).
- * - glob_type: The unique global type that is owner of all global entities
- * of this module.
- */
-typedef struct ir_prog ir_prog;
-
/**
* A variable pointing to the current irp (program or module).
* This variable should be considered constant. Moreover, one should use get_irp()
/**
* Creates a new ir_prog (a module or compilation unit),
* returns it and sets irp with it.
+ *
+ * @param name the name of this irp (module)
*/
-ir_prog *new_ir_prog(void);
+ir_prog *new_ir_prog(const char *name);
/** frees all memory used by irp. Types in type list and irgs in irg
* list must be freed by hand before. */
irg_outs_state get_irp_ip_outs_state(void);
void set_irp_ip_outs_inconsistent(void);
+/**
+ * Creates an ir_prog pass for set_irp_phase_state().
+ *
+ * @param name the name of this pass or NULL
+ * @param state the state to set
+ *
+ * @return the newly created ir_prog pass
+ */
+ir_prog_pass_t *set_irp_phase_state_pass(const char *name, irg_phase_state state);
irg_callee_info_state get_irp_callee_info_state(void);
void set_irp_callee_info_state(irg_callee_info_state s);