Is stmt_ann()-references_memory equal to !ZERO_SSA_OPERANDS (stmt, (SSA_OP_VUSE | SSA_OP_VIRTUAL_DEFS)?

2007-09-06 Thread Richard Guenther

$subject?  During early optimization the !ZERO_SSA_OPERANDS check doesn't
say the truth (well it does, but only in some sense) while the
references_memory flag seems to be updated ok.

There is one case, for calls, where we set references_memory
unconditionally even if we later might not add any virtual operands at 
all.

So, is it ok to replace those checks by checking the variable annotation
instead?

Thanks,
Richard.


Re: Is stmt_ann()-references_memory equal to !ZERO_SSA_OPERANDS (stmt, (SSA_OP_VUSE | SSA_OP_VIRTUAL_DEFS)?

2007-09-06 Thread Diego Novillo
On 9/6/07, Richard Guenther [EMAIL PROTECTED] wrote:

 $subject?

It is not.  You can have a statement that references memory and have
no virtual operands at all (volatile or totally pruned VOPs for
instance).

Also, the very first alias analysis pass will find statements with no
VOPs but with memory references.  stmt_references_memory_p() must work
regardless.

 So, is it ok to replace those checks by checking the variable annotation
 instead?

What variable annotation?  This is a statement annotation.