Re: [PATCH] Fixes to testcase for PR tree-optimization/86636

2018-07-27 Thread Andre Vieira (lists)
On 27/07/18 16:39, David Malcolm wrote: > On Thu, 2018-07-26 at 13:22 +0100, Andre Vieira (lists) wrote: > > [...snip...] > >>>> diff --git a/gcc/testsuite/gcc.c-torture/compile/pr86636.c >>>> b/gcc/testsuite/gcc.c-torture/compile/pr86636.c >>>>

Re: [PATCH] Fix segfault in -fsave-optimization-record (PR tree-optimization/86636)

2018-07-26 Thread Andre Vieira (lists)
On 24/07/18 15:12, Richard Biener wrote: > On Tue, Jul 24, 2018 at 1:44 AM David Malcolm wrote: >> >> There are various ways that it's possible for a gimple statement to >> have an UNKNOWN_LOCATION, and for that UNKNOWN_LOCATION to be wrapped >> in an ad-hoc location to capture inlining

Re: [AArch64][PATCH 1/2] Fix addressing printing of LDP/STP

2018-07-19 Thread Andre Vieira (lists)
On 17/07/18 15:52, James Greenhalgh wrote: > On Mon, Jun 25, 2018 at 03:48:13AM -0500, Andre Simoes Dias Vieira wrote: >> On 18/06/18 09:08, Andre Simoes Dias Vieira wrote: >>> Hi Richard, >>> >>> Sorry for the delay I have been on holidays. I had a look and I think you >>> are right. With

Re: [PATCH, GCC, AARCH64] Add support for +profile extension

2018-07-19 Thread Andre Vieira (lists)
On 17/07/18 16:23, James Greenhalgh wrote: > On Mon, Jul 09, 2018 at 08:20:53AM -0500, Andre Vieira (lists) wrote: >> Hi, >> >> This patch adds support for the Statistical Profiling Extension (SPE) on >> AArch64. Even though the compiler will not generate co

Re: [PATCH][OBVIOUS] Add missing Optimization attribute.

2018-07-10 Thread Andre Vieira (lists)
On 09/07/18 09:11, Martin Liška wrote: > Hi. > > I'm putting back what I accidentally removed. > > Martin > > gcc/ChangeLog: > > 2018-07-09 Martin Liska > > * common.opt: Add back wrongly removed attribute. > --- > gcc/common.opt | 2 +- > 1 file changed, 1 insertion(+), 1

Re: [PATCH] fold strlen() of aggregate members (PR 77357)

2018-07-11 Thread Andre Vieira (lists)
On 09/07/18 22:44, Martin Sebor wrote: > On 07/09/2018 06:40 AM, Richard Biener wrote: >> On Sun, Jul 8, 2018 at 4:56 AM Martin Sebor wrote: >>> >>> On 07/06/2018 09:52 AM, Richard Biener wrote: On Fri, Jul 6, 2018 at 1:54 AM Martin Sebor wrote: > > GCC folds accesses to members of

Re: [PATCH] fold strlen() of aggregate members (PR 77357)

2018-07-11 Thread Andre Vieira (lists)
On 11/07/18 11:00, Andre Vieira (lists) wrote: > On 09/07/18 22:44, Martin Sebor wrote: >> On 07/09/2018 06:40 AM, Richard Biener wrote: >>> On Sun, Jul 8, 2018 at 4:56 AM Martin Sebor wrote: >>>> >>>> On 07/06/2018 09:52 AM, Richard Biener wrote: >>

[PATCH, GCC, AARCH64] Add support for +profile extension

2018-07-09 Thread Andre Vieira (lists)
Hi, This patch adds support for the Statistical Profiling Extension (SPE) on AArch64. Even though the compiler will not generate code any differently given this extension, it will need to pass it on to the assembler in order to let it correctly assemble inline asm containing accesses to the

Re: Add support for dumping multiple dump files under one name

2018-07-03 Thread Andre Vieira (lists)
On 03/07/18 15:15, David Malcolm wrote: > On Tue, 2018-07-03 at 11:00 +0100, Andre Vieira (lists) wrote: >> On 29/06/18 11:13, David Malcolm wrote: >>> On Fri, 2018-06-29 at 10:15 +0200, Richard Biener wrote: >>>> On Fri, 22 Jun 2018, Jan Hubicka wrote: >&g

Re: [PATCH ARM] Fix armv8-m multilib build failure with stdint.h

2018-06-22 Thread Andre Vieira (lists)
On 17/05/18 09:29, Kyrill Tkachov wrote: > > On 16/05/18 10:22, Jérôme Lambourg wrote: >> Hello Kyrill, >> >>> Thanks for the patch! To validate it your changes you can also look >>> at the disassembly >>> of the cmse.c binary in the build tree. If the binary changes with >>> your patch then that

Re: [ARM][PATCH] Make arm_cmse.h C99 compatible

2018-06-22 Thread Andre Vieira (lists)
On 05/06/18 11:18, Kyrill Tkachov wrote: > > On 05/06/18 11:03, Andre Vieira (lists) wrote: >> On 05/06/18 10:42, Kyrill Tkachov wrote: >>> Hi Andre, >>> >>> On 05/06/18 10:40, Andre Vieira (lists) wrote: >>>> Hi all, >>>> >>&g

[PATCH][GCC] Make DR_TARGET_ALIGNMENT compile time variable

2018-11-05 Thread Andre Vieira (lists)
Hi, This patch enables targets to describe DR_TARGET_ALIGNMENT as a compile-time variable. It does so by turning the variable into a 'poly_uint64'. This should not affect the current code-generation for any target. We hope to use this in the near future for SVE using the current_vector_size

Re: [PATCH][GCC] Make DR_TARGET_ALIGNMENT compile time variable

2018-11-09 Thread Andre Vieira (lists)
On 05/11/18 12:41, Richard Biener wrote: > On Mon, Nov 5, 2018 at 1:07 PM Andre Vieira (lists) > wrote: >> >> >> Hi, >> Hi, Thank you for the quick response! See inline responses below. >> This patch enables targets to describe DR_TARGET_ALIGNMENT as a &

[committed, GCC-8, Arm] Backport of PR target/88224

2018-12-14 Thread Andre Vieira (lists)
Hi, I committed a tweaked backport of https://gcc.gnu.org/ml/gcc-patches/2018-11/msg02276.html to the gcc-8-branch in r267124. There was a small subtle difference, since in GCC-8 we didn't enable fpu by default for cores, so rather than changing the default to use the right fpu, I changed

Re: [PATCH][Arm] Fix FPU configurations for Cortex-R7 and Cortex-R8

2018-11-28 Thread Andre Vieira (lists)
On 27/11/18 14:18, Richard Earnshaw (lists) wrote: > On 27/11/2018 14:10, Andre Vieira (lists) wrote: >> >> Both Cortex-R7 and Cortex-R8 support FP16 conversion instructions and both >> have >> SP only and SP + DP configurations. > > You're missing the upd

Re: [PATCH][Arm] Fix FPU configurations for Cortex-R7 and Cortex-R8

2018-11-29 Thread Andre Vieira (lists)
On 28/11/18 10:57, Richard Earnshaw (lists) wrote: > On 28/11/2018 10:43, Andre Vieira (lists) wrote: >> On 27/11/18 14:18, Richard Earnshaw (lists) wrote: >>> On 27/11/2018 14:10, Andre Vieira (lists) wrote: >>>> >>>> Both Cortex-R7 and Cortex-R8 sup

[PATCH][Arm] Fix FPU configurations for Cortex-R7 and Cortex-R8

2018-11-27 Thread Andre Vieira (lists)
Hi, This patch fixes the FPU configurations of Cortex-R7 and Cortex-R8, enabling the use of FP16 conversion instructions for both and adding the option to disable double precision instruction support using '+nofp.dp'. Passes the self-check during building for an arm target. Is this OK for

[PATCH, GCC] PR target/86487: fix the way 'uses_hard_regs_p' handles paradoxical subregs

2019-01-07 Thread Andre Vieira (lists)
Hi, This patch fixes the way 'uses_hard_regs_p' handles paradoxical subregs. The function is supposed to detect whether a register access of 'x' overlaps with 'set'. For SUBREGs it should check whether any of the full multi-register overlaps with 'set'. The former behavior used to grab

Re: [PATCH, GCC] PR target/86487: fix the way 'uses_hard_regs_p' handles paradoxical subregs

2019-01-08 Thread Andre Vieira (lists)
On 07/01/2019 22:50, Jeff Law wrote: On 1/7/19 7:42 AM, Andre Vieira (lists) wrote: Hi, This patch fixes the way 'uses_hard_regs_p' handles paradoxical subregs.  The function is supposed to detect whether a register access of 'x' overlaps with 'set'.  For SUBREGs it should check whether

Re: [GCC-8, Arm, committed] Fix availability of FP16-FP64 conversion instructions

2019-03-13 Thread Andre Vieira (lists)
Christophe Lyon * gcc.target/arm/f16_f64_conv_no_dp.c: Add arm_fp16_ok effective target. On 12/03/2019 14:54, Andre Vieira (lists) wrote: Hi, Thanks Christophe! I have committed a backport of r269499 including the testism fix r269596 to gcc-8 branch in r269613. gcc/ChangeLog

Re: [GCC, Arm, committed] Fix availability of FP16-FP64 conversion instructions

2019-03-11 Thread Andre Vieira (lists)
Hi, Any objections to me backporting this to GCC 8 and 7? Cheers, Andre On 08/03/2019 17:30, Andre Vieira (lists) wrote: Hi, vcvtb.f16.f64 and vcvtb.f64.f16 were being made available even for FPUs that do not support double precision.  This patch fixes that. Regression tested for arm-none

[GCC, Arm, committed] Fix availability of FP16-FP64 conversion instructions

2019-03-08 Thread Andre Vieira (lists)
Hi, vcvtb.f16.f64 and vcvtb.f64.f16 were being made available even for FPUs that do not support double precision. This patch fixes that. Regression tested for arm-none-eabi. Committed in r269499. Cheers, Andre gcc/ChangeLog: 2019-03-08 Andre Vieira * config/arm/arm.h

[GCC-8, Arm, committed] Fix availability of FP16-FP64 conversion instructions

2019-03-12 Thread Andre Vieira (lists)
* gcc.target/arm/f16_f64_conv_no_dp.c: Add arm_fp16_ok effective target. On 11/03/2019 20:50, Ramana Radhakrishnan wrote: Nope, just do it after testing it and adjust with Christophes follow up R On Mon, 11 Mar 2019, 10:36 Andre Vieira (lists), mailto:andre.simoesdiasvie...@arm.com>>

Re: [PATCH, GCC] PR target/86487: fix the way 'uses_hard_regs_p' handles paradoxical subregs

2019-02-13 Thread Andre Vieira (lists)
PING. Since Jeff is away can another maintainer have a look at this please? Cheers, Andre On 01/02/2019 14:31, Andre Vieira (lists) wrote: On 11/01/2019 22:54, Jeff Law wrote: On 1/8/19 8:21 AM, Andre Vieira (lists) wrote: On 07/01/2019 22:50, Jeff Law wrote: On 1/7/19 7:42 AM, Andre

Re: [PATCH, GCC] PR target/86487: fix the way 'uses_hard_regs_p' handles paradoxical subregs

2019-02-15 Thread Andre Vieira (lists)
Hi Vlad, On 13/02/2019 16:46, Vladimir Makarov wrote: On 2019-02-13 5:54 a.m., Andre Vieira (lists) wrote: PING. Since Jeff is away can another maintainer have a look at this please? I see the following patch Yeah I uploaded the wrong patch... sorry. See attached, including a testcase

[PATCH][wwwdocs][Arm] Mention the fixed configurations for Cortex-R7 and Cortex-R8

2019-02-01 Thread Andre Vieira (lists)
Hi, This patch adds the documentation to the FPU configuration fixes for Cortex-R7 and Cortex-R8 to changes.html for GCC9. See https://gcc.gnu.org/ml/gcc-patches/2018-11/msg02183.html I have validated the html using the W3C validator. Is it OK? Cheers, Andre ? .changes.html.swp ? patch cvs

Re: [PATCH, GCC] PR target/86487: fix the way 'uses_hard_regs_p' handles paradoxical subregs

2019-02-01 Thread Andre Vieira (lists)
On 11/01/2019 22:54, Jeff Law wrote: On 1/8/19 8:21 AM, Andre Vieira (lists) wrote: On 07/01/2019 22:50, Jeff Law wrote: On 1/7/19 7:42 AM, Andre Vieira (lists) wrote: Hi, This patch fixes the way 'uses_hard_regs_p' handles paradoxical subregs.   The function is supposed to detect

[RFC][tree-vect]PR 88915: Further vectorize second loop when versioning

2019-07-11 Thread Andre Vieira (lists)
Hi Richard(s), I am trying to tackle PR88915 and get GCC to further vectorize the "fallback" loop when doing loop versioning as it does when loop versioning is not required. I have a prototype patch that needs further testing, but at first glance it seems to be achieving the desired

Re: [RFC][tree-vect]PR 88915: Further vectorize second loop when versioning

2019-07-15 Thread Andre Vieira (lists)
On 12/07/2019 11:19, Richard Biener wrote: On Thu, 11 Jul 2019, Andre Vieira (lists) wrote: I think for code-size reason it would make sense to do it like if (iterations_check_for_lowest_VF ()) { if (alias_check_for_highest_VF

[PATCH 0/2][vect] Improve vectorization of epilogues

2019-08-23 Thread Andre Vieira (lists)
Hi, In this patch series I address PR 88915 in the first patch, by enabling vectorization of epilogues when doing loop versioning and turn on --param vect-epilogues-nomask=1 on by default in the second patch. I benchmarked intrate SPEC2017 for both aarch64 and x86_64 (AVX512). This patch

[PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops

2019-08-23 Thread Andre Vieira (lists)
Hi, This patch is an improvement on my last RFC. As you pointed out, we can do the vectorization analysis of the epilogues before doing the transformation, using the same approach as used by openmp simd. I have not yet incorporated the cost tweaks for vectorizing the epilogue, I would like

[PATCH 2/2][vect]Make vect-epilogues-nomask=1 default

2019-08-23 Thread Andre Vieira (lists)
Hi, In this patch I turn epilogue vectorization on by default. I had to make changes to the tests since the vectorizer dumps now show the analysis for both the first and second vectorization. This required checks like 'scan-tree-dump-times' to be raised to meet the new numbers. For some

[RFC][vect]PR: 65930 teach vectorizer to handle SUM reductions with sign-change casts

2019-08-23 Thread Andre Vieira (lists)
Hi Richard, I have come up with a way to teach the vectorizer to handle sign-changing reductions, restricted to SUM operations as I'm not sure other reductions are equivalent with different signs. The main nature of this approach is to let it recognize reductions of the form:

Re: [PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops

2019-09-18 Thread Andre Vieira (lists)
Hi Richard, As I mentioned in the IRC channel, this is my current work in progress patch. It currently ICE's when vectorizing gcc/testsuite/gcc.c-torture/execute/nestfunc-2.c with '-O3' and '--param vect-epilogues-nomask=1'. It ICE's because the epilogue loop (after if conversion) and main

Re: [RFC][tree-vect]PR 88915: Further vectorize second loop when versioning

2019-07-30 Thread Andre Vieira (lists)
On 30/07/2019 13:16, Andre Vieira (lists) wrote: Hi Richard, I believe this is in line with what you were explaining to me earlier. The one thing I haven't quite done here is the jump around for if there is no prolog peeling. Though I think skip_vectors introduces the jumping we need

Re: [RFC][tree-vect]PR 88915: Further vectorize second loop when versioning

2019-07-30 Thread Andre Vieira (lists)
ram vect_epilogues_nomask=1' already causes wrong codegen in SPEC2017 for the gcc and perlbench benchmarks. Cheers, Andre On 19/07/2019 13:38, Andre Vieira (lists) wrote: On 19/07/2019 12:35, Richard Biener wrote: On Fri, 19 Jul 2019, Andre Vieira (lists) wrote: On 15/07/2019 11:54, Ri

Re: [RFC][tree-vect]PR 88915: Further vectorize second loop when versioning

2019-08-05 Thread Andre Vieira (lists)
Hi Richard, Thanks for the feedback! See comments inline. On 01/08/2019 16:26, Richard Biener wrote: On Tue, 30 Jul 2019, Andre Vieira (lists) wrote: On 30/07/2019 13:16, Andre Vieira (lists) wrote: Hi Richard, I believe this is in line with what you were explaining to me earlier

Re: [RFC][tree-vect]PR 88915: Further vectorize second loop when versioning

2019-07-19 Thread Andre Vieira (lists)
On 15/07/2019 11:54, Richard Biener wrote: On Mon, 15 Jul 2019, Andre Vieira (lists) wrote: On 12/07/2019 11:19, Richard Biener wrote: On Thu, 11 Jul 2019, Andre Vieira (lists) wrote: I have code that can split the condition and alias checks in 'vect_loop_versioning

Re: [RFC][tree-vect]PR 88915: Further vectorize second loop when versioning

2019-07-19 Thread Andre Vieira (lists)
On 19/07/2019 12:35, Richard Biener wrote: On Fri, 19 Jul 2019, Andre Vieira (lists) wrote: On 15/07/2019 11:54, Richard Biener wrote: On Mon, 15 Jul 2019, Andre Vieira (lists) wrote: On 12/07/2019 11:19, Richard Biener wrote: On Thu, 11 Jul 2019, Andre Vieira (lists) wrote: I

[PATCH][vect] Disable vectorization of epilogues for loops with SIMDUID set

2019-11-04 Thread Andre Vieira (lists)
Hi, I was using loop->simdlen to detect whether it was a SIMD loop and I don't believe that was correct, as can be witnessed by the mass failures in libgomp. My apologies for not running this, didn't think of it! I found that these were failing because we do not handle vectorization of

[PATCH][vect]PR92347: Don't overwrite safelen for epilogues

2019-11-11 Thread Andre Vieira (lists)
Hi, After during my investigation into the first testcase in PR92347 I noticed that the ICE was arising because the vectorizer was under the assumption it knew how to vectorize the zp call for both the main and epilogues. By the time it got to transform the epilogue

[PATCH][vect] PR92317: fix skip_epilogue creation for epilogues

2019-11-06 Thread Andre Vieira (lists)
Hi, When investigating PR92317 I noticed that when we create the skip epilogue condition, see ('if (skip_epilog)' in 'vect_do_peeling'), we only copy phi-nodes that are not constants in 'slpeel_update_phi_nodes_for_guard2'. This can cause problems later when we create the scalar epilogue

Re: [PATCH][vect] PR92317: fix skip_epilogue creation for epilogues

2019-11-06 Thread Andre Vieira (lists)
Sorry for the double post, ignore please. On 06/11/2019 10:57, Andre Vieira (lists) wrote: Hi, When investigating PR92317 I noticed that when we create the skip epilogue condition, see ('if (skip_epilog)' in 'vect_do_peeling'), we only copy phi-nodes that are not constants

Re: [PATCH][vect] PR 92351: When peeling for alignment make alignment of epilogues unknown

2019-11-07 Thread Andre Vieira (lists)
On 07/11/2019 14:00, Richard Biener wrote: On Thu, 7 Nov 2019, Andre Vieira (lists) wrote: Hi, PR92351 reports a bug in which a wrongly aligned load is generated for an epilogue of a main loop for which we peeled for alignment. There is no way to guarantee that epilogue data accesses

[PATCH][vect] PR 92351: When peeling for alignment make alignment of epilogues unknown

2019-11-07 Thread Andre Vieira (lists)
Hi, PR92351 reports a bug in which a wrongly aligned load is generated for an epilogue of a main loop for which we peeled for alignment. There is no way to guarantee that epilogue data accesses are aligned when the main loop is peeling for alignment. I also had to split vect-peel-2.c as

Re: [PATCH][vect] Disable vectorization of epilogues for loops with SIMDUID set

2019-11-07 Thread Andre Vieira (lists)
Hi, Rebased the patch on top of Richard Sandiford's patches, with his fixes I can now allow for vectorization of epilogues after we match simdlen. This will however not turn on epilogue vectorization in cases where we specify a desired simdlen that is never matched. This would require more

[PATCH][vect] PR92317: fix skip_epilogue creation for epilogues

2019-11-05 Thread Andre Vieira (lists)
Hi, When investigating PR92317 I noticed that when we create the skip epilogue condition, see ('if (skip_epilog)' in 'vect_do_peeling'), we only copy phi-nodes that are not constants in 'slpeel_update_phi_nodes_for_guard2'. This can cause problems later when we create the scalar epilogue

[PATCH][testuite] Fix pr80481.C after epilogue vectorization

2019-10-31 Thread Andre Vieira (lists)
Hi, I used to have this testcase in my patch when testing but forgot to include it in the patch I sent upstream. This testcase checks that a vmovaps isn't generated when vectorizing the loop. When I turn epilogue vectorization it seems to come back. @Jakub: This test has -fopenmp but I

Re: [PATCH][testuite] Fix pr80481.C after epilogue vectorization

2019-10-31 Thread Andre Vieira (lists)
On 31/10/2019 14:04, Jakub Jelinek wrote: On Thu, Oct 31, 2019 at 01:55:26PM +, Andre Vieira (lists) wrote: I used to have this testcase in my patch when testing but forgot to include it in the patch I sent upstream. This testcase checks that a vmovaps isn't generated when vectorizing

[PATCH][vect] Clean up orig_loop_vinfo from vect_analyze_loop

2019-10-31 Thread Andre Vieira (lists)
Hi, After my patch I believe the only way orig_loop_vinfo is not null when calling vect_analyze_loop is when it is called for an epilogue and in that case we no longer use that variable, since LOOP_VINFO_ORIG_LOOP_INFO is already set for the epilogue's loop_vec_info. This patch removes that

Re: [PATCH 2/2][vect]Make vect-epilogues-nomask=1 default

2019-10-30 Thread Andre Vieira (lists)
Hi, In this patch I turn epilogue vectorization on by default for all targets. After some discussions I decided to take the following testing approach: 1) I have disabled epilogue vectorization for all tests that failed due to scan-tree-dump failures inside: - gcc.dg/vect -

[PATCH][vect]Account for epilogue's peeling for gaps when checking if we have enough niters for epilogue

2019-11-08 Thread Andre Vieira (lists)
Hi, As I mentioned in the patch to disable epilogue vectorization for loops with SIMDUID set, there were still some aarch64 libgomp failures. This patch fixes those. The problem was that we were vectorizing a reduction that was only using one of the parts from a complex number, creating

[PATCH][vect] Keep track of DR_OFFSET advance in dr_vec_info rather than data_reference

2019-12-10 Thread Andre Vieira (lists)
Hi, This patch aims at refactoring the vectorizer code to no longer need to reset DR_OFFSET for epilogue vectorization and instead keep track of DR_OFFSET changes per dr_vec_info and just update it as needed. I added a member of type 'tree' called 'offset' to dr_vec_info, which keeps track

Re: [testsuite][arm] Remove xfail for vect-epilogues test

2019-12-13 Thread Andre Vieira (lists)
Thanks for pointing it out Rainer. Thanks to that reminder I noticed there is a different way to achieve this without adding that extra target check. This OK? gcc/testsuite/ChangeLog: 2019-12-12 Andre Vieira * gcc.dg/vect/vect-epilogues.c: XFAIL for arm big endian. On 12/12/2019

Re: [testsuite][arm] Remove xfail for vect-epilogues test

2019-12-13 Thread Andre Vieira (lists)
Consequently whilst looking at the list I noticed these two were missing. This OK for trunk? gcc/ChangeLog: 2019-12-13 Andre Vieira * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented existing target checks. On 13/12/2019 13:05, Andre Vieira (lists) wrote

[testsuite][arm] Remove xfail for vect-epilogues test

2019-12-11 Thread Andre Vieira (lists)
Hi, We can now vectorize an epilogue for this loop for arm too, so removing xfail. Is this OK for trunk? Wasn't entirely sure whether I could commit this under obvious. gcc/testsuite/ChangeLog: 2019-12-11 Andre Vieira * gcc.dg/vect/vect-epilogues.c: Remove xfail for arm. diff

Re: [testsuite][arm] Remove xfail for vect-epilogues test

2019-12-12 Thread Andre Vieira (lists)
, Christophe Lyon wrote: On Wed, 11 Dec 2019 at 12:27, Andre Vieira (lists) wrote: Hi, We can now vectorize an epilogue for this loop for arm too, so removing xfail. Is this OK for trunk? Wasn't entirely sure whether I could commit this under obvious. This fails on armeb :-( gcc/testsuite/ChangeLog

[PATCH][Arm] Fix multilibs for Armv7-R

2019-10-18 Thread Andre Vieira (lists)
Hi This patch maps multilibs using -march=armv7-r+vfpv3-d16-fp16 and -march=armv7-r+vfpv3-d16-fp16+idiv to v7+fp. This patch also adds a new multilib for armv7-r+fp.sp and maps -march=armv7-r+fp.sp+idiv, -march=armv7-r+vfpv3xd-fp16 and -march=armv7-r+vfpv3xd-fp16+idiv to it. This solves issues

[committed][vect] Only change base alignment if more restrictive

2019-10-21 Thread Andre Vieira (lists)
Hi all, This patch was pre-approved by richi. This patch makes sure ensure_base_align only changes alignment if the new alignment is more restrictive. It already did this if we were dealing with symbols, but it now does it for all types of declarations. Committed in revision r277238.

Re: [Patch 1/2][ipa] Add target hook to sanitize cloned declaration's attributes

2019-10-15 Thread Andre Vieira (lists)
TARGET_MODIFY_CLONE_CGRAPH_NODE. * doc/tm.texi: Regenerated On 09/10/2019 16:35, Andre Vieira (lists) wrote: Adding Jakub to CC' On 09/10/2019 16:29, Andre Vieira (lists) wrote: Hi Martin, I see thank you. For my particular use case I only need to strip attributes for local symbols.  However, if I

Re: [Patch 2/2][Arm] Implement TARGET_HOOK_SANITIZE_CLONE_ATTRIBUTES to remove cmse_nonsecure_entry

2019-10-15 Thread Andre Vieira (lists)
Andre Vieira * gcc.target/arm/cmse/ipa-clone.c: New test. On 11/10/2019 00:29, Ramana Radhakrishnan wrote: On Tue, Oct 8, 2019 at 4:21 PM Andre Vieira (lists) wrote: Hi, This patch implements the TARGET_HOOK_SANITIZE_CLONE_ATTRIBUTES for the arm backend to remove

[committed, arm] Backport -- Fix multilibs for Armv7-R(was Re: [PATCH, arm] Backport -- Fix multilibs for Armv7-R)

2019-10-24 Thread Andre Vieira (lists)
Hi, We had a chat offline with Kyrill in which he approved committing the patch now. Unfortunately he isn't able to access his email until tomorrow to confirm his approval, but given a time sensitive deadline and the fact that this patch was previously reviewed and accepted on trunk I am

[committed][vect]PR 88915: Vectorize epilogues when versioning loops (was Re: [PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops)

2019-10-29 Thread Andre Vieira (lists)
rations. * tree-vectorizer.c (try_vectorize_loop_1): Make sure to use already created loop_vec_info's for epilogues when available. Otherwise analyse epilogue separately. Cheers, Andre On 29/10/2019 11:48, Richard Biener wrote: On Mon, 28 Oct 2019, Andre Vieira (lists) wr

Re: [PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops

2019-10-28 Thread Andre Vieira (lists)
(try_vectorize_loop_1): Make sure to use already created loop_vec_info's for epilogues when available. Otherwise analyse epilogue separately. Cheers, Andre On 28/10/2019 14:16, Richard Biener wrote: On Fri, 25 Oct 2019, Andre Vieira (lists) wrote: Hi, This is the reworked patch after your

Re: [PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops

2019-10-22 Thread Andre Vieira (lists)
Hi Richi, See inline responses to your comments. On 11/10/2019 13:57, Richard Biener wrote: On Thu, 10 Oct 2019, Andre Vieira (lists) wrote: Hi, + + /* Keep track of vector sizes we know we can vectorize the epilogue with. */ + vector_sizes epilogue_vsizes; }; please don't enlarge

[committed][Arm] Fix multilibs for Armv7-R (was Re: [PATCH][Arm] Fix multilibs for Armv7-R)

2019-10-18 Thread Andre Vieira (lists)
add new multilib variants and new mappings. gcc/testsuite/ChangeLog: 2019-10-18 Andre Vieira * gcc.target/arm/multilib.exp: Add extra tests. Cheers, Andre On 18/10/2019 12:04, Richard Earnshaw (lists) wrote: On 18/10/2019 11:53, Andre Vieira (lists) wrote: Hi This patch maps

[committed][vect] Outline code into new function: determine_peel_for_niter

2019-10-17 Thread Andre Vieira (lists)
Hi, This piece of code was pre-approved by richi. Retested by bootstrapping and regression testing on x86_64 (AVX512) and aarch64. Committed in revision r277103. gcc/ChangeLog: 2019-10-17 Andre Vieira * tree-vect-loop.c (determine_peel_for_niter): New function contained

[committed][vect] Refactor versioning threshold

2019-10-17 Thread Andre Vieira (lists)
Hi, This piece of code was pre-approved by richi. Retested by bootstrapping and regression testing on x86_64 (AVX512) and aarch64. Committed in revision r277101. gcc/ChangeLog: 2019-10-17 Andre Vieira * tree-vect-loop.c (vect_transform_loop): Move code from here... *

[committed][vect] Be consistent in versioning threshold use

2019-10-17 Thread Andre Vieira (lists)
Hi, This piece of code was pre-approved by richi. Retested by bootstrapping and regression testing on x86_64 (AVX512) and aarch64. Committed in revision r277105. gcc/ChangeLog: 2019-10-17 Andre Vieira * tree-vect-loop.c (vect_analyze_loop_2): Use same condition to decide

Re: [PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops

2019-10-25 Thread Andre Vieira (lists)
Hi, This is the reworked patch after your comments. I have moved the epilogue check into the analysis form disguised under '!epilogue_vinfos.is_empty ()'. This because I realized that I am doing the "lowest threshold" check there. The only place where we may reject an epilogue_vinfo is

Re: [PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops

2019-10-25 Thread Andre Vieira (lists)
On 22/10/2019 18:52, Richard Sandiford wrote: Thanks for doing this. Hope this message doesn't cover too much old ground or duplicate too much... "Andre Vieira (lists)" writes: @@ -2466,15 +2476,65 @@ vect_do_peeling (loop_vec_info loop_vinfo, tree niters, tree nitersm1

Re: [PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops

2019-10-25 Thread Andre Vieira (lists)
On 22/10/2019 14:56, Richard Biener wrote: On Tue, 22 Oct 2019, Andre Vieira (lists) wrote: Hi Richi, See inline responses to your comments. On 11/10/2019 13:57, Richard Biener wrote: On Thu, 10 Oct 2019, Andre Vieira (lists) wrote: Hi, + + /* Keep track of vector sizes we know

[committed][testsuite] Fix wrong order of dg-additional-options

2019-10-31 Thread Andre Vieira (lists)
Hi, In my '[vect]Make vect-epilogues-nomask=1 default' patch, revision r277659, I apparently put dg-additional-options before dg-options which seems to be overwritten. This moves the additional options such that they are used. Sorry if I caused any testism noise! Committed in r277664 as

Re: [ARM] Enable DF only when TARGET_VFP_DOUBLE

2019-10-10 Thread Andre Vieira (lists)
Hi Kyrill, On 10/10/2019 10:53, Kyrill Tkachov wrote: I'm a bit surprised that TARGET_FMA (which just checks isa_bit_vfpv4) doesn't imply TARGET_VFP_DOUBLE. Can one really have a VFPV4 single-precision-only configuration? Richard? Armv7e-M supports single precision only FPv4, which also

Re: [PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops

2019-10-10 Thread Andre Vieira (lists)
Hi, After all the discussions and respins I now believe this patch is close to what we envisioned. This patch achieves two things when vect-epilogues-nomask=1: 1) It analyzes the original loop for each supported vector size and saves this analysis per loop, as well as the vector sizes we

[Patch 0/2][ipa, Arm] Fix cloning of 'cmse_nonsecure_entry' functions

2019-10-08 Thread Andre Vieira (lists)
Hi, This patch series is aimed at fixing an issue when cloning a function with 'cmse_nonsecure_entry' attribute. Currently if gcc determines to clone a function with this attribute, both the cloned and original declarations will be compiled as nonsecure entry functions. The linker eventually

[Patch 1/2][ipa] Add target hook to sanitize cloned declaration's attributes

2019-10-08 Thread Andre Vieira (lists)
Hi, This patch adds a new target hook called TARGET_HOOK_SANITIZE_CLONE_ATTRIBUTES. This hook is meant to give each target the ability to sanitize a cloned's declaration attribute list. Is this OK for trunk? Cheers, Andre gcc/ChangeLog: 2019-10-08 Andre Vieira *

[Patch 2/2][Arm] Implement TARGET_HOOK_SANITIZE_CLONE_ATTRIBUTES to remove cmse_nonsecure_entry

2019-10-08 Thread Andre Vieira (lists)
Hi, This patch implements the TARGET_HOOK_SANITIZE_CLONE_ATTRIBUTES for the arm backend to remove the 'cmse_nonsecure_entry' attribute from cmse. Bootstrapped the series on x86_64 and built arm-none-eabi, running the cmse testsuite for armv8-m.main and armv8-m.base. Is this OK for trunk?

Re: [PATCH 1/2][vect]PR 88915: Vectorize epilogues when versioning loops

2019-10-08 Thread Andre Vieira (lists)
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

Re: [Patch 1/2][ipa] Add target hook to sanitize cloned declaration's attributes

2019-10-09 Thread Andre Vieira (lists)
: Regenerated On 08/10/2019 17:27, Martin Jambor wrote: Hi, On Tue, Oct 08 2019, Andre Vieira (lists) wrote: Hi, This patch adds a new target hook called TARGET_HOOK_SANITIZE_CLONE_ATTRIBUTES. This hook is meant to give each target the ability to sanitize a cloned's declaration attribute list

Re: [Patch 1/2][ipa] Add target hook to sanitize cloned declaration's attributes

2019-10-09 Thread Andre Vieira (lists)
(default_sanitize_clone_attributes): New. * doc/tm.texi.in: Document new target hook. * doc/tm.texi: Regenerated On 09/10/2019 12:43, Martin Jambor wrote: Hi, On Wed, Oct 09 2019, Andre Vieira (lists) wrote: Hi Martin, Thanks for the suggestion. I have moved the target hook

Re: [Patch 1/2][ipa] Add target hook to sanitize cloned declaration's attributes

2019-10-09 Thread Andre Vieira (lists)
Adding Jakub to CC' On 09/10/2019 16:29, Andre Vieira (lists) wrote: Hi Martin, I see thank you. For my particular use case I only need to strip attributes for local symbols.  However, if I were to claim it is only used for non-externally visible clones than I would also need to make sure

[PATCH][vect] PR92429: do not fold when updating epilogue statements

2020-01-10 Thread Andre Vieira (lists)
Hi, This patch addresses the problem reported in PR92429. When creating an epilogue for vectorization we have to replace the SSA_NAMEs in the PATTERN_DEF_SEQs and RELATED_STMTs of the epilogue's loop_vec_infos. When doing this we were using simplify_replace_tree which always folds the

Re: [testsuite][arm] Remove xfail for vect-epilogues test

2020-01-07 Thread Andre Vieira (lists)
What about the previous patch fixing the existing testism by skipping for big-endian arm using existing target supports? On 07/01/2020 07:31, Richard Biener wrote: On Fri, 13 Dec 2019, Andre Vieira (lists) wrote: Consequently whilst looking at the list I noticed these two were missing

Re: [PATCH][vect] Keep track of DR_OFFSET advance in dr_vec_info rather than data_reference

2020-01-07 Thread Andre Vieira (lists)
Hello, Should we try to get this refactoring in stage 3 or park it for next stage 1? Cheers, Andre On 10/12/2019 13:36, Andre Vieira (lists) wrote: Hi, This patch aims at refactoring the vectorizer code to no longer need to reset DR_OFFSET for epilogue vectorization and instead keep track

[RFC][gcc][vect] PR 91246: Prototype for vectorization of loops with breaks

2020-03-12 Thread Andre Vieira (lists)
Hi all, This is a prototype I have put together to look at the feasibility and profitability of vectorizing loops with breaks as suggested in PR 91246. I am posting this here for comments as I am curious what your opinions are on my approach. I don't expect much attention to this in stage 4,

[PATCH][GCC][Arm]: MVE: Add mve vec_duplicate pattern

2020-04-15 Thread Andre Vieira (lists)
Hi, This patch fixes an ICE we were seeing due to a missing vec_duplicate pattern. Regression tested on arm-none-eabi. Is this OK for trunk? gcc/ChangeLog: 2020-04-15  Andre Vieira      * config/arm/mve.md (mve_vec_duplicate): New pattern.     (V_sz_elem2): Remove unused mode

[PATCH 6/19][GCC-8] aarch64: Remove early clobber from ATOMIC_LDOP scratch

2020-04-16 Thread Andre Vieira (lists)
2020-04-16  Andre Vieira     Backport from mainline.     2018-10-31  Richard Henderson     * config/aarch64/atomics.md (aarch64_atomic__lse):     scratch register need not be early-clobber.  Document the reason     why we cannot use ST. diff --git a/gcc/config/aarch64/atomics.md

[PATCH 4/19][GCC-8] aarch64: Improve swp generation

2020-04-16 Thread Andre Vieira (lists)
Allow zero as an input; fix constraints; avoid unnecessary split. 2020-04-16  Andre Vieira     Backport from mainline.     2018-10-31  Richard Henderson     * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): Remove.     (aarch64_gen_atomic_ldop): Don't call it.     *

[PATCH 2/19][GCC-8] aarch64: Simplify LSE cas generation

2020-04-16 Thread Andre Vieira (lists)
The cas insn is a single insn, and if expanded properly need not be split after reload.  Use the proper inputs for the insn. 2020-04-16  Andre Vieira     Backport from mainline.     2018-10-31  Richard Henderson     * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):     Force

[PATCH 5/19][GCC-8] aarch64: Improve atomic-op lse generation

2020-04-16 Thread Andre Vieira (lists)
Fix constraints; avoid unnecessary split.  Drop the use of the atomic_op iterator in favor of the ATOMIC_LDOP iterator; this is simplier and more logical for ldclr aka bic. 2020-04-16  Andre Vieira     Backport from mainline.     2018-10-31  Richard Henderson     * config/aarch64/aarch64.c

[PATCH 1/19][GCC-8] aarch64: Fix up aarch64_compare_and_swaphi pattern [PR94368]

2020-04-16 Thread Andre Vieira (lists)
gcc/ChangeLog: 2020-04-16  Andre Vieira     Backport from mainline.     2018-07-16  Ramana Radhakrishnan     * config/aarch64/atomics.md (aarch64_store_execlusive): Add     early clobber. diff --git a/gcc/config/aarch64/atomics.md b/gcc/config/aarch64/atomics.md index

[PATCH 3/19] aarch64: Improve cas generation

2020-04-16 Thread Andre Vieira (lists)
Do not zero-extend the input to the cas for subword operations; instead, use the appropriate zero-extending compare insns. Correct the predicates and constraints for immediate expected operand. 2020-04-16  Andre Vieira     Backport from mainline.     2018-10-31  Richard Henderson     *

[PATCH 9/19][GCC-8] aarch64: Tidy aarch64_split_compare_and_swap

2020-04-16 Thread Andre Vieira (lists)
2020-04-16  Andre Vieira     Backport from mainline.     2019-09-19  Richard Henderson     * config/aarch64/aarch64 (aarch64_split_compare_and_swap):Unify some code paths;     use aarch64_gen_compare_reg instead of open-coding. diff --git a/gcc/config/aarch64/aarch64.c

[PATCH 12/19][GCC-8] aarch64: Implement -moutline-atomics

2020-04-16 Thread Andre Vieira (lists)
2020-04-16  Andre Vieira     Backport from mainline     2019-09-19  Richard Henderson     * config/aarch64/aarch64.opt (-moutline-atomics): New.     * config/aarch64/aarch64.c (aarch64_atomic_ool_func): New.     (aarch64_ool_cas_names, aarch64_ool_swp_names): New.    

[PATCH 11/19][GCC-8] Add visibility to libfunc constructors

2020-04-16 Thread Andre Vieira (lists)
2020-04-16  Andre Vieira     Backport from mainline.     2018-10-31  Richard Henderson     * optabs-libfuncs.c (build_libfunc_function_visibility):     New, split out from...     (build_libfunc_function): ... here.     (init_one_libfunc_visibility): New, split out from ...    

[PATCH 0/19][GCC-8] aarch64: Backport outline atomics

2020-04-16 Thread Andre Vieira (lists)
Hi, This series backports all the patches and fixes regarding outline atomics to the gcc-8 branch. Bootstrapped the series for aarch64-linux-gnu and regression tested. Is this OK for gcc-8? Andre Vieira (19): aarch64: Add early clobber for aarch64_store_exclusive aarch64: Simplify LSE cas

[PATCH 15/19][GCC-8] aarch64: Configure for sys/auxv.h in libgcc for lse-init.c

2020-04-16 Thread Andre Vieira (lists)
2020-04-16  Andre Vieira     Backport from mainline     2019-09-25  Richard Henderson     PR target/91833     * config/aarch64/lse-init.c: Include auto-target.h.  Disable     initialization if !HAVE_SYS_AUXV_H.     * configure.ac (AC_CHECK_HEADERS): Add sys/auxv.h.     * config.in, configure:

[PATCH 19/19][GCC-8] re PR target/90724 (ICE with __sync_bool_compare_and_swap with -march=armv8.2-a+sve)

2020-04-16 Thread Andre Vieira (lists)
2020-04-16  Andre Vieira     Backport from mainline     2019-08-21  Prathamesh Kulkarni     PR target/90724     * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y     in reg if it fails aarch64_plus_operand predicate. diff --git a/gcc/config/aarch64/aarch64.c

[PATCH 16/19][GCC-8] aarch64: Fix up aarch64_compare_and_swaphi pattern [PR94368]

2020-04-16 Thread Andre Vieira (lists)
2020-04-16  Andre Vieira     Backport from mainline     2020-03-31  Jakub Jelinek     PR target/94368     * config/aarch64/constraints.md (Uph): New constraint.     * config/aarch64/atomics.md (cas_short_expected_imm): New mode attr.     (aarch64_compare_and_swap): Use it instead of n in

<    1   2   3   4   5   6   7   >