Validity of __asm__ transformation with "m" reference
Michael Matz
matz@suse.de
Mon Jul 4 14:16:00 GMT 2011
Hi,
On Mon, 4 Jul 2011, Jakub Jelinek wrote:
> No, what you can get out of that is e.g. optimizing away otherwise unneeded
> large variable.
> Consider:
> static const int i[131072] = { 1, 2, 3, 4, 5 };
> void foo (void)
> {
> __asm volatile ("" : : "m" (i[0]));
> }
> By giving the asm just address of an const int 1 instead of the whole array
> you can optimize the large array away.
Hmm, that's right. If that happens often. As soon as you use the same
element multiple times you'll offset some of the potential savings. I
guess we don't take this into account, so I'm not sure if that reason is
very convincing.
Ciao,
Michael.
More information about the Gcc
mailing list