mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-02 11:00:37 +08:00
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
This commit is contained in:
parent
2c5cbc315f
commit
345ae17774
@ -1,3 +1,11 @@
|
||||
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>
|
||||
|
||||
PR tree-optimization/51775
|
||||
|
11
gcc/gimple.c
11
gcc/gimple.c
@ -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. */
|
||||
|
||||
bool
|
||||
|
@ -1006,9 +1006,6 @@ extern bool is_gimple_mem_rhs (tree);
|
||||
/* Returns true iff T is a valid if-statement condition. */
|
||||
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. */
|
||||
extern bool is_gimple_call_addr (tree);
|
||||
|
||||
|
@ -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
|
||||
initialized. */
|
||||
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;
|
||||
if its address escapes, and the called function uses the
|
||||
NRV optimization, a conforming program could see *to_p
|
||||
|
@ -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
|
||||
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);
|
||||
lhs_addr = build_fold_addr_expr (tmp);
|
||||
|
Loading…
x
Reference in New Issue
Block a user