summaryrefslogtreecommitdiffhomepage
path: root/ir/be/beprefalloc.c
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2015-05-24 10:00:45 +0200
committerMatthias Braun <matze@braunis.de>2015-05-24 10:00:45 +0200
commit61b68eb91ca8ce482297fd219b906d84d7f7b421 (patch)
tree6fc939d6a95b6f84e8198e8e1ad613ddc556fa02 /ir/be/beprefalloc.c
parent3e79d08e2fa64150e2a04132e5074370f0ff124f (diff)
beprefalloc: fix problems with the now enable localopts
Diffstat (limited to 'ir/be/beprefalloc.c')
-rw-r--r--ir/be/beprefalloc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ir/be/beprefalloc.c b/ir/be/beprefalloc.c
index 6161a61..dde4f53 100644
--- a/ir/be/beprefalloc.c
+++ b/ir/be/beprefalloc.c
@@ -1812,6 +1812,11 @@ static void spill(void)
*/
static void be_pref_alloc(ir_graph *new_irg)
{
+ /* disable optimization callbacks as we cannot deal with same-input phis
+ * getting optimized away. */
+ int last_opt_state = get_optimize();
+ set_optimize(0);
+
irg = new_irg;
obstack_init(&obst);
@@ -1858,6 +1863,8 @@ static void be_pref_alloc(ir_graph *new_irg)
free_block_order();
obstack_free(&obst, NULL);
+
+ set_optimize(last_opt_state);
}
BE_REGISTER_MODULE_CONSTRUCTOR(be_init_pref_alloc)