This is the mail archive of the gcc-patches@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]

Re: Problem with your change to recompute virtual operands


On Tue, 2003-09-16 at 16:57, law@redhat.com wrote:

> The fundamental problem is you can't recreate the SSA versions when
> you rebuild the virtual operands.
> 
Actually, you can.  You just need to add the affected variables to the
VARS_TO_RENAME array in optimize_block.  You don't recreate the virtual
operands inside optimize_stmt, though.  That messes up the hash tables
used by DOM.  What we do is have optimize_block re-scan all the
statements that optimize_stmt asked us to.

> If you've got testcode, I'm happy to look at it.
> 
> FWIW, here's code that blows up after your change and shows why it's
> unsafe in general to rebuild the virtual operands:
> 
This actually seems like a bug in get_expr_operands() exposed by
must-alias propagation.

  
>   #   VUSE <equot>;
>   *(&equot + 2B) = *T.1_6;
>
get_expr_operand() couldnt' fold this into equot[1].  I'll take a look.


Diego.


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