This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

SSA alias representation


>  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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]