X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fcommon%2Ffirm.h;h=119153b31ed98ef15d340386361dc30a7fe02f19;hb=c0acb5cc9a2967e31e2b2961a98831d674cea3b8;hp=c09faf1e2b502fbaedd0d0a7a80f8c53b1b4c1cc;hpb=797fe4533c8a8f0a771e020cc250a03b70c84e32;p=libfirm diff --git a/ir/common/firm.h b/ir/common/firm.h index c09faf1e2..119153b31 100644 --- a/ir/common/firm.h +++ b/ir/common/firm.h @@ -74,7 +74,8 @@ extern "C" { #include "cfopt.h" /* optimize control flow */ #include "tailrec.h" /* optimize tail-recursion calls */ #include "ircgopt.h" /* Optimizations based on interprocedural graph */ -#include "strength_red.h" /* Strength reduction */ +#include "opt_osr.h" /* Operator Strength Reduction */ +#include "strength_red.h" /* Old (and buggy) Strength reduction */ #include "loop_unrolling.h" /* Do loop unrolling */ #include "ifconv.h" /* if conversion */ #include "funccall.h" /* real function call optimization */ @@ -84,21 +85,26 @@ extern "C" { #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 */ +#include "tropt.h" /* optimize the type representation */ +#include "condeval.h" /* control flow optimization by conditional evaluation */ /* 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 */ /* 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 "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 "execution_frequency.h" @@ -121,6 +127,7 @@ extern "C" { #include "irreflect.h" /* reflection */ #include "seqnumbers.h" /* debug support */ +#include "firm_ycomp.h" /* ycomp debugging support */ /* @@@ temporarily for jni builder until preprocessor works. @@ -182,7 +189,7 @@ struct _firm_parameter_t { * The architecture dependent opcode settings. * If not set, no architecture dependent operations will be used. */ - arch_ops_info *arch_op_settings; + const arch_ops_info *arch_op_settings; /** * The default calling convention. @@ -193,31 +200,6 @@ struct _firm_parameter_t { * 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; @@ -257,6 +239,13 @@ void free_firm(void); */ 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