X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fbearch_ia32.c;h=3b9c06f61a8ed14007f315bfa4a5dba6ff8cd304;hb=07f42691eb2d024ccd3fdf83864ac869401e5111;hp=c1542650a9e1aac5100be5e500fcb0ad3896da57;hpb=1894b7dd99b524c25c8fa18c33c250ea2cde2e36;p=libfirm diff --git a/ir/be/ia32/bearch_ia32.c b/ir/be/ia32/bearch_ia32.c index c1542650a..3b9c06f61 100644 --- a/ir/be/ia32/bearch_ia32.c +++ b/ir/be/ia32/bearch_ia32.c @@ -39,11 +39,11 @@ #include "irprintf.h" #include "iredges_t.h" #include "ircons.h" +#include "irflag.h" #include "irgmod.h" #include "irgopt.h" #include "irbitset.h" #include "irgopt.h" -#include "irdump_grgen.h" #include "pdeq.h" #include "pset.h" #include "debug.h" @@ -933,7 +933,7 @@ static void ia32_before_abi(void *self) { static void ia32_prepare_graph(void *self) { ia32_code_gen_t *cg = self; - /* do local optimisations */ + /* do local optimizations */ optimize_graph_df(cg->irg); /* TODO: we often have dead code reachable through out-edges here. So for @@ -948,17 +948,22 @@ static void ia32_prepare_graph(void *self) { be_dump(cg->irg, "-pre_transform", dump_ir_block_graph_sched); #ifdef FIRM_GRGEN_BE + // disable CSE, because of two-step node-construction + set_opt_cse(0); + /* transform nodes into assembler instructions by PBQP magic */ ia32_transform_graph_by_pbqp(cg); -#endif if (cg->dump) be_dump(cg->irg, "-after_pbqp_transform", dump_ir_block_graph_sched); + set_opt_cse(1); +#else /* transform remaining nodes into assembler instructions */ ia32_transform_graph(cg); +#endif - /* do local optimisations (mainly CSE) */ + /* do local optimizations (mainly CSE) */ optimize_graph_df(cg->irg); if (cg->dump)