- * FIELDS
- * main_irg The ir graph that is the entry point to the program.
- * (Anything not reachable from here may be optimized away.
- * If we want to translate libraries or the like correctly
- * we must replace this by a list.)
- * irg List of all ir graphs in the program.
- * 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.
+ * This file defines a construct that keeps all information about a
+ * program:
+ * - A reference point to the method to be executed on program start.
+ * - A list of all procedures.
+ * - A list of all types.
+ * - A global type that contais all global variables and procedures that do
+ * not belong to a class. This type represents the data segment of the
+ * program. It is not the base class of
+ * all classes in a class hierarchy (as, e.g., "object" in java).
+ * - A degenerated graph that contains constant expressions.
+ * - interprocedural outs state.
+ * - a flag indicating validity of the interprocedural representation.
+ * - the output file name
+ */
+
+#ifndef _FIRM_IR_IRPROG_H_
+#define _FIRM_IR_IRPROG_H_
+
+#include "firm_types.h"
+#include "irgraph.h"
+
+
+/**
+ * Datastructure that holds central information about a program
+ *
+ * Preliminary documentation ;-)
+ *
+ * - main_irg: The ir graph that is the entry point to the program.
+ * (Anything not reachable from here may be optimized away.
+ * If we want to translate libraries or the like correctly
+ * we must replace this by a list.)
+ * - irg: List of all ir graphs in the program.
+ * - 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.