X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgraph.h;h=54034d6ba2d14bb3ba73313fdcbf82307a30d524;hb=e570f00fb465d212dde403160e97ab45d36d1d7e;hp=c4a18f239c5d444009ceeb53c6bcb703fa7663a7;hpb=f9b36e5483d60c3f4a509bd1f20b73881f42108f;p=libfirm diff --git a/ir/ir/irgraph.h b/ir/ir/irgraph.h index c4a18f239..54034d6ba 100644 --- a/ir/ir/irgraph.h +++ b/ir/ir/irgraph.h @@ -244,16 +244,41 @@ void set_irg_dom_inconsistent(ir_graph *irg); /* state: loopinfo_state Loop information describes the loops within the control and data flow of the procedure. */ -/* @@@ make unrecognizable for jni script!!! -- Why??? */ typedef enum { - no_loopinfo, - loopinfo_consistent, - loopinfo_inconsistent + loopinfo_none, /**< No loop information is constructed. Default. */ + loopinfo_consistent, /**< IntRAprocedural loop information constructed and valid. */ + loopinfo_inconsistent, /**< IntRAprocedural loop information constructed and invalid. */ + loopinfo_ip_consistent, /**< IntERprocedural loop information constructed and valid. */ + loopinfo_ip_inconsistent /**< IntERprocedural loop information constructed and invalid. */ } irg_loopinfo_state; irg_loopinfo_state get_irg_loopinfo_state(ir_graph *irg); +void set_irg_loopinfo_state(ir_graph *irg, irg_loopinfo_state s); void set_irg_loopinfo_inconsistent(ir_graph *irg); +/** state: callee_information_state + * Call nodes contain a list of possible callees. This list must be + * computed by an anlyses. */ +typedef enum { + irg_callee_info_none, + irg_callee_info_consistent, + irg_callee_info_inconsistent +} irg_callee_info_state; +irg_callee_info_state get_irg_callee_info_state(ir_graph *irg); +void set_irg_callee_info_state(ir_graph *irg, irg_callee_info_state s); + +/** property: + * Tells how to handle an ir graph in inlineing. + */ +typedef enum { + irg_inline_any, /**< No restriction on inlineing. Default. */ + irg_inline_forbidden, /**< The graph may not be inlined. */ + irg_inline_recomended, /**< The graph should be inlined. */ + irg_inline_forced /**< The graph must be inlined. */ +} irg_inline_property; +irg_inline_property get_irg_inline_property(ir_graph *irg); +void set_irg_inline_property(ir_graph *irg, irg_inline_property s); + /* A void * field to link arbritary information to the node. */ void set_irg_link (ir_graph *irg, void *thing); void *get_irg_link (ir_graph *irg);