[Bug tree-optimization/26447] [4.2 Regression] verify_flow_info failed, load PRE with java program

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed May 3 10:37:00 GMT 2006



------- Comment #19 from rguenth at gcc dot gnu dot org  2006-05-03 10:36 -------
Thanks!

So, the problem is that PRE inserts (and later realifies) fake stores in basic
blocks with abnormal control flow.  It would need to do the insertion on the
outgoing edges in this case, or deal with splitting the block and adjusting EH
info at realifying point.  But the much easier solution is to just punt on
basic blocks that have abnormal control flow.  Like

Index: tree-ssa-pre.c
===================================================================
*** tree-ssa-pre.c      (revision 113493)
--- tree-ssa-pre.c      (working copy)
*************** insert_fake_stores (void)
*** 3216,3221 ****
--- 3216,3229 ----
    FOR_ALL_BB (block)
      {
        block_stmt_iterator bsi;
+       int i;
+       /* Do not insert fake stores in basic blocks that have
+        abnormal control flow.  */
+       for (i=0; i<EDGE_COUNT (block->succs); ++i)
+       if (EDGE_SUCC (block, i)->flags & EDGE_COMPLEX)
+         break;
+       if (i != EDGE_COUNT (block->succs))
+       continue;
        for (bsi = bsi_start (block); !bsi_end_p (bsi); bsi_next (&bsi))
        {
          tree stmt = bsi_stmt (bsi);

Danny?


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dberlin at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26447



More information about the Gcc-bugs mailing list