Esempio n. 1
0
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
}
Esempio n. 2
0
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
}
Esempio n. 3
0
int main(void)
{
	init_ident();
	init_tarval_1();
	init_irprog_1();
	init_mode();
	init_tarval_2();

	double d_nan = 0.0/0.0;
	assert (d_nan != d_nan);

	d_nan = new_nan(1234);
	assert (d_nan != d_nan);
	assert (nan_payload(d_nan) == 1234);

	d_nan *= 2;
	assert (d_nan != d_nan);

	ir_tarval* tv_nan = new_tarval_from_double(d_nan, mode_D);
	assert (tarval_is_nan(tv_nan));
	d_nan = get_tarval_double(tv_nan);
	assert (d_nan != d_nan);
	assert (nan_payload(d_nan) == 1234);

	tv_nan = new_tarval_nan(mode_D, false, NULL);
	assert (tarval_is_nan(tv_nan));
	d_nan = get_tarval_double(tv_nan);
	assert (d_nan != d_nan);

	d_nan = new_nan(0);
	assert (nan_payload(d_nan) == 0);
	assert (d_nan != d_nan);
	tv_nan = new_tarval_from_double(d_nan, mode_D);
	assert (tarval_is_nan(tv_nan));
	d_nan = get_tarval_double(tv_nan);
	assert (d_nan != d_nan);
	assert (nan_payload(d_nan) == 0);

	finish_tarval();
	finish_mode();
	finish_ident();
	return 0;
}