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

[Bug gcov/profile/28480] [4.2 Regression] inliner-1.c:31: ICE: in set_bb_for_stmt, at tree-cfg.c:2775



------- Comment #5 from hubicka at ucw dot cz  2006-07-27 16:06 -------
Subject: Re: [Bug gcov/profile/28480] [4.2 Regression] inliner-1.c:31: ICE: in
set_bb_for_stmt, at tree-cfg.c:2775

Hi,
it is hitting sanity check in set_bb_for_stmt that is bit insane in this
context.  I am testing patch to inline neccesary parts of
set_bb_for_stmt (because of quadratic time issue it is time critical too
and we need very little of the function itself.)

Index: tree-cfg.c
===================================================================
*** tree-cfg.c  (revision 115775)
--- tree-cfg.c  (working copy)
*************** tree_split_block (basic_block bb, void *
*** 4203,4209 ****
    new_bb->stmt_list = tsi_split_statement_list_before (&bsi.tsi);
    for (tsi_tgt = tsi_start (new_bb->stmt_list);
         !tsi_end_p (tsi_tgt); tsi_next (&tsi_tgt))
!     set_bb_for_stmt (tsi_stmt (tsi_tgt), new_bb);

    return new_bb;
  }
--- 4205,4218 ----
    new_bb->stmt_list = tsi_split_statement_list_before (&bsi.tsi);
    for (tsi_tgt = tsi_start (new_bb->stmt_list);
         !tsi_end_p (tsi_tgt); tsi_next (&tsi_tgt))
!     {
!       tree stmt = tsi_stmt (tsi_tgt);
! 
!       get_stmt_ann (stmt)->bb = new_bb;
!       if (TREE_CODE (stmt) == LABEL_EXPR)
!         VEC_replace (basic_block, label_to_block_map,
!                    LABEL_DECL_UID (LABEL_EXPR_LABEL (stmt)), bb);
!     }

    return new_bb;
  }


-- 


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


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