SSA alias representation
Fran Baena
franbaena@gmail.com
Wed Feb 27 18:44:00 GMT 2008
> Symbols with their address taken are only renamed when they appear as
> virtual operands. So, if you have:
>
> p_3 = (i_5 > 10) ? &a : &b
> a = 4
>
> notice that 'a' is never renamed in the LHS of the assignment. It's
> renamed as a virtual operand:
>
> p_3 = (i_5 > 10) ? &a : &b
>
> # a_9 = VDEF <a_8>
> a = 4
I have seen -fdump-tree-salias-all-vops, and i have realized that "a"
is never renamed. That means that a previous scan of the tree is
needed to know which symbols do not need to be versioned and which do
need. I suppose that each definition and use of "a" has associated its
virtual operator (as shown in next portion of code), to maintain the
FUD chain.
After that previous scan the renaming pass is applied.
# a_8 = VDEF <a_7>
a = 1;
....
p_3 = (i_5 > 10) ? &a : &b
# a_9 = VDEF <a_8>
a = 4
Thanks
Fran
More information about the Gcc
mailing list