This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: x86 gcc lacks simple optimization
- From: Marc Glisse <marc dot glisse at inria dot fr>
- To: Konstantin Vladimirov <konstantin dot vladimirov at gmail dot com>
- Cc: gcc at gcc dot gnu dot org, gcc-help at gcc dot gnu dot org
- Date: Fri, 6 Dec 2013 13:12:47 +0100 (CET)
- Subject: Re: x86 gcc lacks simple optimization
- Authentication-results: sourceware.org; auth=none
- References: <CADn89gRZPDo1Z4gvime-PTC9aaeO6G5jgbN+0hOSZrnD8M1vtw at mail dot gmail dot com>
- Reply-to: gcc at gcc dot gnu dot org
On Fri, 6 Dec 2013, Konstantin Vladimirov wrote:
Consider code:
int foo(char *t, char *v, int w)
{
int i;
for (i = 1; i != w; ++i)
{
int x = i << 2;
A side note, but something too few people seem to be aware of: writing
i<<2 can pessimize code compared to i*4 (and it is never faster). That is
because, at a high level, signed multiplication overflow is undefined
behavior while shift isn't. At a low level, gcc knows it can implement *4
as a shift anyway.
v[x + 4] = t[x + 4];
}
return 0;
}
--
Marc Glisse