X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgraph.c;h=e079d1204feeeebf0b3dce7dacf86eb781d2f21e;hb=de97549df292e264a71eabdf04b7ea7ffa1c6afa;hp=e64bacbb526943b525a97ce57facb6406cbffd36;hpb=f3c095127529bf953d3d9861aeb77e45a2178964;p=libfirm diff --git a/ir/ir/irgraph.c b/ir/ir/irgraph.c index e64bacbb5..e079d1204 100644 --- a/ir/ir/irgraph.c +++ b/ir/ir/irgraph.c @@ -19,6 +19,7 @@ # include "ircons.h" # include "irgraph_t.h" # include "irprog_t.h" +# include "irnode_t.h" # include "iropt_t.h" # include "irflag_t.h" # include "array.h" @@ -36,12 +37,24 @@ INLINE void set_current_ir_graph(ir_graph *graph) { } -bool interprocedural_view = false; -INLINE bool get_interprocedural_view(void) { - return interprocedural_view; +int __interprocedural_view = false; + +int (get_interprocedural_view)(void) { + return __get_interprocedural_view(); } -INLINE void set_interprocedural_view(bool state) { - interprocedural_view = state; + +void (set_interprocedural_view)(int state) { + __interprocedural_view = state; + + /* set function vectors for faster access */ + if (state) { + __get_irn_arity = __get_irn_inter_arity; + __get_irn_n = __get_irn_inter_n; + } + else { + __get_irn_arity = __get_irn_intra_arity; + __get_irn_n = __get_irn_intra_n; + } } static ident* frame_type_suffix = NULL;