[vox-tech] another gcc question

Peter Jay Salzman vox-tech@lists.lugod.org
Wed, 27 Feb 2002 09:46:29 -0800


begin Gabriel Rosa <grosa@ucdavis.edu> 
> On Wed, 27 Feb 2002, Peter Jay Salzman wrote:
> 
> > another optimization question:
> >
> >    int n = 5;
> >    for (i=0; i<n; ++i)
> >
> > can gcc unroll this loop the way it can (for instance)
> >
> >    #define N 5
> >    for (i=0; i<N; ++i)
> 
> Refer to previous answer.
> if you use -funroll-all-loops, yes.
 
i realized that i wrote that email rather stupidly.

just to be clear, i know that you can unroll a loop when testing the
iterator against a macro.  i was asking about a simple variable
assignment like

int n=2;
for (i=0; i<n; ++i) 

so i assume your answer would be "no" for -funroll-loops.

the reason why i'm asking is that this is completely deterministic, and
a compiler can know, with certainty, that this loop will iterate over 0
and 1.  that is, you can know this at compile time, before executing any
code.

clearly, this ISN'T deterministic:

int n=2;
MyFunction(&n);
for (i=0; i<n; ++i) 

but certainly, this is:

int n=2;
for (i=0; i<n; ++i) 

pete