X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Ffirm.h;h=8a379ad693b57f71f09e6a2759463907a70992e0;hb=3ba956b123af82aae43c1b82102430fd12401d4d;hp=05bc86dade834a94fe6679cc0313693099a0d92a;hpb=1ec30d95387eb392ba5a1adc7958ebd91383d59c;p=libfirm diff --git a/include/libfirm/firm.h b/include/libfirm/firm.h index 05bc86dad..8a379ad69 100644 --- a/include/libfirm/firm.h +++ b/include/libfirm/firm.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2010 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -22,7 +22,7 @@ * @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 @@ -59,180 +59,55 @@ #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 "lower_calls.h" /* lowering of different calls */ -#include "lower_intrinsics.h" /* lowering of intrinsic calls */ -#include "lower_dw.h" /* double word types lowering */ -#include "lower_hl.h" /* lowering of 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 "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 instead - of firm.h as not all enums are needed in the implementation - files. */ -#include "irdump.h" -#include "irprintf.h" -#include "irvrfy.h" - +#include "field_temperature.h" +#include "firm_common.h" +#include "firmstat.h" +#include "firm_types.h" +#include "heights.h" +#include "ident.h" +#include "interval_analysis.h" #include "irarch.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" - -/* 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; - -#define libFirm_VERSION_MAJOR 1 -#define libFirm_VERSION_MINOR 4 - -/** - * The Firm version number. - */ -typedef struct _firm_version_t { - unsigned major; - unsigned minor; -} 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 "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 "irtypeinfo.h" +#include "irverify.h" +#include "lowering.h" +#include "timing.h" +#include "trouts.h" +#include "tv.h" +#include "typerep.h" #endif