public inbox for fortran@gcc.gnu.org
 help / color / mirror / Atom feed
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.
>


  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).