From: Harald Anlauf <anlauf@gmx.de>
To: fortran@gcc.gnu.org
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [PATCH 09/10] fortran: Support clobbering of variable subreferences [PR88364]
Date: Wed, 21 Sep 2022 21:12:43 +0200 [thread overview]
Message-ID: <343c9635-96c3-1c5d-0890-8962a7125a15@gmx.de> (raw)
In-Reply-To: <cce9913a-33a9-2810-b34a-3b8c7e8a2eea@orange.fr>
Hi Mikael,
Am 21.09.22 um 20:56 schrieb Mikael Morin:
> Le 21/09/2022 à 11:57, Thomas Koenig a écrit :
>>
>> Hi Harald,
>>
>>> I think I understand much of what is said, but I feel that I do
>>> not really understand what *clobber* means for the different
>>> beasts we are discussing (although I have an impression of what
>>> it means for a scalar object).
>>
>> More seriously: My understanding of a clobber it is a hint to
>> the middle end that the value in question will not be used,
>> and that operations leading to this value can be removed,
>> unless they are used otherwise.
>>
> My understanding is that "clobber" means "overwrite with garbage" for
> all the beasts we have been discussing, which translates to nothing in
> the final code, but can be used by the optimizers as Thomas said.
>
> This is a bit off-topic but clobbers model registers having their values
> changed unpredictably or by ways unknown to the compiler, in the backend
> code, or in inline assembly statements.
> Here is an excerpt from rtl.texi:
>> @item (clobber @var{x})
>> Represents the storing or possible storing of an unpredictable,
>> undescribed value into @var{x}
ah, I missed that file. I only found references to assembly,
and references to registers etc. were not really helpful here.
It also says:
> If @var{x} is @code{(mem:BLK (const_int 0))} or
> @code{(mem:BLK (scratch))}, it means that all memory
> locations must be presumed clobbered. ...
so this goes into the direction I was thinking of.
> I Hope it helps.
>
WARNING: multiple messages have this Message-ID
From: Harald Anlauf <anlauf@gmx.de>
To: Mikael Morin <morin-mikael@orange.fr>,
Thomas Koenig <tkoenig@netcologne.de>,
Richard Biener <richard.guenther@gmail.com>
Cc: gcc-patches@gcc.gnu.org, fortran@gcc.gnu.org
Subject: Re: [PATCH 09/10] fortran: Support clobbering of variable subreferences [PR88364]
Date: Wed, 21 Sep 2022 21:12:43 +0200 [thread overview]
Message-ID: <343c9635-96c3-1c5d-0890-8962a7125a15@gmx.de> (raw)
Message-ID: <20220921191243.R7d3bsSDh2wTTXg5NsafZJ_nFdK63nez91SlFb5aoxc@z> (raw)
In-Reply-To: <cce9913a-33a9-2810-b34a-3b8c7e8a2eea@orange.fr>
Hi Mikael,
Am 21.09.22 um 20:56 schrieb Mikael Morin:
> Le 21/09/2022 à 11:57, Thomas Koenig a écrit :
>>
>> Hi Harald,
>>
>>> I think I understand much of what is said, but I feel that I do
>>> not really understand what *clobber* means for the different
>>> beasts we are discussing (although I have an impression of what
>>> it means for a scalar object).
>>
>> More seriously: My understanding of a clobber it is a hint to
>> the middle end that the value in question will not be used,
>> and that operations leading to this value can be removed,
>> unless they are used otherwise.
>>
> My understanding is that "clobber" means "overwrite with garbage" for
> all the beasts we have been discussing, which translates to nothing in
> the final code, but can be used by the optimizers as Thomas said.
>
> This is a bit off-topic but clobbers model registers having their values
> changed unpredictably or by ways unknown to the compiler, in the backend
> code, or in inline assembly statements.
> Here is an excerpt from rtl.texi:
>> @item (clobber @var{x})
>> Represents the storing or possible storing of an unpredictable,
>> undescribed value into @var{x}
ah, I missed that file. I only found references to assembly,
and references to registers etc. were not really helpful here.
It also says:
> If @var{x} is @code{(mem:BLK (const_int 0))} or
> @code{(mem:BLK (scratch))}, it means that all memory
> locations must be presumed clobbered. ...
so this goes into the direction I was thinking of.
> I Hope it helps.
>
next prev parent reply other threads:[~2022-09-21 19:12 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-16 20:24 [PATCH 00/10] fortran: clobber fixes [PR41453] Mikael Morin
2022-09-16 20:24 ` [PATCH 01/10] fortran: Move the clobber generation code Mikael Morin
2022-09-16 20:24 ` [PATCH 02/10] fortran: Fix invalid function decl clobber ICE [PR105012] Mikael Morin
2022-09-16 20:24 ` [PATCH 03/10] fortran: Move clobbers after evaluation of all arguments [PR106817] Mikael Morin
2022-09-16 20:24 ` [PATCH 04/10] fortran: Support clobbering with implicit interfaces [PR105012] Mikael Morin
2022-09-16 20:24 ` [PATCH 05/10] fortran: Support clobbering of reference variables [PR41453] Mikael Morin
2022-09-16 20:24 ` [PATCH 06/10] fortran: Support clobbering of SAVE variables [PR87395] Mikael Morin
2022-09-16 20:24 ` [PATCH 07/10] fortran: Support clobbering of ASSOCIATE variables [PR87397] Mikael Morin
2022-09-16 20:24 ` [PATCH 08/10] fortran: Support clobbering of allocatables and pointers [PR41453] Mikael Morin
2022-09-16 20:24 ` [PATCH 09/10] fortran: Support clobbering of variable subreferences [PR88364] Mikael Morin
2022-09-17 17:03 ` Thomas Koenig
2022-09-17 19:33 ` Mikael Morin
2022-09-17 19:49 ` Bernhard Reutner-Fischer
2022-09-17 19:50 ` Mikael Morin
2022-09-17 21:24 ` Bernhard Reutner-Fischer
2022-09-18 6:12 ` Richard Biener
2022-09-18 9:10 ` Mikael Morin
2022-09-18 10:23 ` Thomas Koenig
2022-09-18 18:32 ` Harald Anlauf
2022-09-18 20:55 ` Mikael Morin
2022-09-19 7:11 ` Mikael Morin
2022-09-19 19:46 ` Harald Anlauf
2022-09-19 20:50 ` Mikael Morin
2022-09-20 6:54 ` Thomas Koenig
2022-09-20 8:46 ` Mikael Morin
2022-09-20 21:08 ` Harald Anlauf
2022-09-20 21:08 ` Harald Anlauf
2022-09-21 9:57 ` Thomas Koenig
2022-09-21 18:56 ` Mikael Morin
2022-09-21 19:12 ` Harald Anlauf [this message]
2022-09-21 19:12 ` Harald Anlauf
2022-09-18 20:43 ` Mikael Morin
2022-09-18 10:48 ` Richard Biener
2022-09-19 7:31 ` Mikael Morin
2022-09-19 7:58 ` Richard Biener
2022-09-16 20:24 ` [PATCH 10/10] fortran: Support clobbering of derived types [PR41453] Mikael Morin
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=343c9635-96c3-1c5d-0890-8962a7125a15@gmx.de \
--to=anlauf@gmx.de \
--cc=fortran@gcc.gnu.org \
--cc=gcc-patches@gcc.gnu.org \
/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).