void ir_init(void) { firm_init_flags(); init_ident(); init_edges(); init_tarval_1(); /* Builds a basic program representation, so modes can be added. */ init_irprog_1(); init_mode(); init_tarval_2(); firm_init_op(); firm_init_reassociation(); firm_init_funccalls(); firm_init_inline(); firm_init_scalar_replace(); /* Builds a construct allowing to access all information to be constructed later. */ init_irprog_2(); firm_init_memory_disambiguator(); firm_init_loop_opt(); arch_dep_set_opts(arch_dep_none); init_execfreq(); firm_be_init(); #ifdef DEBUG_libfirm firm_init_debugger(); #endif }
void ir_init(void) { /* for historical reasons be_init must be run first */ firm_be_init(); /* initialize firm flags */ firm_init_flags(); /* initialize all ident stuff */ init_ident(); /* Edges need hooks. */ init_edges(); /* create the type kinds. */ init_tpop(); /* create an obstack and put all tarvals in a pdeq */ init_tarval_1(0l, /* support_quad_precision */0); /* Builds a basic program representation, so modes can be added. */ init_irprog_1(); /* initialize all modes an ir node can consist of */ init_mode(); /* initialize tarvals, and floating point arithmetic */ init_tarval_2(); /* initialize node opcodes */ firm_init_op(); /* init graph construction */ firm_init_irgraph(); /* kind of obstack initialization */ firm_init_mangle(); /* initialize reassociation */ firm_init_reassociation(); /* initialize function call optimization */ firm_init_funccalls(); /* initialize function inlining */ firm_init_inline(); /* initialize scalar replacement */ firm_init_scalar_replace(); /* Builds a construct allowing to access all information to be constructed later. */ init_irprog_2(); /* memory disambiguation */ firm_init_memory_disambiguator(); firm_init_loop_opt(); /* Init architecture dependent optimizations. */ arch_dep_set_opts(arch_dep_none); init_execfreq(); init_stat(); #ifdef DEBUG_libfirm /* integrated debugger extension */ firm_init_debugger(); #endif }