fixed handling of other_same/other_different constraint handling
[libfirm] / ir / be / bemain.c
index 2c3ab57..874fc92 100644 (file)
@@ -1,8 +1,28 @@
+/*
+ * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ */
+
 /**
- * Backend driver.
- * @author Sebastian Hack
- * @date   25.11.2004
- * @cvsid  $Id$
+ * @file
+ * @brief       Main Backend driver.
+ * @author      Sebastian Hack
+ * @date        25.11.2004
+ * @version     $Id$
  */
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -45,7 +65,6 @@
 #include "belive_t.h"
 #include "bespillbelady.h"
 #include "bera.h"
-#include "beraextern.h"
 #include "bechordal_t.h"
 #include "beifg.h"
 #include "beifg_impl.h"
@@ -59,6 +78,7 @@
 #include "beverify.h"
 #include "beprofile.h"
 #include "be_dbgout.h"
+#include "beirg_t.h"
 
 #ifdef WITH_ILP
 #include "beilpsched.h"
@@ -348,7 +368,7 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
        char prof_filename[256];
        static const char suffix[] = ".prof";
        be_irg_t *birgs;
-       unsigned num_birgs;
+       int num_birgs;
        ir_graph **irg_list, **backend_irg_list;
 
        lc_timer_t *t_abi      = NULL;
@@ -512,11 +532,12 @@ static void be_main_loop(FILE *file_handle, const char *cup_name)
                /**
                 * Create execution frequencies from profile data or estimate some
                 */
-               if (be_profile_has_data()) {
+               if (be_profile_has_data())
                        birg->exec_freq = be_create_execfreqs_from_profile(irg);
-               } else {
+               else
                        birg->exec_freq = compute_execfreq(irg, 10);
-               }
+
+               be_live_chk_compare(birg);
 
                /* let backend prepare scheduling */
                BE_TIMER_PUSH(t_codegen);