a question about GIMPLE_PHI node

beicy wang beicywm@gmail.com
Tue Jul 17 18:12:00 GMT 2012


Hi Everyone,

I am new to GIMPLE, and have a question about GIMPLE_PHI node.

If I add "-fdump-tree-ssa-raw" option, the output file contains every
GIMPLE_PHI node. However, when I added a new pass before pass
"pass_ipa_lto_gimple_out", and traversed each statement using the
following piece of codes:
FOR_EACH_BB (bb){
      for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)){
        stmt = gsi_stmt (gsi);
        ....

No GIMPLE_PHI node is encountered, but the SSA_NAME  defined in the
missed GIMPLE_PHI node are still used in other statements.

Take the following debugging info as an example. SSA_NAME
0x7ffff7fc1680  is used in stmt_cur, but "a_1 = PHI <a_5(3), a_7(4)>"
is not encountered when traversing each gimple statement.

(gdb) p debug_tree(gimple_assign_rh2(stmt_cur))
<ssa_name 0x7fff7c1680
   (skipping some info)
 visited var <var_decl 0x7fff700a790 a>def_stmt a_1=PHI <a_5(3), a_7(4)>
 version 1>

Did I do something wrong? Where are those GIMPLE_PHI nodes?

Thanks a lot for your help!

Beicy



More information about the Gcc-help mailing list