fix in tree-if-conv.c
From-SVN: r123194
This commit is contained in:
parent
e65a3857a5
commit
3ece6cc239
@ -1,3 +1,8 @@
|
||||
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>
|
||||
|
||||
* config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
|
||||
|
@ -346,17 +346,28 @@ static bool
|
||||
if_convertible_gimple_modify_stmt_p (struct loop *loop, basic_block bb,
|
||||
tree m_expr)
|
||||
{
|
||||
tree lhs, rhs;
|
||||
|
||||
if (TREE_CODE (m_expr) != GIMPLE_MODIFY_STMT)
|
||||
return false;
|
||||
|
||||
if (dump_file && (dump_flags & TDF_DETAILS))
|
||||
{
|
||||
fprintf (dump_file, "-------------------------\n");
|
||||
print_generic_stmt (dump_file, m_expr, TDF_SLIM);
|
||||
}
|
||||
|
||||
/* Be conservative and do not handle immovable expressions. */
|
||||
if (movement_possibility (m_expr) == MOVE_IMPOSSIBLE)
|
||||
lhs = GIMPLE_STMT_OPERAND (m_expr, 0);
|
||||
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))
|
||||
fprintf (dump_file, "stmt is movable. Don't take risk\n");
|
||||
fprintf (dump_file, "stmt not suitable for ifcvt\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user