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 tree-optimization/18308] ICE in do_jump, at dojump.c:274


------- Additional Comments From dpatel at apple dot com  2004-11-18 02:33 -------
Subject: Re:  ICE in do_jump, at dojump.c:274

Andrew,

You can try following to fix tree level if-conversion. I have not 
tested it completely yet.

-
Devang

Index: tree-if-conv.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-if-conv.c,v
retrieving revision 2.19
diff -Idpatel.pbxuser -c -3 -p -r2.19 tree-if-conv.c
*** tree-if-conv.c      16 Nov 2004 20:02:48 -0000      2.19
--- tree-if-conv.c      18 Nov 2004 02:32:03 -0000
*************** add_to_dst_predicate_list (struct loop *
*** 639,645 ****
       new_cond = unshare_expr (cond);
     else
       {
!       tree tmp_stmt;
         /* new_cond == prev_cond AND cond */
         tree tmp = build (TRUTH_AND_EXPR, boolean_type_node,
                         unshare_expr (prev_cond), cond);
--- 639,655 ----
       new_cond = unshare_expr (cond);
     else
       {
!       tree tmp_stmt = NULL_TREE;
!       tree tmp_stmts1 = NULL_TREE;
!       tree tmp_stmts2 = NULL_TREE;
!       prev_cond = force_gimple_operand (unshare_expr (prev_cond), 
&tmp_stmts1, true, NULL);
!       if (tmp_stmts1)
!       bsi_insert_before (bsi, tmp_stmts1, BSI_SAME_STMT);
!
!       cond = force_gimple_operand (unshare_expr (cond), &tmp_stmts2, 
true, NULL);
!       if (tmp_stmts2)
!       bsi_insert_before (bsi, tmp_stmts2, BSI_SAME_STMT);
!
         /* new_cond == prev_cond AND cond */
         tree tmp = build (TRUTH_AND_EXPR, boolean_type_node,
                         unshare_expr (prev_cond), cond);



-- 


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


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