This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 1/6]tree-ssa-dom.c: Normalize exprs, starting with ARRAY_REF to MEM_REF
- From: Alan Lawrence <alan dot lawrence at arm dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: law at redhat dot com
- Date: Tue, 3 Nov 2015 11:13:33 +0000
- Subject: Re: [PATCH 1/6]tree-ssa-dom.c: Normalize exprs, starting with ARRAY_REF to MEM_REF
- Authentication-results: sourceware.org; auth=none
- References: <563301AA dot 4050009 at redhat dot com> <1446546443-27379-1-git-send-email-alan dot lawrence at arm dot com>
On 3 November 2015 at 10:27, Alan Lawrence <alan.lawrence@arm.com> wrote:
> That is, ssa-dom-cse-7.c passes (and the patch series solves PR/63679) if
> instead of my patch 2 (normalization of MEM_REFs) we have this:
>
> diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
> index 4327990..2889a96 100644
> --- a/gcc/tree-sra.c
> +++ b/gcc/tree-sra.c
> @@ -1697,7 +1697,7 @@ build_ref_for_offset (location_t loc, tree base, HOST_WIDE_INT offset,
> }
> else
> {
> - off = build_int_cst (reference_alias_ptr_type (base),
> + off = build_int_cst (build_pointer_type (exp_type),
> base_offset + offset / BITS_PER_UNIT);
> base = build_fold_addr_expr (unshare_expr (base));
> }
>
> ...I'll test that fully but I have to wonder what the right path is here!
So with also changing the other reference_alias_ptr_type in the first
case of build_ref_for_offset, it breaks Ada ACATS (on x86):
c52101a "CHECK THAT ARRAY SUBTYPE CONVERSION IS APPLIED AFTER AN ARRAY
VALUE IS DETERMINED"
cc70003
cxac004 (stream access, stream functions)
....I'll not dig any further unless you think that change to SRA is
the right avenue to investigate!
Cheers, Alan