* @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
/** like constructors, but functions are executed on module exit */
IR_SEGMENT_DESTRUCTORS,
- IR_SEGMENT_COUNT
+ IR_SEGMENT_LAST = IR_SEGMENT_DESTRUCTORS
} ir_segment_t;
/**
* Creates a new ir_prog (a module or compilation unit),
* returns it and sets irp with it.
*
- * @param module_name the name of this irp (module)
+ * @param name the name of this irp (module)
*/
ir_prog *new_ir_prog(const char *name);
*/
ir_type *get_segment_type(ir_segment_t segment);
+/**
+ * @brief Changes a segment segment type for the program.
+ * (use with care)
+ */
+void set_segment_type(ir_segment_t segment, ir_type *new_type);
+
/**
* Returns the "global" type of the irp.
* Upon creation this is an empty class type.
/**
* Returns the "thread local storage" type of the irp.
* Upon creation this is an empty struct type.
+ * This is a convenience function for get_segment_type(IR_SEGMENT_THREAD_LOCAL)
*/
ir_type *get_tls_type(void);
shrinks the list by one. */
void remove_irp_type(ir_type *typ);
-/** Returns the number of all types in the irp. */
+/**
+ * Returns the number of all types in the irp.
+ * @deprecated
+ */
int get_irp_n_types(void);
-/** Returns the type at position pos in the irp. */
+/**
+ * Returns the type at position pos in the irp.
+ * @deprecated
+ */
ir_type *get_irp_type(int pos);
-/** Overwrites the type at position pos with another type. */
+/**
+ * Overwrites the type at position pos with another type.
+ * @deprecated
+ */
void set_irp_type(int pos, ir_type *typ);
/** Returns the number of all modes in the irp. */