This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Question on VUSE
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: rth at redhat dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 3 Aug 04 15:50:41 EDT
- Subject: Re: Question on VUSE
The alias analyzer picked a representative in the set of all variables
that alias, I imagine. I believe the dumps for .alias should tell you
which variables are in that set.
Indeed.
This is related to my current bootstrap failure. In the small test case,
we have:
Pointer tbg0803__unit_table.1_2 points to an arbitrary address: tbg0803__unit_table
tbg0803__sub1: Total number of aliased vops: 3
Variable: tbg0803__utn, UID 3, is an alias tag, is static, call clobbered, default def: tbg0803__utn_3
Variable: sn, UID 5, type memory tag: TMT.11
Variable: TMT.11, UID 11, is global, call clobbered, may aliases: { tbg0803__utn }
... and the *sn deference looks like:
# tbg0803__utn_12 = V_MAY_DEF <tbg0803__utn_3>;
*sn_7 = T.5_9;
DCE doesn't delete it.
When compiling lib.adb, we have the assignment as:
# TMT.1184_15 = V_MAY_DEF <TMT.1184_14>;
*tsn_7 = T.722_11;
This *does* get deleted by DCE.
And all it says about TMT.1184 is
tsn, UID 5, type memory tag: TMT.1184
TMT.1184, UID 13