This is the mail archive of the
mailing list for the GCC project.
Re: [RFC] Add asm constraint modifier to mark strict memory accesses
- From: Jeff Law <law at redhat dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>, Yury Gribov <y dot gribov at samsung dot com>, Jakub Jelinek <jakub at redhat dot com>, Richard Henderson <rth at redhat dot com>
- Cc: gcc <gcc at gcc dot gnu dot org>, Konstantin Serebryany <konstantin dot s dot serebryany at gmail dot com>, Dmitry Vyukov <dvyukov at google dot com>, Marat Zakirov <m dot zakirov at samsung dot com>, Andrey Ryabinin <a dot ryabinin at samsung dot com>, Konstantin Khlebnikov <k dot khlebnikov at samsung dot com>
- Date: Thu, 18 Sep 2014 12:17:45 -0600
- Subject: Re: [RFC] Add asm constraint modifier to mark strict memory accesses
- Authentication-results: sourceware.org; auth=none
- References: <541ABD6E dot 3030904 at samsung dot com> <20140918111617 dot GF17454 at tucnak dot redhat dot com> <541ABFCB dot 7050107 at samsung dot com> <541ADFD8 dot 2050306 at redhat dot com> <e207e941-102a-4d50-bdd7-3447c74778aa at email dot android dot com>
On 09/18/14 08:32, Richard Biener wrote:
Yea, but I suspect there aren't that many opportunities to do DSE that
are enabled by seeing the the must-write in an ASM.
On September 18, 2014 3:36:24 PM CEST, Jeff Law <firstname.lastname@example.org>
On 09/18/14 05:19, Yury Gribov wrote:
Would that modifier mean that the inline asm is
resp. writing that memory? "m"/"=m" right now is always about
might read or might write, not must.
Yes, that's what I had in mind. Many inline asms (at least in
read memory region unconditionally.
That's precisely what I'd expect such a modifier to mean. Right
now memory modifiers are strictly "may" but I can see a use case
I think the question is will the kernel or glibc folks use that
new capability and if so, do we get a significant improvement in
of checking we can do. So I think both those groups need to be
looped into this conversation.
From an implementation standpoint, are you thinking a different
modifier (my first choice)? That wouldn't allow us to say
something like the first X bytes of this memory region are written
and the remaining Y bytes may be written, but I suspect that's not
a use case we're likely to care about.
It would also enable us to do more DSE as the asm stmt is then known
to kill a specific part of memory. Maybe we even want to constrain
the effective type of the memory accesses so we can do TBAA against
Then again, one might argue that even if they aren't common, if they do
occur, they're important as (in theory) folks shouldn't be using ASMs if
the code isn't hot.