public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jim Wilson <wilson@cygnus.com>
To: Oskar Enoksson <osken393@student.liu.se>
Cc: egcs@cygnus.com
Subject: Re: Optimization
Date: Thu, 02 Apr 1998 11:32:00 -0000	[thread overview]
Message-ID: <199804010148.RAA14429@rtl.cygnus.com> (raw)
In-Reply-To: <Pine.SGI.3.96.980326123604.8153E-100000@purcell>

	  for (i=0; i<100; i++)
	    for (j=0; j<100; j++)
	      for (k=0; k<100; k++)
	        *(x+i*step[2]+j*step[1]+k*step[0]) *= 
	          *(x+i*step[2]+j*step[1]+k*step[0]);

This is a hard problem.  We can't move the loads from step[] outside
the loop unless we can know for sure that the stores into *(x+...) won't
modify any of the values pointed to by step.  Since we have no info about
where x or step point to, we make the worst case assumption that they
overlap, and hence the loads from step[] are not loop invariant.

It is actually a bit more complicated than that (we have type info to help
with aliasing), but it is still a complicated problem.

The ISO C9X restrict keyword would make this optimization easier, because
this would allow the programmer to tell the compiler that there is no aliasing.

Jim

  parent reply	other threads:[~1998-04-02 11:32 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-03-29  5:14 Optimization Oskar Enoksson
1998-04-02  3:41 ` Optimization John Carr
1998-04-02  8:21 ` Optimization Jeffrey A Law
1998-04-02 11:32 ` Optimization Joern Rennecke
1998-04-02 11:32 ` Jim Wilson [this message]
1998-04-02  3:41   ` Optimization Oskar Enoksson
1998-04-03 21:52     ` Optimization John Carr
1999-03-29  8:18 ` Optimization Jeffrey A Law
1999-03-31 23:46   ` Optimization Jeffrey A Law
1999-03-30  5:07 Optimization Oskar Enoksson
1999-03-31 23:46 ` Optimization Oskar Enoksson
2000-05-11 11:21 Optimization Thomas, Robert S
2000-05-11 11:31 ` Optimization Jeffrey A Law
2003-05-02 12:05 Optimization Piotr Wyderski
2003-05-02 23:08 ` Optimization Richard Henderson
2003-05-03  0:12   ` Optimization Andrew Pinski
2003-05-03  1:14     ` Optimization Richard Henderson
2003-12-09 16:42 optimization Viktor Przebinda
2003-12-09 17:29 ` optimization Diego Novillo
2003-12-09 18:53 ` optimization Scott Robert Ladd
2003-12-09 18:18 optimization Benjamin Kosnik

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=199804010148.RAA14429@rtl.cygnus.com \
    --to=wilson@cygnus.com \
    --cc=egcs@cygnus.com \
    --cc=osken393@student.liu.se \
    /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).