[pooma-dev] Re: InlineEvaluator implementation question

Richard Guenther rguenth at tat.physik.uni-tuebingen.de
Mon Dec 16 20:00:35 UTC 2002


On Mon, 16 Dec 2002, Mark Mitchell wrote:

>
> > Hmm - as both, lhs and rhs are declared const, isnt this enough to tell
> > the compiler? Or has the compiler to assume every function call can have
> > a side-effect on any (but local) variable?
>
> This is the classic "pointer aliasing" problem for compilers; the
> modifications to lhs (via the write operatin in the loop) might,
> from the compiler's point of view, change the rhs.  The copies allow
> a good compiler to tell that this cannot happen.

Ah, of course. But only change the data (via the engines data pointer
which is aliasing), the lhs/rhs objects themselves usually will not alias
as they are of different types (in nearly all cases). So the copy doesnt
help the aliasing problem?

> > Well, at least gcc creates worse (larger) code with copying than without.
>
> Yes; GCC has a ways to go in this regard.
>
> --
> Mark Mitchell                mark at codesourcery.com
> CodeSourcery, LLC            http://www.codesourcery.com
>




More information about the pooma-dev mailing list