This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: numerical instability and estimate-probability


> On Nov 15, 2001, Richard Henderson <rth@redhat.com> wrote:
> 
> > On Thu, Nov 15, 2001 at 11:31:52AM -0800, mike stump wrote:
> >> It is advantageous to have gcc emit the same code, on different hosts
> >> for the same source code.  This currently works.
> 
> > No, it doesn't.  We have code that is affected by the undefined
> > order of evaluation of function arguments.  E.g.
> 
> > 	foo (gen_reg_rtx (...), gen_reg_rtx (...))
> 
> Err...  I seem to remember having read somewhere, perhaps in the GCC
> manual, that it would evaluate arguments in the same order, despite
> the freedom granted by the standards, even though no sequence point
> would be introduced between the evaluation of the arguments.  This,
> plus the fact that cross compilers are only supported when the
> bootstrap compiler is GCC, means the case above would always generate
> the same code.  Is my recollection wrong, or no longer true?
SUrely for i386 comilation gcc evaulates arguments in "natural" order
w/o optimizing and reverse order with optimizing.

It is dificult to avoid this w/o loosing code quality as for instance
arguments passed in registers should be evaulated last.

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]