fixed some depencies between irdump.c and irdumptxt.c
[libfirm] / ir / common / firm.h
index f386051..5312699 100644 (file)
@@ -69,8 +69,6 @@
 extern "C" {
 #endif
 
-#include "old_fctnames.h"
-
 /* The representations */
 #include "firm_common.h"   /* common type tags. */
 #include "irprog.h"        /* control flow and data of a program */
@@ -84,14 +82,19 @@ extern "C" {
 
 #include "irflag.h"        /* optimization flags */
 #include "irgopt.h"        /* optimize ir */
+#include "reassoc.h"       /* optimize ir by reassociation */
+#include "ldstopt.h"       /* optimize Load/Store */
+#include "cfopt.h"         /* optimize control flow */
 #include "tailrec.h"       /* optimize tail-recursion calls */
 #include "ircgopt.h"       /* Optimizations based on interprocedural graph */
+#include "strength_red.h"  /* Strength reduction */
 
 #include "irouts.h"        /* Graph reversal / out edges. */
 #include "irdom.h"         /* Dominator analysis */
-#include "cgana.h"         /* Analysis to construct interprocedural graph
-                              including some optimizations */
+#include "cgana.h"         /* Analysis to construct interprocedural graph */
+                           /* including some optimizations */
 #include "irloop.h"        /* loop and backedge analysis */
+#include "callgraph.h"     /* Callgraph construction */
 
 #include "irgmod.h"        /* Support to modify ir */
 #include "irgwalk.h"       /* Support to walk ir */
@@ -100,8 +103,13 @@ extern "C" {
 #include "type_identify.h" /* Support for type identification */
 #include "mangle.h"        /* Support for mangling ident names. */
 
+#include "irarch.h"        /* architecture dependant optimizations */
+//#include "modeconv.h"      /* architecture dependant mode conversion */
+
 #include "firmstat.h"      /* statistics */
 
+#include "irreflect.h"     /* reflection */
+
 /* @@@ temporarily for jni builder until preprocessor works.
    Then it should be sufficient to include <file.h> instead
    of firm.h as not all enums are needed in the implementation
@@ -110,14 +118,18 @@ extern "C" {
 #include "irvrfy.h"
 #include "trvrfy.h"
 
+/* Makros that define the old function names we decided to rename.
+   Use for compatibility with old implementations. */
+#include "old_fctnames.h"
+
 /**
  * libFirm initialization parameters.
  */
-typedef struct _firm_parameter_t {
+struct _firm_parameter_t {
   /**
    * The size of this structure. init_firm() will only initialize
    * this amount of data. This allows to add more fields to this structure
-   * without breaking compatibility to older source
+   * without breaking compatibility to older source.
    */
   unsigned int size;
 
@@ -135,18 +147,23 @@ typedef struct _firm_parameter_t {
   default_initialize_local_variable_func_t *initialize_local_func;
 
   /**
-   * The compare function is used to identify equal types.  If not set
-   * it is initialized with the function compare_strict().
+   * The interface functions for the type identification module.
+   * If not set, the default implementation with compare_strict() and
+   * hash_name() will be used.
    */
-  compare_types_func_t                     *compare_types_func;
+  type_identify_if_t *ti_if;
+
   /**
-   * The hash function is used to identify equal types.  It calculates a hash
-   * value of a type. Note, that the hash value for equal types must be identical.
-   * If not set it is initialized with the function hash_name().
+   * The interface for the ident module.
+   * If not set, the default libFirm ident module (using hash sets).
    */
-  hash_types_func_t                        *hash_types_func;
+  ident_if_t *id_if;
+};
+
+
+typedef struct _firm_parameter_t firm_parameter_t;
+
 
-} firm_parameter_t;
 
 /**
  * Initialize the firm library.