This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops
- From: Richard Biener <rguenther at suse dot de>
- To: "Andre Vieira (lists)" <andre dot simoesdiasvieira at arm dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 9 Oct 2019 10:54:07 +0200 (CEST)
- Subject: Re: [PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops
- References: <385547e6-abbd-3633-ad69-d4fb6e604c97@arm.com> <alpine.LSU.2.20.1908261422520.32458@zhemvz.fhfr.qr> <7a523cc4-d43f-fa56-f190-9a5c18488b42@arm.com>
On Tue, 8 Oct 2019, Andre Vieira (lists) wrote:
> Hi Richard,
>
> As I mentioned in the IRC channel, I managed to get "most" of the regression
> testsuite working for x86_64 (avx512) and aarch64.
>
> On x86_64 I get a failure that I can't explain, was hoping you might be able
> to have a look with me:
> "PASS->FAIL: gcc.target/i386/vect-perm-odd-1.c execution test"
>
> vect-perm-odd-1.exe segfaults and when I gdb it seems to be the first
> iteration of the main loop. The tree dumps look alright, but I do notice the
> stack usage seems to change between --param vect-epilogue-nomask={0,1}.
So the issue is that we have
=> 0x0000000000400778 <+72>: vmovdqa64 %zmm1,-0x40(%rax)
but the memory accessed is not appropriately aligned. The vectorizer
sets DECL_USER_ALIGN on the stack local but somehow later it downs
it to 256:
Old value = 640
New value = 576
ensure_base_align (dr_info=0x526f788) at
/tmp/trunk/gcc/tree-vect-stmts.c:6294
6294 DECL_USER_ALIGN (base_decl) = 1;
(gdb) l
6289 if (decl_in_symtab_p (base_decl))
6290 symtab_node::get (base_decl)->increase_alignment
(align_base_to);
6291 else
6292 {
6293 SET_DECL_ALIGN (base_decl, align_base_to);
6294 DECL_USER_ALIGN (base_decl) = 1;
6295 }
this means vectorizing the epilogue modifies the DRs, in particular
the base alignment?
> Am I missing to update some field that may later lead to the amount of stack
> being used? I am confused, it could very well be that I am missing something
> obvious, I am not too familiar with x86's ISA. I will try to investigate
> further.
>
> This patch needs further clean-up and more comments (or comment updates), but
> I thought I'd share current state to see if you can help me unblock.
>
> Cheers,
> Andre
>
--
Richard Biener <rguenther@suse.de>
SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
Germany; GF: Felix Imendörffer; HRB 247165 (AG München)