/*
- * 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.
*
* @brief Central firm header.
* @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier
* @version $Id$
- * @summary
+ * @brief
* Central FIRM header.
*
* FIRM is a full graph based intermediate representation in SSA Form
#ifndef FIRM_COMMON_FIRM_H
#define FIRM_COMMON_FIRM_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* The representations */
-#include "firm_common.h" /* common type tags. */
-#include "irprog.h" /* control flow and data of a program */
-#include "irgraph.h" /* graphs */
-#include "typerep.h" /* type representation */
-#include "tv.h" /* target values */
-#include "ident.h" /* source code identificators */
-
-/* Functionality */
-#include "ircons.h" /* construct ir */
-#include "ircgcons.h" /* construct interprocedural graph */
-
-/* Optimizations */
-#include "irflag.h" /* optimization flags */
-#include "irgopt.h" /* optimize ir */
-#include "iroptimize.h" /* optimize ir by reassociation */
-#include "ircgopt.h" /* Optimizations based on interprocedural graph */
-
-/* Lowering */
-#include "lowering.h" /* lowering of different calls parameters, intrinsic calls, double word types, high-level constructs */
-
-/* Analyses */
-#include "irouts.h" /* Graph reversal / out edges. */
-#include "trouts.h" /* Graph reversal / out edges for types. */
-#include "irdom.h" /* Dominator analysis */
-#include "cgana.h" /* Analysis to construct interprocedural graph */
- /* including some optimizations */
-#include "irloop.h" /* loop and backedge analysis */
-#include "callgraph.h" /* Callgraph construction */
-#include "irconsconfirm.h" /* Confirm nodes */
-#include "analyze_irg_args.h" /* Simple pointer parameter analysis */
-#include "irtypeinfo.h" /* type information for nodes */
-#include "irmemory.h" /* memory disambiguation */
-#include "interval_analysis.h"
-#include "field_temperature.h"
+#include "analyze_irg_args.h"
+#include "be.h"
+#include "callgraph.h"
+#include "cdep.h"
+#include "cgana.h"
+#include "dbginfo.h"
+#include "execfreq.h"
#include "execution_frequency.h"
-
-/* Support */
-#include "irgmod.h" /* Support to modify ir */
-#include "irgwalk.h" /* Support to walk ir */
-
-#include "irarch.h" /* architecture dependent optimizations */
-#include "archop.h" /* architecture dependent opcodes */
-
-#include "firmstat.h" /* statistics */
-
-#include "dbginfo.h" /* debug support */
-#include "seqnumbers.h" /* debug support */
-#include "firm_ycomp.h" /* ycomp debugging support */
-
-
-/* @@@ 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
- files. */
+#include "field_temperature.h"
+#include "firm_common.h"
+#include "firmstat.h"
+#include "firm_types.h"
+#include "height.h"
+#include "ident.h"
+#include "interval_analysis.h"
+#include "irarch.h"
+#include "ircgcons.h"
+#include "ircgopt.h"
+#include "irconsconfirm.h"
+#include "ircons.h"
+#include "irdom.h"
+#include "vrp.h"
#include "irdump.h"
+#include "iredgekinds.h"
+#include "iredges.h"
+#include "irextbb.h"
+#include "irflag.h"
+#include "irgmod.h"
+#include "irgopt.h"
+#include "irgraph.h"
+#include "irgwalk.h"
+#include "irhooks.h"
+#include "irio.h"
+#include "irloop.h"
+#include "irmemory.h"
+#include "irmode.h"
+#include "irnode.h"
+#include "irop.h"
+#include "iropt.h"
+#include "iroptimize.h"
+#include "irouts.h"
+#include "irpass.h"
#include "irprintf.h"
+#include "irprog.h"
+#include "irsimpletype.h"
+#include "irtypeinfo.h"
#include "irvrfy.h"
-
-#include "irarch.h"
-
-#include "iredges.h"
-
-/* Macros that define the old function names we decided to rename.
- Use for compatibility with old implementations. */
-/*#include "old_fctnames.h"*/
-
-/**
- * libFirm initialization parameters.
- */
-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.
- */
- unsigned int size;
-
- /**
- * Statistic options. If statistic function where enabled, these
- * flags configure it, see enum firmstat_options_t.
- */
- unsigned enable_statistics;
-
- /**
- * This function is called, whenever a local variable is
- * used before definition. The function should insert a default value,
- * and/or raise a compiler error/warning. Note that returning
- * an Unknown is allowed here.
- */
- uninitialized_local_variable_func_t *initialize_local_func;
-
- /**
- * The interface functions for the type identification module.
- * If not set, the default implementation with compare_strict() and
- * firm_hash_name() will be used.
- */
- type_identify_if_t *ti_if;
-
- /**
- * The interface for the ident module.
- * If not set, the default libFirm ident module (using hash sets).
- */
- ident_if_t *id_if;
-
- /**
- * The architecture dependent opcode settings.
- * If not set, no architecture dependent operations will be used.
- */
- const arch_ops_info *arch_op_settings;
-
- /**
- * The default calling convention.
- */
- unsigned cc_mask;
-
- /**
- * The debug info that should be used for "builtin" objects.
- */
- dbg_info *builtin_dbg;
-};
-
-typedef struct _firm_parameter_t firm_parameter_t;
-
-/* Set a version number if it has not been set in environment */
-#ifndef libfirm_VERSION_MAJOR
-#define libfirm_VERSION_MAJOR 1
-#endif
-
-#ifndef libfirm_VERSION_MINOR
-#define libfirm_VERSION_MINOR 4
-#endif
-
-/**
- * The Firm version number.
- */
-typedef struct _firm_version_t {
- unsigned major;
- unsigned minor;
- const char *revision;
- const char *build;
-} firm_version_t;
-
-/**
- * Initialize the firm library.
- *
- * Initializes the firm library. Allocates default data structures.
- * Initializes configurable behavior of the library.
- *
- * @param params A structure containing the parameters of the libFirm.
- *
- * The parameter struct may be NULL. In that case, the original FIRM behavior
- * is conserved.
- */
-void init_firm(const firm_parameter_t *params);
-
-/**
- * Frees all memory occupied by the firm library.
- */
-void free_firm(void);
-
-/**
- * Returns the libFirm version number.
- * If statically linked, always libFirm_VERSION_MAJOR, libFirm_VERSION_MINOR
- */
-void firm_get_version(firm_version_t *version);
-
-#ifdef WITH_LIBCORE
-/**
- * Read initializations arguments from the .init file.
- */
-void firm_init_options(const char *arg_prefix, int argc, const char **argv);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
+#include "lowering.h"
+#include "pseudo_irg.h"
+#include "rta.h"
+#include "seqnumbers.h"
+#include "structure.h"
+#include "timing.h"
+#include "trouts.h"
+#include "tv.h"
+#include "typerep.h"
#endif