[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2005-01-04 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-04 
15:43 ---
Fixed.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.0.0


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2005-01-04 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-04 
14:37 ---
Subject: Bug 18308

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-01-04 14:37:24

Modified files:
gcc: ChangeLog tree-if-conv.c dojump.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gcc.dg/vect: pr18308.c 

Log message:
gcc:
2005-01-04  Paolo Bonzini  <[EMAIL PROTECTED]>
Devang Patel  <[EMAIL PROTECTED]>

PR tree-optimization/18308

* tree-if-conv.c (add_to_dst_predicate_list): Gimplify
the operands before creating a new expression.
* dojump.c (do_jump): Make drop_through_label available
for all cases.  Add expansion of COND_EXPR.

gcc/testsuite:
2005-01-04  Paolo Bonzini  <[EMAIL PROTECTED]>

* gcc.dg/vect/pr18308.c: New testcase.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.7019&r2=2.7020
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-if-conv.c.diff?cvsroot=gcc&r1=2.24&r2=2.25
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/dojump.c.diff?cvsroot=gcc&r1=1.35&r2=1.36
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4844&r2=1.4845
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/pr18308.c.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-12-28 Thread bonzini at gcc dot gnu dot org

--- Additional Comments From bonzini at gcc dot gnu dot org  2004-12-28 
18:49 ---
http://gcc.gnu.org/ml/gcc-patches/2004-12/msg02012.html

-- 
   What|Removed |Added

   Keywords||patch


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-12-28 Thread bonzini at gcc dot gnu dot org


-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |bonzini at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2004-11-05 13:51:36 |2004-12-28 17:45:12
   date||


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-12-28 Thread bonzini at gcc dot gnu dot org

--- Additional Comments From bonzini at gcc dot gnu dot org  2004-12-28 
17:44 ---
Looking at it.

-- 


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-11-18 Thread dpatel at apple dot com

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


On Nov 18, 2004, at 12:03 AM, paolo dot bonzini at lu dot unisi dot ch 
wrote:

> While I can work on a fix, those COND_EXPR were *not* valid GIMPLE at
> the time the patch was written.

I agree with you. While cleanup this stuff, you even cc'ed us and left 
some stuff around. May be we can update rewrite_outof_ssa()? See 
example I included above.

-
Devang



-- 


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-11-18 Thread paolo dot bonzini at lu dot unisi dot ch

--- Additional Comments From paolo dot bonzini at lu dot unisi dot ch  
2004-11-18 08:03 ---
Subject: Re:  ICE in do_jump, at dojump.c:274

> And that would mean it was caused by:
> * dojump.c (do_jump)  TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
> Abort on gimplified cases.

While I can work on a fix, those COND_EXPR were *not* valid GIMPLE at 
the time the patch was written.

Paolo


-- 


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-11-17 Thread dpatel at apple dot com

--- 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 -  2.19
--- tree-if-conv.c  18 Nov 2004 02:32:03 -
*** 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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-11-17 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2004-11-18 
02:31 ---
And that would mean it was caused by:
* dojump.c (do_jump) :
Abort on gimplified cases.


-- 
   What|Removed |Added

 CC||bonzini at gnu dot org


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-11-17 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2004-11-18 
02:29 ---
So someone removed too much from do_jump in the first place.

-- 


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-11-17 Thread dpatel at apple dot com

--- Additional Comments From dpatel at apple dot com  2004-11-18 02:26 
---
After I update tree-level if-conversion to force gimple operands appropriately, 
rewrite_out_of_ssa() is 
converting following ...

bar()   
  
{   

  _Bool _ifc_.3;

  _Bool _ifc_.2;

  _Bool D.1339; 

  _Bool D.1336; 

  _Bool D.1337; 

  _Bool D.1338; 

  _Bool _ifc_.1;

  unsigned int ivtmp.0; 

  int k;

  int j;

  int i;



  # BLOCK 0 

  # PRED: ENTRY [100.0%]  (fallthru,exec)   

  k_21 = j_6 != 0 ? 2 : 0;  

  k_5 = j_6 == 0 ? k_21 : 2;

  if (k_5 != 0) goto ; else goto ;  

  # SUCC: 1 [46.5%]  (true,exec) 2 [53.5%]  (false,exec)



  # BLOCK 1 

  # PRED: 0 [46.5%]  (true,exec)

:;  

  #   .GLOBAL_VAR_10 = V_MAY_DEF <.GLOBAL_VAR_9>;   

  foo () [tail call];   

  # SUCC: 2 [100.0%]  (fallthru,exec)   



  # BLOCK 2 

  # PRED: 0 [53.5%]  (false,exec) 1 [100.0%]  (fallthru,exec)   

:;  

  return;   

  # SUCC: EXIT [100.0%] 


 

[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-11-17 Thread dpatel at apple dot com

--- Additional Comments From dpatel at apple dot com  2004-11-18 01:28 
---
I meant,

Bigger issue is : if-convert COND_EXPR is not vectorized and do_jump() does not 
handle it.

-- 


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-11-17 Thread dpatel at apple dot com

--- Additional Comments From dpatel at apple dot com  2004-11-18 01:27 
---
Bigger issue is : if-convert COND_EXPR is not vectorized and do_jump() does not 
aborts().

-- 


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-11-05 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2004-11-05 13:51 
---
ifcvt produces non-gimple:
  _ifc_.2_15 = (j_6 != 0 || !_ifc_.1_16) && ivtmp.0_4 != 0;

Confirmed.

-- 
   What|Removed |Added

 CC||dpatel at apple dot com
 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2004-11-05 13:51:36
   date||


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


[Bug tree-optimization/18308] ICE in do_jump, at dojump.c:274

2004-11-05 Thread reichelt at gcc dot gnu dot org

--- Additional Comments From reichelt at gcc dot gnu dot org  2004-11-05 13:25 
---
Zdenek, the problem appeared with your patch
http://gcc.gnu.org/ml/gcc-cvs/2004-10/msg00030.html


-- 
   What|Removed |Added

 CC||rakdver at gcc dot gnu dot
   ||org


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