X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fcommon%2Ffirm.h;h=5f5296f209ccdc0361d6a3a3f83d4c9d24ed6927;hb=a7a54b4eb512dcc5e0be95fcb5ca95e4e2e893a9;hp=9cc5041ff0271c2ef58acb9444b20ff40518fdef;hpb=6d36abf323fc5c7fba7ed2f1f6939a84b3e4a932;p=libfirm diff --git a/ir/common/firm.h b/ir/common/firm.h index 9cc5041ff..5f5296f20 100644 --- a/ir/common/firm.h +++ b/ir/common/firm.h @@ -1,13 +1,14 @@ /* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe -** All rights reserved. -** -** Authors: Martin Trapp, Christian Schaefer, Goetz Lindenmaier. -** -** firm.h: Central FIRM header. -** -** -** -** +* All rights reserved. +* +* Authors: Martin Trapp, Christian Schaefer, Goetz Lindenmaier. +*/ + +/** + @file firm.h + + Central FIRM header. + FIRM is a full graph based intermediate representation in SSA Form with a novel concept to model side effects. It allows fast, aggressive optimizations. @@ -50,25 +51,54 @@ irgwalk: walker for ir graphs. irvrfy: verify the correctness of a firm node. -** +* */ +/* $Id$ */ + # ifndef _FIRM_H_ # define _FIRM_H_ /* The representations */ -# include "irprog.h" -# include "type.h" -# include "entity.h" +# include "irprog.h" /* control flow and data of a program */ +# include "type.h" /* type representation */ +# include "entity.h" /* entity representation */ +# include "tv.h" /* target values */ +# include "ident.h" /* source code identificators */ /* Functionality */ -# include "ircons.h" -# include "irgopt.h" +# include "ircons.h" /* construct ir */ +# include "ircgcons.h" /* construct interprocedural graph */ + +# include "irflag.h" /* optimization flags */ +# include "irgopt.h" /* optimize ir */ +# include "ircgopt.h" /* Optimizations based on interprocedural graph */ + +# include "irdom.h" /* Dominator analysis */ +# include "cgana.h" /* Analysis to construct interprocedural graph */ + /* including some optimizations */ +# include "irloop.h" /* loop and backedge analysis */ -/* */ -# include "xprintf.h" +# include "irgmod.h" /* Support to modify ir */ +# include "irgwalk.h" /* Support to walk ir */ +# include "typewalk.h" /* Support to walk type information */ +# include "typegmod.h" /* Support to modify type graph */ +# include "mangle.h" /* Support for mangling ident names. */ +/* @@@ 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 impelmentation + files. */ +# include "irdump.h" -/* initialize firm */ -void init_firm (void); +/** + * Initialize the firm library. + * + * @param func This function is called, whenever a local variable is used before definition + * + * The parameter func may be NULL. In that case, the old FIRM behavior is conserved. + * + * @see default_initialize_local_variable_func_t + */ +void init_firm (default_initialize_local_variable_func_t *func); # endif /* _FIRM_H_ */