X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Ffirm.h;h=4875fd347e703dabc73e192898c68ae1ff5ac16f;hb=541e9f7783a1d0c28748eac4779d42d08f2062f9;hp=b0361c70b29128e3ed5bfb9cdf153457d5651c9b;hpb=1bfc3637cbc8ec3e47368a0b3b2ec80d080861b0;p=libfirm diff --git a/include/libfirm/firm.h b/include/libfirm/firm.h index b0361c70b..4875fd347 100644 --- a/include/libfirm/firm.h +++ b/include/libfirm/firm.h @@ -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 @@ -63,142 +63,64 @@ 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 "firmstat.h" /* statistics */ - -#include "dbginfo.h" /* debug support */ -#include "seqnumbers.h" /* debug support */ -#include "firm_ycomp.h" /* ycomp debugging support */ - +#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 "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_dbg.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" - -#include "be.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 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; - -/** - * 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 ir_init(const firm_parameter_t *params); - -/** - * Frees all memory occupied by the firm library. - */ -void ir_finish(void); - -/** returns the libFirm major version number */ -unsigned ir_get_version_major(void); -/** returns libFirm minor version number */ -unsigned ir_get_version_minor(void); -/** returns string describing libFirm revision */ -const char *ir_get_version_revision(void); -/** returns string describing libFirm build */ -const char *ir_get_version_build(void); +#include "lowering.h" +#include "old_fctnames.h" +#include "phiclass.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" #ifdef __cplusplus }