X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Ffirm.h;h=823e2cf23b1c833c9b7d0f48b4c721b00a474278;hb=901bb930a86871ff22dd4aa1c34424a3083ef5fa;hp=1050646bb4f21a06d82840899bb657071816ca0d;hpb=d02c0f8256f55e457564c67bb7362efec749e112;p=libfirm diff --git a/include/libfirm/firm.h b/include/libfirm/firm.h index 1050646bb..823e2cf23 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-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -69,6 +69,8 @@ extern "C" { #include "irgraph.h" /* graphs */ #include "typerep.h" /* type representation */ #include "tv.h" /* target values */ +#include "irnode.h" +#include "irop.h" #include "ident.h" /* source code identificators */ /* Functionality */ @@ -80,6 +82,7 @@ extern "C" { #include "irgopt.h" /* optimize ir */ #include "iroptimize.h" /* optimize ir by reassociation */ #include "ircgopt.h" /* Optimizations based on interprocedural graph */ +#include "iropt.h" /* Lowering */ #include "lowering.h" /* lowering of different calls parameters, intrinsic calls, double word types, high-level constructs */ @@ -105,7 +108,6 @@ extern "C" { #include "irgwalk.h" /* Support to walk ir */ #include "irarch.h" /* architecture dependent optimizations */ -#include "archop.h" /* architecture dependent opcodes */ #include "firmstat.h" /* statistics */ @@ -113,12 +115,8 @@ extern "C" { #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 "irio.h" #include "irprintf.h" #include "irvrfy.h" @@ -126,114 +124,7 @@ extern "C" { #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); - -/** - * Read initializations arguments from the .init file. - */ -void firm_init_options(const char *arg_prefix, int argc, const char **argv); +#include "be.h" #ifdef __cplusplus }