This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Handling aliasing memory accesses in gimple/ssa
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Kyrill Tkachov <kyrylo dot tkachov at foss dot arm dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Tue, 10 May 2016 15:46:26 +0200
- Subject: Re: Handling aliasing memory accesses in gimple/ssa
- Authentication-results: sourceware.org; auth=none
- References: <5731E517 dot 40104 at foss dot arm dot com>
On Tue, May 10, 2016 at 3:41 PM, Kyrill Tkachov
<kyrylo.tkachov@foss.arm.com> wrote:
> Hi all,
>
> I'm taking a stab at fixing PR 22141 by merging adjacent stores into wider
> stores in a late gimple pass.
>
> My current plan is to go through all the assignments in a basic block and
> keep track of
> LHS expressions that are COMPONENT_REF, BIT_FIELD_REF, ARRAY_REF or
> ARRAY_RANGE_REF until
> we encounter an expression that affects the recorded stores or a mergeable
> store that aliases with
> any of the preceeding loads. My question is how to express that question in
> gimple/tree-ssa?
>
> Is taking get_alias_set of the two expressions that I want to compare and
> checking alias_sets_conflict_p enough?
That's too conservative. You want to use stmt_may_clobber_ref_p /
ref_maybe_used_by_stmt_p
and likely feed both with the "base" you want to perform the merging with.
Richard.
> Thanks,
> Kyrill
>