On Thu, Jun 25, 2009 at 8:11 PM, Manuel López-Ibáñez<lopeziba...@gmail.com> wrote: > 2009/6/23 Ian Lance Taylor <i...@google.com>: >> Paolo Bonzini <bonz...@gnu.org> writes: >> >>> I don't think this warning can report anything that -Wuninitialized >>> cannot report, so it should go in -Wc++-compat only. >> >> For the record, it can, as in when compiling this case without >> optimization. This is not a strong example by any means. > > This is a part of SSA that I don't understand completely. We create a > var_decl for i in the following assignment: > > D.1606_1 = i; > > because i is loaded from memory. But then, because there is no alias > info, there are no vuse/vdef operators for this statement. So we
The only reason there is no VUSE/VDEF at -O0 is that we never need it, so we omit it for efficiency reasons. We have enough information at -O0 to add them should we need them. Richard. > actually do not know if this vuse is the default definition of i. Is > there no way to know this without alias info? In the dump, it looks > like this could be known: > > f1 () > { > intD.0 iD.1605; > intD.0 D.1606; > > # BLOCK 2 > # PRED: ENTRY (fallthru) > # SUCC: 3 (fallthru) > > # BLOCK 3, starting at line 10 > # PRED: 2 (fallthru) > lab1L.0: > [test.c : 10:4] D.1606_1 = iD.1605; > return D.1606_1; > # SUCC: EXIT > > } > > BTW, why the dump and the output of debug_gimple_stmt are so different? > > Cheers, > > Manuel. >