Commit 9dd58aa4 by Jakub Jelinek Committed by Jakub Jelinek

gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also on…

gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also on COND_EXPR/VEC_COND_EXPR comparison operands if...

	* gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr
	also on COND_EXPR/VEC_COND_EXPR comparison operands if they are
	ADDR_EXPRs.

From-SVN: r179969
parent 9918dc0f
2011-10-14 Jakub Jelinek <jakub@redhat.com>
* gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr
also on COND_EXPR/VEC_COND_EXPR comparison operands if they are
ADDR_EXPRs.
2011-10-14 Richard Guenther <rguenther@suse.de> 2011-10-14 Richard Guenther <rguenther@suse.de>
PR tree-optimization/50723 PR tree-optimization/50723
...@@ -5313,9 +5313,24 @@ walk_stmt_load_store_addr_ops (gimple stmt, void *data, ...@@ -5313,9 +5313,24 @@ walk_stmt_load_store_addr_ops (gimple stmt, void *data,
|| gimple_code (stmt) == GIMPLE_COND)) || gimple_code (stmt) == GIMPLE_COND))
{ {
for (i = 0; i < gimple_num_ops (stmt); ++i) for (i = 0; i < gimple_num_ops (stmt); ++i)
if (gimple_op (stmt, i) {
&& TREE_CODE (gimple_op (stmt, i)) == ADDR_EXPR) tree op = gimple_op (stmt, i);
ret |= visit_addr (stmt, TREE_OPERAND (gimple_op (stmt, i), 0), data); if (op == NULL_TREE)
;
else if (TREE_CODE (op) == ADDR_EXPR)
ret |= visit_addr (stmt, TREE_OPERAND (op, 0), data);
/* COND_EXPR and VCOND_EXPR rhs1 argument is a comparison
tree with two operands. */
else if (i == 1 && COMPARISON_CLASS_P (op))
{
if (TREE_CODE (TREE_OPERAND (op, 0)) == ADDR_EXPR)
ret |= visit_addr (stmt, TREE_OPERAND (TREE_OPERAND (op, 0),
0), data);
if (TREE_CODE (TREE_OPERAND (op, 1)) == ADDR_EXPR)
ret |= visit_addr (stmt, TREE_OPERAND (TREE_OPERAND (op, 1),
0), data);
}
}
} }
else if (is_gimple_call (stmt)) else if (is_gimple_call (stmt))
{ {
......
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