This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 1/3] Call recompute_tree_invariant_for_addr_expr when replacing a constant in an ADDR_EXPR.
- From: Richard Guenther <richard dot guenther at gmail dot com>
- To: Sebastian Pop <sebpop at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org, gcc-graphite at googlegroups dot com
- Date: Tue, 23 Nov 2010 13:45:58 +0100
- Subject: Re: [PATCH 1/3] Call recompute_tree_invariant_for_addr_expr when replacing a constant in an ADDR_EXPR.
- References: <1290467900-14995-1-git-send-email-sebpop@gmail.com>
On Tue, Nov 23, 2010 at 12:18 AM, Sebastian Pop <sebpop@gmail.com> wrote:
> Committed to the graphite branch.
>
> 2010-11-22 ?Sebastian Pop ?<sebastian.pop@amd.com>
>
> ? ? ? ?* sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
> ? ? ? ?when replacing a constant in an ADDR_EXPR.
> ---
> ?gcc/ChangeLog.graphite | ? ?5 +++++
> ?gcc/sese.c ? ? ? ? ? ? | ? 13 +++++++++++++
> ?2 files changed, 18 insertions(+), 0 deletions(-)
>
> diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
> index c2da86f..e5df72e 100644
> --- a/gcc/ChangeLog.graphite
> +++ b/gcc/ChangeLog.graphite
> @@ -1,3 +1,8 @@
> +2010-11-22 ?Sebastian Pop ?<sebastian.pop@amd.com>
> +
> + ? ? ? * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
> + ? ? ? when replacing a constant in an ADDR_EXPR.
> +
> ?2010-10-20 ?Sebastian Pop ?<sebastian.pop@amd.com>
>
> ? ? ? ?* graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
> diff --git a/gcc/sese.c b/gcc/sese.c
> index ffcb51c..dbb0cd7 100644
> --- a/gcc/sese.c
> +++ b/gcc/sese.c
> @@ -547,6 +547,19 @@ rename_uses (gimple copy, htab_t rename_map, gimple_stmt_iterator *gsi_tgt,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? true, NULL_TREE);
> ? ? ? gsi_insert_seq_before (gsi_tgt, stmts, GSI_SAME_STMT);
> ? ? ? replace_exp (use_p, new_expr);
> +
> +
> + ? ? ?if (TREE_CODE (new_expr) == INTEGER_CST)
> + ? ? ? {
> + ? ? ? ? tree lhs = gimple_assign_lhs (copy);
> + ? ? ? ? tree rhs = gimple_assign_rhs1 (copy);
> +
> + ? ? ? ? if (TREE_CODE (lhs) == ADDR_EXPR)
The lhs of an assign can never be ADDR_EXPR.
> + ? ? ? ? ? recompute_tree_invariant_for_addr_expr (lhs);
> + ? ? ? ? if (TREE_CODE (rhs) == ADDR_EXPR)
> + ? ? ? ? ? recompute_tree_invariant_for_addr_expr (rhs);
And I'm confused anyway - of new_expr is an INTEGER_CST, how
come it is an ADDR_EXPR?
> + ? ? ? }
> +
> ? ? ? set_rename (rename_map, old_name, new_expr);
> ? ? }
> ?}
> --
> 1.7.0.4
>
>