X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fcommon%2Ffirm.h;h=c09faf1e2b502fbaedd0d0a7a80f8c53b1b4c1cc;hb=f274dcf35aa0d3f4748387dbddfe50e8d7d44951;hp=b25915e979bd0f3b4639954c7889f5a986807649;hpb=152f0780cc066b5618ce981aedd234c11c255fea;p=libfirm diff --git a/ir/common/firm.h b/ir/common/firm.h index b25915e97..c09faf1e2 100644 --- a/ir/common/firm.h +++ b/ir/common/firm.h @@ -56,6 +56,7 @@ extern "C" { /* The representations */ #include "firm_common.h" /* common type tags. */ #include "irprog.h" /* control flow and data of a program */ +#include "irgraph.h" /* graphs */ #include "type.h" /* type representation */ #include "entity.h" /* entity representation */ #include "tv.h" /* target values */ @@ -79,7 +80,14 @@ extern "C" { #include "funccall.h" /* real function call optimization */ #include "return.h" /* Return node normalizations */ #include "scalar_replace.h" /* Scalar replacement */ -//#include "opt_branches.h" /* Branch optimizations */ +#include "proc_cloning.h" /* procedure cloning */ +#include "opt_confirms.h" /* Confirm based optimizations */ +#include "gvn_pre.h" /* global value numbering and partial redundancy elimination */ +#include "opt_frame.h" /* frame type optimization */ + +/* Lowering */ +#include "lower_calls.h" /* lowering of different calls */ +#include "lower_intrinsics.h" /* lowering of intrinsic calls */ /* Analyses */ #include "irouts.h" /* Graph reversal / out edges. */ @@ -180,10 +188,51 @@ struct _firm_parameter_t { * The default calling convention. */ unsigned cc_mask; + + /** + * The debug info that should be used for "builtin" objects. + */ + dbg_info *builtin_dbg; + + /** + * Prefix for the command line options. + * example: if the option is -ffirm-opt-bla, then the prefix is "-f" + * @note Only active, if libfirm is compiled with libcore. + */ + const char *arg_prefix; + + /** + * Number of arguments in the "command line". + * @note Only active, if libfirm is compiled with libcore. + */ + int argc; + + /** + * Array of arguments. + * @note Only active, if libfirm is compiled with libcore. + */ + const char **argv; + + /** + * Name of ini file which is initially read. + * @note Only active, if libfirm is compiled with libcore. + */ + const char *ini_file; }; 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. * @@ -202,6 +251,12 @@ void init_firm(const firm_parameter_t *params); */ 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 __cplusplus } #endif