Commit 3ece6cc2 by Revital Eres Committed by Revital Eres

fix in tree-if-conv.c

From-SVN: r123194
parent e65a3857
2007-03-25 Revital Eres <eres@il.ibm.com>
* tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
Fold movement_possibility function into it.
2007-03-25 David Edelsohn <edelsohn@gnu.org> 2007-03-25 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0. * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
......
...@@ -346,17 +346,28 @@ static bool ...@@ -346,17 +346,28 @@ static bool
if_convertible_gimple_modify_stmt_p (struct loop *loop, basic_block bb, if_convertible_gimple_modify_stmt_p (struct loop *loop, basic_block bb,
tree m_expr) tree m_expr)
{ {
tree lhs, rhs;
if (TREE_CODE (m_expr) != GIMPLE_MODIFY_STMT)
return false;
if (dump_file && (dump_flags & TDF_DETAILS)) if (dump_file && (dump_flags & TDF_DETAILS))
{ {
fprintf (dump_file, "-------------------------\n"); fprintf (dump_file, "-------------------------\n");
print_generic_stmt (dump_file, m_expr, TDF_SLIM); print_generic_stmt (dump_file, m_expr, TDF_SLIM);
} }
/* Be conservative and do not handle immovable expressions. */ lhs = GIMPLE_STMT_OPERAND (m_expr, 0);
if (movement_possibility (m_expr) == MOVE_IMPOSSIBLE) rhs = GIMPLE_STMT_OPERAND (m_expr, 1);
/* Some of these constrains might be too conservative. */
if (stmt_ends_bb_p (m_expr) || stmt_ann (m_expr)->has_volatile_ops
|| (TREE_CODE (lhs) == SSA_NAME
&& SSA_NAME_OCCURS_IN_ABNORMAL_PHI (lhs))
|| TREE_SIDE_EFFECTS (rhs))
{ {
if (dump_file && (dump_flags & TDF_DETAILS)) if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file, "stmt is movable. Don't take risk\n"); fprintf (dump_file, "stmt not suitable for ifcvt\n");
return false; return false;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment