This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: g++ and aliasing bools
- From: Daniel Berlin <dan at dberlin dot org>
- To: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 25 Jan 2002 10:04:34 -0500
- Subject: Re: g++ and aliasing bools
On Friday, January 25, 2002, at 09:31 AM, Richard Kenner wrote:
> Errr, not really.
> They just happen to be our representation of aliases for types.
>
> In some sense, but they avoid undecidability problems because you just
> need to look at language semantics, not run-time behavior of a
> particular program.
>
They don't avoid undecidability, or else we wouldn't have alias set 0.
If we could determine what everything aliases, we wouldn't need a set
that aliases everything.
We can't.
Undecidability is not just based on run-time behavior of the program.
It's also undecidable in the static case.
may-alias is undecidable statically, as is must-alias (Unless i'm
misremembering).
IIRC, these were proven on either C or modula-3, so the language
semantics don't help us at all.
> The issue with alias sets is whether you can prove from the language
> specification that two objects *cannot* alias each other. If and only
> if you can, they are in different alias sets.
Of course.
I know how alias sets in gcc/g++ work, i know how non-type-based alias
analysis works.
I know how non-type-based alias analysis with type based disambiguation
work.
That doesn't make it any easier.
--Dan