From 8ebcad86e6aa747d9ca8a077ab1127a04d0d91d3 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 18 Nov 2015 11:23:21 +0100 Subject: re PR tree-optimization/68157 (internal compiler error: in reassoc_stmt_dominates_stmt_p, at tree-ssa-reassoc.c:1287) PR tree-optimization/68157 * tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of pow_stmt or mul_stmt from stmt's uid. (reassociate_bb): Set uid of mul_stmt from stmt's uid. * g++.dg/opt/pr68157.C: New test. From-SVN: r230530 --- gcc/tree-ssa-reassoc.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gcc/tree-ssa-reassoc.c') diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c index 7be934d..dfd0da1 100644 --- a/gcc/tree-ssa-reassoc.c +++ b/gcc/tree-ssa-reassoc.c @@ -4441,6 +4441,7 @@ attempt_builtin_powi (gimple *stmt, vec *ops) power)); gimple_call_set_lhs (pow_stmt, iter_result); gimple_set_location (pow_stmt, gimple_location (stmt)); + gimple_set_uid (pow_stmt, gimple_uid (stmt)); gsi_insert_before (&gsi, pow_stmt, GSI_SAME_STMT); if (dump_file && (dump_flags & TDF_DETAILS)) @@ -4524,6 +4525,7 @@ attempt_builtin_powi (gimple *stmt, vec *ops) mul_stmt = gimple_build_assign (target_ssa, MULT_EXPR, op1, op2); gimple_set_location (mul_stmt, gimple_location (stmt)); + gimple_set_uid (mul_stmt, gimple_uid (stmt)); gsi_insert_before (&gsi, mul_stmt, GSI_SAME_STMT); rf1->repr = target_ssa; @@ -4541,6 +4543,7 @@ attempt_builtin_powi (gimple *stmt, vec *ops) power)); gimple_call_set_lhs (pow_stmt, iter_result); gimple_set_location (pow_stmt, gimple_location (stmt)); + gimple_set_uid (pow_stmt, gimple_uid (stmt)); gsi_insert_before (&gsi, pow_stmt, GSI_SAME_STMT); } @@ -4552,6 +4555,7 @@ attempt_builtin_powi (gimple *stmt, vec *ops) mul_stmt = gimple_build_assign (new_result, MULT_EXPR, result, iter_result); gimple_set_location (mul_stmt, gimple_location (stmt)); + gimple_set_uid (mul_stmt, gimple_uid (stmt)); gsi_insert_before (&gsi, mul_stmt, GSI_SAME_STMT); gimple_set_visited (mul_stmt, true); result = new_result; @@ -4908,6 +4912,7 @@ reassociate_bb (basic_block bb) mul_stmt = gimple_build_assign (lhs, MULT_EXPR, powi_result, target_ssa); gimple_set_location (mul_stmt, gimple_location (stmt)); + gimple_set_uid (mul_stmt, gimple_uid (stmt)); gsi_insert_after (&gsi, mul_stmt, GSI_NEW_STMT); } } -- cgit v1.1