BugFix: fixed conversion for x < lo || x >|>= hi
[libfirm] / include / libfirm / irprog.h
index fea91c5..53a5a5f 100644 (file)
@@ -23,7 +23,7 @@
  * @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
@@ -64,23 +64,6 @@ typedef enum ir_segment_t {
        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()
@@ -112,8 +95,10 @@ ir_prog *get_irp(void);
 /**
  * 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. */
@@ -254,6 +239,15 @@ void            set_irp_phase_state(irg_phase_state s);
 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);