Problem with ssa optimization making an uninitialized variable
Diego Novillo
dnovillo@redhat.com
Sat Jun 19 16:52:00 GMT 2004
On Sat, 2004-06-19 at 10:52, Richard Kenner wrote:
> Look at ada/g-socket.adb, line 1083. Note that V4 has its address taken, so
> that reference is not an unitialized reference. But I get a warning about it.
>
> If I look at .t25.phiop1, I see:
>
> <L81>:;
> v4.1099_135 = v4;
> v4.1105_136 = (natural___XDLU_0__2147483647)v4.1099_135;
> opt.size = v4.1105_136;
>
> That looks right.
>
> But in .t26.alias, I have:
>
> <L81>:;
> v4.1099_135 = v4_131;
> v4.1105_136 = (natural___XDLU_0__2147483647)v4.1099_135;
> opt.size = v4.1105_136;
>
> That looks wrong with v4_131 undefined.
>
If you get this, it means that we have been able to remove
TREE_ADDRESSABLE from v4 and now we consider v4 a local variable.
Either compute_may_aliases got it wrong or the FE is not telling the
optimizers something about v4. Or maybe v4 really is uninitialized in
the source code?
The specific function that clears TREE_ADDRESSABLE is
tree-ssa-alias.c:setup_pointers_and_addressables.
Diego.
More information about the Gcc
mailing list