Commit 345ae177 by Aldy Hernandez Committed by Aldy Hernandez

gimple.c (is_gimple_non_addressable): Remove.

        * gimple.c (is_gimple_non_addressable): Remove.
        * gimple.h: Remove is_gimple_non_addressable.
        * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
        is_gimple_non_addressable.
        * trans-mem.c (expand_assign_tm): Same.

From-SVN: r183015
parent 2c5cbc31
2012-01-09 Aldy Hernandez <aldyh@redhat.com>
* gimple.c (is_gimple_non_addressable): Remove.
* gimple.h: Remove is_gimple_non_addressable.
* gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
is_gimple_non_addressable.
* trans-mem.c (expand_assign_tm): Same.
2012-01-09 Richard Guenther <rguenther@suse.de> 2012-01-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/51775 PR tree-optimization/51775
......
...@@ -2963,17 +2963,6 @@ is_gimple_reg (tree t) ...@@ -2963,17 +2963,6 @@ is_gimple_reg (tree t)
} }
/* Return true if T is a GIMPLE variable whose address is not needed. */
bool
is_gimple_non_addressable (tree t)
{
if (TREE_CODE (t) == SSA_NAME)
t = SSA_NAME_VAR (t);
return (is_gimple_variable (t) && ! needs_to_live_in_memory (t));
}
/* Return true if T is a GIMPLE rvalue, i.e. an identifier or a constant. */ /* Return true if T is a GIMPLE rvalue, i.e. an identifier or a constant. */
bool bool
......
...@@ -1006,9 +1006,6 @@ extern bool is_gimple_mem_rhs (tree); ...@@ -1006,9 +1006,6 @@ extern bool is_gimple_mem_rhs (tree);
/* Returns true iff T is a valid if-statement condition. */ /* Returns true iff T is a valid if-statement condition. */
extern bool is_gimple_condexpr (tree); extern bool is_gimple_condexpr (tree);
/* Returns true iff T is a variable that does not need to live in memory. */
extern bool is_gimple_non_addressable (tree t);
/* Returns true iff T is a valid call address expression. */ /* Returns true iff T is a valid call address expression. */
extern bool is_gimple_call_addr (tree); extern bool is_gimple_call_addr (tree);
......
...@@ -4411,7 +4411,9 @@ gimplify_modify_expr_rhs (tree *expr_p, tree *from_p, tree *to_p, ...@@ -4411,7 +4411,9 @@ gimplify_modify_expr_rhs (tree *expr_p, tree *from_p, tree *to_p,
/* It's OK to use the target directly if it's being /* It's OK to use the target directly if it's being
initialized. */ initialized. */
use_target = true; use_target = true;
else if (!is_gimple_non_addressable (*to_p)) else if (TREE_CODE (*to_p) != SSA_NAME
&& (!is_gimple_variable (*to_p)
|| needs_to_live_in_memory (*to_p)))
/* Don't use the original target if it's already addressable; /* Don't use the original target if it's already addressable;
if its address escapes, and the called function uses the if its address escapes, and the called function uses the
NRV optimization, a conforming program could see *to_p NRV optimization, a conforming program could see *to_p
......
...@@ -2184,7 +2184,7 @@ expand_assign_tm (struct tm_region *region, gimple_stmt_iterator *gsi) ...@@ -2184,7 +2184,7 @@ expand_assign_tm (struct tm_region *region, gimple_stmt_iterator *gsi)
/* ??? Figure out if there's any possible overlap between the LHS /* ??? Figure out if there's any possible overlap between the LHS
and the RHS and if not, use MEMCPY. */ and the RHS and if not, use MEMCPY. */
if (load_p && is_gimple_non_addressable (lhs)) if (load_p && is_gimple_reg (lhs))
{ {
tmp = create_tmp_var (TREE_TYPE (lhs), NULL); tmp = create_tmp_var (TREE_TYPE (lhs), NULL);
lhs_addr = build_fold_addr_expr (tmp); lhs_addr = build_fold_addr_expr (tmp);
......
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