Implement bemit_call() with AM.
[libfirm] / ir / be / bemodule.c
index 8f09311..e93deff 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
@@ -24,9 +24,7 @@
  * @date        29.09.2005
  * @version     $Id$
  */
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif /* HAVE_CONFIG_H */
 
 #include <stdlib.h>
 
@@ -41,12 +39,16 @@ void be_init_listsched(void);
 void be_init_schedrss(void);
 void be_init_chordal(void);
 void be_init_chordal_main(void);
-void be_init_copycoal(void);
+void be_init_copyopt(void);
+void be_init_copyheur(void);
 void be_init_copyheur2(void);
-void be_init_copyheur3(void);
 void be_init_copyheur4(void);
+void be_init_copyilp2(void);
+void be_init_copypbqp(void);
+void be_init_copynone(void);
 void be_init_copystat(void);
 void be_init_daemelspill(void);
+void be_init_dbgout(void);
 void be_init_arch_ia32(void);
 void be_init_arch_ppc32(void);
 void be_init_arch_mips(void);
@@ -55,20 +57,24 @@ void be_init_arch_sta(void);
 void be_init_arch_TEMPLATE(void);
 void be_init_ilpsched(void);
 void be_init_copyilp(void);
-void be_init_javacoal(void);
+void be_init_peephole(void);
 void be_init_ra(void);
 void be_init_spillbelady(void);
 void be_init_spillbelady2(void);
-void be_init_spillremat(void);
+void be_init_spillbelady3(void);
 void be_init_ssaconstr(void);
+void be_init_stabs(void);
+void be_init_straight_alloc(void);
 void be_init_ifg(void);
 void be_init_irgmod(void);
 void be_init_loopana(void);
 void be_init_spillslots(void);
 void be_init_live(void);
 void be_init_state(void);
+void be_init_pbqp(void);
 
 void be_quit_copystat(void);
+void be_quit_pbqp(void);
 
 /**
  * Driver for module initialization.
@@ -90,47 +96,61 @@ void be_init_modules(void)
        be_init_blocksched();
        be_init_spill();
        be_init_spilloptions();
+       be_init_dbgout();
        be_init_listsched();
        be_init_schedrss();
        be_init_chordal_main();
        be_init_chordal();
-       be_init_copycoal();
-       be_init_copyheur2();
+       be_init_copyopt();
        be_init_copyheur4();
+       be_init_copyheur();
+       be_init_copyheur2();
+#ifdef WITH_ILP
+       be_init_copyilp2();
+#endif
+#ifdef FIRM_KAPS
+       be_init_copypbqp();
+#endif
+       be_init_copynone();
        be_init_copystat();
+       be_init_peephole();
        be_init_ra();
        be_init_spillbelady();
        be_init_spillbelady2();
+       be_init_spillbelady3();
        be_init_daemelspill();
        be_init_ssaconstr();
+       be_init_straight_alloc();
        be_init_state();
        be_init_ifg();
+       be_init_stabs();
 
        be_init_arch_ia32();
        be_init_arch_ppc32();
        be_init_arch_mips();
        be_init_arch_arm();
-       /* do NOT call be_init_arch_TEMPLATE() here, this is NOT a backend :-) */
+       be_init_arch_TEMPLATE();
 
 #ifdef WITH_ILP
        be_init_ilpsched();
        be_init_copyilp();
-       be_init_spillremat();
 #endif /* WITH_ILP */
 
-#ifdef WITH_JVM
-       be_init_copyheur3();
-       be_init_javacoal();
-#endif /* WITH_JVM */
-
 #if PLUGIN_IR_BE_STA
        be_init_arch_sta();
 #endif /* PLUGIN_IR_BE_STA */
+
+#ifdef FIRM_GRGEN_BE
+       be_init_pbqp();
+#endif
 }
 
 void be_quit_modules(void)
 {
        be_quit_copystat();
+#ifdef FIRM_GRGEN_BE
+       be_quit_pbqp();
+#endif
 }
 
 //---------------------------------------------------------------------------
@@ -231,9 +251,7 @@ int dump_opt_module_vals(char *buf, size_t buflen, const char *name,
 void be_add_module_to_list(be_module_list_entry_t **list_head, const char *name,
                            void *module)
 {
-       be_module_list_entry_t *entry;
-
-    entry       = xmalloc(sizeof(entry[0]));
+       be_module_list_entry_t *entry = XMALLOC(be_module_list_entry_t);
        entry->name = name;
        entry->data = module;
        entry->next = *list_head;
@@ -248,9 +266,7 @@ void be_add_module_list_opt(lc_opt_entry_t *grp, const char *name,
                             be_module_list_entry_t * const * list_head,
                             void **var)
 {
-       module_opt_data_t *moddata;
-
-       moddata            = xmalloc(sizeof(moddata[0]));
+       module_opt_data_t *moddata = XMALLOC(module_opt_data_t);
        moddata->var       = var;
        moddata->list_head = list_head;