/*
- * Project: libFIRM
- * File name: ir/common/firm.c
- * Purpose: Central firm functionality.
- * Author: Martin Trapp, Christian Schaefer
- * Modified by: Goetz Lindenmaier
- * Created:
- * CVS-ID: $Id$
- * Copyright: (c) 1998-2003 Universität Karlsruhe
- * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
+ * 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.
+ */
+
+/**
+ * @file
+ * @brief Central firm functionality.
+ * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier
+ * @version $Id$
*/
#ifdef HAVE_CONFIG_H
-# include <config.h>
+# include "config.h"
+#endif
+
+#ifdef HAVE_FIRM_REVISION_H
+# include "firm_revision.h"
#endif
+#include "firm_config.h"
+
#ifdef HAVE_STRING_H
# include <string.h>
#endif
#include "ident_t.h"
#include "firm.h"
#include "irflag_t.h"
-#include "mangle.h"
/* init functions are not public */
#include "tv_t.h"
#include "tpop_t.h"
#include "irgraph_t.h"
#include "type_t.h"
#include "entity_t.h"
-#include "type_identify.h"
#include "firmstat.h"
-#include "irreflect_t.h"
#include "irarch.h"
#include "reassoc_t.h"
#include "irhooks.h"
/* Builds a construct allowing to access all information to be constructed
later. */
init_irprog_2();
- /* Initialize the type module ancd cr d construct some idents needed. */
+ /* Initialize the type module and construct some idents needed. */
firm_init_type(def_params.builtin_dbg, def_params.cc_mask);
/* initialize the entity module */
firm_init_entity();
/* allocate a hash table. */
init_type_identify(def_params.ti_if);
- /* Init reflection facility. */
- firm_init_rflct();
/* Init architecture dependent optimizations. */
arch_dep_init(arch_dep_default_factory);
- arch_dep_set_opts(arch_dep_mul_to_shift | arch_dep_div_by_const | arch_dep_mod_by_const);
+ arch_dep_set_opts(0);
firm_archops_init(def_params.arch_op_settings);
/* Returns the libFirm version number. */
void firm_get_version(firm_version_t *version) {
- version->major = libFirm_VERSION_MAJOR;
- version->minor = libFirm_VERSION_MINOR;
+ version->major = libfirm_VERSION_MAJOR;
+ version->minor = libfirm_VERSION_MINOR;
+#ifdef libfirm_VERSION_REVISION
+ version->revision = libfirm_VERSION_REVISION;
+#else
+ version->revision = "";
+#endif
+ version->build = "";
}