From: Joel Hutton <Joel.Hutton@arm.com>
To: Richard Biener <richard.guenther@gmail.com>,
"gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>,
Tobias Burnus <tobias@codesourcery.com>,
Richard Sandiford <Richard.Sandiford@arm.com>
Cc: Richard Biener <rguenther@suse.de>
Subject: RE: GCC 11 backport does not build (no "directly_supported_p") - was: Re: pr103523: Check for PLUS/MINUS support
Date: Tue, 14 Dec 2021 09:37:03 +0000 [thread overview]
Message-ID: <DB9PR08MB6603AABE4A6896506975EB87F5759@DB9PR08MB6603.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <DB9PR08MB660317D29A8C536133EA3585F5749@DB9PR08MB6603.eurprd08.prod.outlook.com>
[-- Attachment #1: Type: text/plain, Size: 4070 bytes --]
Bootstrapped and regression tested on releases/gcc-11 on aarch64.
Ok for 11?
Previous commit broke build as it relied on directly_supported_p which
is not in 11. This reworks to avoid using directly_supported_p.
gcc/ChangeLog:
PR bootstrap/103688
* tree-vect-loop.c (vectorizable_induction): Rework to avoid
directly_supported_p
From: Joel Hutton <Joel.Hutton@arm.com>
Sent: 13 December 2021 15:02
To: Richard Biener <richard.guenther@gmail.com>; gcc-patches@gcc.gnu.org; Tobias Burnus <tobias@codesourcery.com>; Richard Sandiford <Richard.Sandiford@arm.com>
Cc: Richard Biener <rguenther@suse.de>
Subject: Re: GCC 11 backport does not build (no "directly_supported_p") - was: Re: pr103523: Check for PLUS/MINUS support
My mistake, reworked patch. Tests are still running.
________________________________
From: Richard Biener <richard.guenther@gmail.com<mailto:richard.guenther@gmail.com>>
Sent: 13 December 2021 14:47
To: gcc-patches@gcc.gnu.org<mailto:gcc-patches@gcc.gnu.org> <gcc-patches@gcc.gnu.org<mailto:gcc-patches@gcc.gnu.org>>; Tobias Burnus <tobias@codesourcery.com<mailto:tobias@codesourcery.com>>; Joel Hutton <Joel.Hutton@arm.com<mailto:Joel.Hutton@arm.com>>; Richard Sandiford <Richard.Sandiford@arm.com<mailto:Richard.Sandiford@arm.com>>
Cc: GCC Patches <gcc-patches@gcc.gnu.org<mailto:gcc-patches@gcc.gnu.org>>; Richard Biener <rguenther@suse.de<mailto:rguenther@suse.de>>
Subject: Re: GCC 11 backport does not build (no "directly_supported_p") - was: Re: pr103523: Check for PLUS/MINUS support
On December 13, 2021 3:27:50 PM GMT+01:00, Tobias Burnus <tobias@codesourcery.com<mailto:tobias@codesourcery.com>> wrote:
>Hi Joel,
>
>your patch fails here with:
>
>../../repos/gcc-11-commit/gcc/tree-vect-loop.c:8000:8: error:
>'directly_supported_p' was not declared in this scope
> 8000 | if (!directly_supported_p (PLUS_EXPR, step_vectype)
> | ^~~~~~~~~~~~~~~~~~~~
>
>And "git grep" shows that this is only present in:
>
>gcc/tree-vect-loop.c: if (!directly_supported_p (PLUS_EXPR, step_vectype)
>gcc/tree-vect-loop.c: || !directly_supported_p (MINUS_EXPR,
>step_vectype))
>
>That's different on mainline, which offers that function.
Just as a reminder, backports need regular bootstrap and regtest validation on the respective branches.
Richard.
>Tobias
>
>On 10.12.21 14:24, Joel Hutton via Gcc-patches wrote:
>> ok for backport to 11?
>> ________________________________
>> From: Richard Sandiford <richard.sandiford@arm.com<mailto:richard.sandiford@arm.com>>
>> Sent: 10 December 2021 10:22
>> To: Joel Hutton <Joel.Hutton@arm.com<mailto:Joel.Hutton@arm.com>>
>> Cc: GCC Patches <gcc-patches@gcc.gnu.org<mailto:gcc-patches@gcc.gnu.org>>; Richard Biener <rguenther@suse.de<mailto:rguenther@suse.de>>
>> Subject: Re: pr103523: Check for PLUS/MINUS support
>>
>> Joel Hutton <Joel.Hutton@arm.com<mailto:Joel.Hutton@arm.com>> writes:
>>> Hi all,
>>>
>>> This is to address pr103523.
>>>
>>> bootstrapped and regression tested on aarch64.
>>>
>>> Check for PLUS_EXPR/MINUS_EXPR support in vectorizable_induction.
>>> PR103523 is an ICE on valid code:
>>>
>>> void d(float *a, float b, int c) {
>>> float e;
>>> for (; c; c--, e += b)
>>> a[c] = e;
>>> }
>>>
>>> This is due to not checking for PLUS_EXPR support, which is missing in
>>> VNx2sf mode. This causes an ICE at expand time. This patch adds a check
>>> for support in vectorizable_induction.
>>>
>>> gcc/ChangeLog:
>>>
>>> PR tree-optimization/PR103523
>> The bugzilla hook expects: PR tree-optimization/103523
>>
>>> * tree-vect-loop.c (vectorizable_induction): Check for
>>> PLUS_EXPR/MINUS_EXPR support.
>> OK, thanks.
>>
>> Richard
>-----------------
>Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
[-- Attachment #2: 0001-vect-loop-fix-build.patch --]
[-- Type: application/octet-stream, Size: 1607 bytes --]
From 369a07a6b5bc71c1f4d7756598860303cda7fa55 Mon Sep 17 00:00:00 2001
From: Joel Hutton <joel.hutton@arm.com>
Date: Mon, 13 Dec 2021 14:49:55 +0000
Subject: [PATCH] vect-loop: fix build
Previous commit broke build as it relied on directly_supported_p which
is not in 11. This reworks to avoid using directly_supported_p.
gcc/ChangeLog:
PR bootstrap/103688
* tree-vect-loop.c (vectorizable_induction): Rework to avoid
directly_supported_p
---
gcc/tree-vect-loop.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 54320681119d880ec2cbe641fe16ee73e552f57d..3fb6e7d44420409aee930c8051f5a3c69039174b 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -7997,8 +7997,14 @@ vectorizable_induction (loop_vec_info loop_vinfo,
tree step_vectype = get_same_sized_vectype (TREE_TYPE (step_expr), vectype);
/* Check for backend support of PLUS/MINUS_EXPR. */
- if (!directly_supported_p (PLUS_EXPR, step_vectype)
- || !directly_supported_p (MINUS_EXPR, step_vectype))
+ direct_optab ot_plus = optab_for_tree_code (tree_code (PLUS_EXPR),
+ step_vectype, optab_default);
+ direct_optab ot_minus = optab_for_tree_code (tree_code (MINUS_EXPR),
+ step_vectype, optab_default);
+ if (ot_plus == unknown_optab
+ || ot_minus == unknown_optab
+ || optab_handler (ot_minus, TYPE_MODE (step_vectype)) == CODE_FOR_nothing
+ || optab_handler (ot_plus, TYPE_MODE (step_vectype)) == CODE_FOR_nothing)
return false;
if (!vec_stmt) /* transformation not required. */
--
2.17.1
next prev parent reply other threads:[~2021-12-14 9:37 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-10 10:02 Joel Hutton
2021-12-10 10:22 ` Richard Sandiford
2021-12-10 13:24 ` Joel Hutton
2021-12-10 18:33 ` Richard Sandiford
2021-12-13 14:27 ` GCC 11 backport does not build (no "directly_supported_p") - was: " Tobias Burnus
2021-12-13 14:47 ` Richard Biener
2021-12-13 15:02 ` Joel Hutton
2021-12-14 9:37 ` Joel Hutton [this message]
2021-12-14 9:53 ` Jakub Jelinek
2021-12-14 10:46 ` Joel Hutton
2021-12-14 10:57 ` Jakub Jelinek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DB9PR08MB6603AABE4A6896506975EB87F5759@DB9PR08MB6603.eurprd08.prod.outlook.com \
--to=joel.hutton@arm.com \
--cc=Richard.Sandiford@arm.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=rguenther@suse.de \
--cc=richard.guenther@gmail.com \
--cc=tobias@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).