public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/49471] New: ICE when -ftree-parallelize-loops is enabled together with -m32 on power7
@ 2011-06-20  8:57 razya at il dot ibm.com
  2011-06-20 10:24 ` [Bug tree-optimization/49471] " rguenth at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: razya at il dot ibm.com @ 2011-06-20  8:57 UTC (permalink / raw)
  To: gcc-bugs

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

           Summary: ICE when -ftree-parallelize-loops is enabled together
                    with -m32 on power7
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: razya@il.ibm.com


When building cactusADM on igoo, I get an error when autopar is enabled with
-m32
(does not happen for 64!)

This is the command line which is executed:

> /home/razya/gcc-bin/bin/gcc -c -o PUGHReduce/ReductionNormInf.o -DSPEC_CPU -DNDEBUG  -Iinclude -I../include -DCCODE -m32  -ffast-math -O3  -fno-tree-vectorize -fno-vect-cost-model -ftree-parallelize-loops=6         PUGHReduce/ReductionNormInf.c


The source of the failure is at the code generated to expand omp_for pragma (in
tree level).
The expansion of pragma omp_for generates a prolog code which calculates the
particular interval of (the loop's) iterations which the  thread (executing
this code) should execute.
This prolog calculation involves some arithmetic operations, and in particular
MULT and DIV statements which  cause the failures.

so, for example, this is the tree level code generated for the prolog, and the
div and mult operations highlighted in red:


  D.7313_5 = MEM[(struct  *).paral_data_param_1(D)].D.7288; /*  Number of loop
iterations.  */
   D.7316_8 = __builtin_omp_get_num_threads ();
  D.7317_9 = (<unnamed-unsigned:128>) D.7316_8;
  D.7318_10 = __builtin_omp_get_thread_num ();
  D.7319_11 = (<unnamed-unsigned:128>) D.7318_10;
  D.7320_12 = D.7313_5 / D.7317_9;
  D.7321_13 = D.7320_12 * D.7317_9;
  D.7322_14 = D.7321_13 != D.7313_5;
  D.7323_15 = D.7322_14 + D.7320_12;
  ivtmp.575_16 = D.7323_15 * D.7319_11;
  D.7325_17 = ivtmp.575_16 + D.7323_15;
  D.7326_18 = MIN_EXPR <D.7325_17, D.7313_5>;
  if (ivtmp.575_16 >= D.7326_18)
    goto <bb 3>;
  else
    goto <bb 4>;



 when the div expr is  being expanded to RTL code, we fail in executing 
the following expand_binop:
expmed.c:

            quotient = sign_expand_binop (compute_mode,
                                              udiv_optab, sdiv_optab,
                                              op0, op1, target,
                                              unsignedp, OPTAB_LIB_WIDEN);

The call to this function returns NULL (where it shouldn't s far as I
understand).

When I tried removing the div instruction, the mult expr caused an assert
failure 
 in expand_mult() because the following call returned NULL.:

 expmed.c:

  /* This used to use umul_optab if unsigned, but for non-widening multiply
     there is no difference between signed and unsigned.  */
  op0 = expand_binop (mode,
                      ! unsignedp
                      && flag_trapv && (GET_MODE_CLASS(mode) == MODE_INT)
                      ? smulv_optab : smul_optab,
                      op0, op1, target, unsignedp, OPTAB_LIB_WIDEN);
  gcc_assert (op0);

-------------------------------------------------------------------------------

I found that the variables being divided/multiplied are of 128 bit types.
They are created when canonicalize_loop_ivs is called:

tree
canonicalize_loop_ivs (struct loop *loop, tree *nit, bool bump_in_latch)
{
  unsigned precision = TYPE_PRECISION (TREE_TYPE (*nit));   //precision of
number of iterations

  for (psi = gsi_start_phis (loop->header);         
       !gsi_end_p (psi); gsi_next (&psi))
    {
      gimple phi = gsi_stmt (psi);
      tree res = PHI_RESULT (phi);

      if (is_gimple_reg (res) && TYPE_PRECISION (TREE_TYPE (res)) > precision)
        precision = TYPE_PRECISION (TREE_TYPE (res));
    }

  type = lang_hooks.types.type_for_size (precision, 1);    // here precision is
128 

....
}


Note that this is also the case when -m64 is enabled.
The difference is that the type created by lang_hooks for the -m32 case is
<unnamed-unsigned:128>
and for -m64 it is __int128 unsigned, whose arithmetic operations apparently
are handled correctly by the compiler.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/49471] ICE when -ftree-parallelize-loops is enabled together with -m32 on power7
  2011-06-20  8:57 [Bug tree-optimization/49471] New: ICE when -ftree-parallelize-loops is enabled together with -m32 on power7 razya at il dot ibm.com
@ 2011-06-20 10:24 ` rguenth at gcc dot gnu.org
  2011-06-20 12:31 ` razya at il dot ibm.com
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-06-20 10:24 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-06-20 10:22:52 UTC ---
Why is

  D.7313_5 = MEM[(struct  *).paral_data_param_1(D)].D.7288; /*  Number of loop
iterations.  */

of type __int128?  That looks bogus.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/49471] ICE when -ftree-parallelize-loops is enabled together with -m32 on power7
  2011-06-20  8:57 [Bug tree-optimization/49471] New: ICE when -ftree-parallelize-loops is enabled together with -m32 on power7 razya at il dot ibm.com
  2011-06-20 10:24 ` [Bug tree-optimization/49471] " rguenth at gcc dot gnu.org
@ 2011-06-20 12:31 ` razya at il dot ibm.com
  2011-06-20 12:55 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: razya at il dot ibm.com @ 2011-06-20 12:31 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from razya at il dot ibm.com 2011-06-20 12:31:32 UTC ---
(In reply to comment #1)
> Why is
>   D.7313_5 = MEM[(struct  *).paral_data_param_1(D)].D.7288; /*  Number of loop
> iterations.  */
> of type __int128?  That looks bogus.

the size of 128 was determined according to the precision of the ivs in
canonicalize_loop_ivs:

canonicalize_loop_ivs (struct loop *loop, tree *nit, bool bump_in_latch)
{
  unsigned precision = TYPE_PRECISION (TREE_TYPE (*nit));   
  for (psi = gsi_start_phis (loop->header);         
       !gsi_end_p (psi); gsi_next (&psi))
    {
      gimple phi = gsi_stmt (psi);
      tree res = PHI_RESULT (phi);

      if (is_gimple_reg (res) && TYPE_PRECISION (TREE_TYPE (res)) > precision)
        precision = TYPE_PRECISION (TREE_TYPE (res));
    }

  type = lang_hooks.types.type_for_size (precision, 1); // precision == 128 
  ...
 }

Does it seem that the precision should not determine the new type size, or that 
the precision itself being 128 is strange?


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/49471] ICE when -ftree-parallelize-loops is enabled together with -m32 on power7
  2011-06-20  8:57 [Bug tree-optimization/49471] New: ICE when -ftree-parallelize-loops is enabled together with -m32 on power7 razya at il dot ibm.com
  2011-06-20 10:24 ` [Bug tree-optimization/49471] " rguenth at gcc dot gnu.org
  2011-06-20 12:31 ` razya at il dot ibm.com
@ 2011-06-20 12:55 ` rguenth at gcc dot gnu.org
  2011-06-20 14:15 ` razya at il dot ibm.com
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-06-20 12:55 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-06-20 12:55:10 UTC ---
(In reply to comment #2)
> (In reply to comment #1)
> > Why is
> >   D.7313_5 = MEM[(struct  *).paral_data_param_1(D)].D.7288; /*  Number of loop
> > iterations.  */
> > of type __int128?  That looks bogus.
> 
> the size of 128 was determined according to the precision of the ivs in
> canonicalize_loop_ivs:
> 
> canonicalize_loop_ivs (struct loop *loop, tree *nit, bool bump_in_latch)
> {
>   unsigned precision = TYPE_PRECISION (TREE_TYPE (*nit));   
>   for (psi = gsi_start_phis (loop->header);         
>        !gsi_end_p (psi); gsi_next (&psi))
>     {
>       gimple phi = gsi_stmt (psi);
>       tree res = PHI_RESULT (phi);
> 
>       if (is_gimple_reg (res) && TYPE_PRECISION (TREE_TYPE (res)) > precision)
>         precision = TYPE_PRECISION (TREE_TYPE (res));
>     }
> 
>   type = lang_hooks.types.type_for_size (precision, 1); // precision == 128 
>   ...
>  }
> 
> Does it seem that the precision should not determine the new type size, or that 
> the precision itself being 128 is strange?

Well, autopar seems to introduce this 128 bit type in the first place,
and I wonder why it does that.  And it definitely should avoid doing this.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/49471] ICE when -ftree-parallelize-loops is enabled together with -m32 on power7
  2011-06-20  8:57 [Bug tree-optimization/49471] New: ICE when -ftree-parallelize-loops is enabled together with -m32 on power7 razya at il dot ibm.com
                   ` (2 preceding siblings ...)
  2011-06-20 12:55 ` rguenth at gcc dot gnu.org
@ 2011-06-20 14:15 ` razya at il dot ibm.com
  2011-07-13 15:10 ` razya at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: razya at il dot ibm.com @ 2011-06-20 14:15 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from razya at il dot ibm.com 2011-06-20 14:14:13 UTC ---
(In reply to comment #3)
> (In reply to comment #2)
> > (In reply to comment #1)
> > > Why is
> > >   D.7313_5 = MEM[(struct  *).paral_data_param_1(D)].D.7288; /*  Number of loop
> > > iterations.  */
> > > of type __int128?  That looks bogus.
> > 
> > the size of 128 was determined according to the precision of the ivs in
> > canonicalize_loop_ivs:
> > 
> > canonicalize_loop_ivs (struct loop *loop, tree *nit, bool bump_in_latch)
> > {
> >   unsigned precision = TYPE_PRECISION (TREE_TYPE (*nit));   
> >   for (psi = gsi_start_phis (loop->header);         
> >        !gsi_end_p (psi); gsi_next (&psi))
> >     {
> >       gimple phi = gsi_stmt (psi);
> >       tree res = PHI_RESULT (phi);
> > 
> >       if (is_gimple_reg (res) && TYPE_PRECISION (TREE_TYPE (res)) > precision)
> >         precision = TYPE_PRECISION (TREE_TYPE (res));
> >     }
> > 
> >   type = lang_hooks.types.type_for_size (precision, 1); // precision == 128 
> >   ...
> >  }
> > 
> > Does it seem that the precision should not determine the new type size, or that 
> > the precision itself being 128 is strange?
> Well, autopar seems to introduce this 128 bit type in the first place,
> and I wonder why it does that.  And it definitely should avoid doing this.

What happens is that autopar calls canonicalize_loop_ivs() when it is starting
to change the loop.

Here's a  part of the documentation of canonicalize_loop_ivs(): 

 "  When the IV type precision has to be larger
   than *NIT type precision, *NIT is converted to the larger type, the
   conversion code is inserted before the loop, and *NIT is updated to
   the new definition.  "  

In this case of cactusADM, one of the loop's IVs indeed has a precision of 128,
and therefore a conversion to a type of 128 bit is created.

I checked the precision of the loop's IVs a few passes before autopar, and even
when I disable autopar, and indeed there is an IV that has a type with 128
precision.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/49471] ICE when -ftree-parallelize-loops is enabled together with -m32 on power7
  2011-06-20  8:57 [Bug tree-optimization/49471] New: ICE when -ftree-parallelize-loops is enabled together with -m32 on power7 razya at il dot ibm.com
                   ` (3 preceding siblings ...)
  2011-06-20 14:15 ` razya at il dot ibm.com
@ 2011-07-13 15:10 ` razya at gcc dot gnu.org
  2011-07-13 15:15 ` razya at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: razya at gcc dot gnu.org @ 2011-07-13 15:10 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from razya at gcc dot gnu.org 2011-07-13 15:06:50 UTC ---
(In reply to comment #4)
> (In reply to comment #3)
> > (In reply to comment #2)
> > > (In reply to comment #1)
> > > > Why is
> > > >   D.7313_5 = MEM[(struct  *).paral_data_param_1(D)].D.7288; /*  Number of loop
> > > > iterations.  */
> > > > of type __int128?  That looks bogus.
> > > 
> > > the size of 128 was determined according to the precision of the ivs in
> > > canonicalize_loop_ivs:
> > > 
> > > canonicalize_loop_ivs (struct loop *loop, tree *nit, bool bump_in_latch)
> > > {
> > >   unsigned precision = TYPE_PRECISION (TREE_TYPE (*nit));   
> > >   for (psi = gsi_start_phis (loop->header);         
> > >        !gsi_end_p (psi); gsi_next (&psi))
> > >     {
> > >       gimple phi = gsi_stmt (psi);
> > >       tree res = PHI_RESULT (phi);
> > > 
> > >       if (is_gimple_reg (res) && TYPE_PRECISION (TREE_TYPE (res)) > precision)
> > >         precision = TYPE_PRECISION (TREE_TYPE (res));
> > >     }
> > > 
> > >   type = lang_hooks.types.type_for_size (precision, 1); // precision == 128 
> > >   ...
> > >  }
> > > 
> > > Does it seem that the precision should not determine the new type size, or that 
> > > the precision itself being 128 is strange?
> > Well, autopar seems to introduce this 128 bit type in the first place,
> > and I wonder why it does that.  And it definitely should avoid doing this.
> What happens is that autopar calls canonicalize_loop_ivs() when it is starting
> to change the loop.
> Here's a  part of the documentation of canonicalize_loop_ivs(): 
>  "  When the IV type precision has to be larger
>    than *NIT type precision, *NIT is converted to the larger type, the
>    conversion code is inserted before the loop, and *NIT is updated to
>    the new definition.  "  
> In this case of cactusADM, one of the loop's IVs indeed has a precision of 128,
> and therefore a conversion to a type of 128 bit is created.
> I checked the precision of the loop's IVs a few passes before autopar, and even
> when I disable autopar, and indeed there is an IV that has a type with 128
> precision.

I tried to build cactusADM on linux-x86 with autopar enabled, and I get 
segmentation fault due to the same reason.
It happens when either -m32c or -m64 is enabled.

/Develop/razya/gcc-cactus/bin/gcc -c -o PUGHReduce/ReductionNormInf.o
-DSPEC_CPU -DNDEBUG  -Iinclude -I../include -DCCODE  -O2
-ftree-parallelize-loops=4 -ffast-math       -DSPEC_CPU_LP64        
PUGHReduce/ReductionNormInf.c
PUGHReduce/ReductionNormInf.c: In function 'PUGH_ReductionNormInf':
PUGHReduce/ReductionNormInf.c:207:12: internal compiler error: Segmentation
fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
specmake: *** [PUGHReduce/ReductionNormInf.o] Error 1

The type is NULL at line 1218 in canonicalize_loop_ivs:

1214      type = lang_hooks.types.type_for_size (precision, 1);
1215    
1216      if (original_precision != precision)
1217        {
1218          *nit = fold_convert (type, *nit);
1219          *nit = force_gimple_operand (*nit, &stmts, true, NULL_TREE);
1220          if (stmts)
1221        gsi_insert_seq_on_edge_immediate (loop_preheader_edge (loop),
stmts);
1222        }

The size according to which the type is supposed to be created (line 1214) is
80.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/49471] ICE when -ftree-parallelize-loops is enabled together with -m32 on power7
  2011-06-20  8:57 [Bug tree-optimization/49471] New: ICE when -ftree-parallelize-loops is enabled together with -m32 on power7 razya at il dot ibm.com
                   ` (4 preceding siblings ...)
  2011-07-13 15:10 ` razya at gcc dot gnu.org
@ 2011-07-13 15:15 ` razya at gcc dot gnu.org
  2011-07-25 13:33 ` [Bug tree-optimization/49471] cactusADM/dealII build with autopar fails on x86, and fails on power7 when -m32 is enabled razya at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: razya at gcc dot gnu.org @ 2011-07-13 15:15 UTC (permalink / raw)
  To: gcc-bugs

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

razya at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2011.07.13 15:12:12
         AssignedTo|unassigned at gcc dot       |razya at gcc dot gnu.org
                   |gnu.org                     |
     Ever Confirmed|0                           |1


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/49471] cactusADM/dealII build with autopar fails on x86, and fails on power7 when -m32 is enabled.
  2011-06-20  8:57 [Bug tree-optimization/49471] New: ICE when -ftree-parallelize-loops is enabled together with -m32 on power7 razya at il dot ibm.com
                   ` (5 preceding siblings ...)
  2011-07-13 15:15 ` razya at gcc dot gnu.org
@ 2011-07-25 13:33 ` razya at gcc dot gnu.org
  2011-07-27 16:54 ` spop at gcc dot gnu.org
  2011-07-27 16:59 ` spop at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: razya at gcc dot gnu.org @ 2011-07-25 13:33 UTC (permalink / raw)
  To: gcc-bugs

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

razya at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|cactusADM build with        |cactusADM/dealII build with
                   |autopar fails on x86, and   |autopar fails on x86, and
                   |fails on power7 when -m32   |fails on power7 when -m32
                   |is enabled.                 |is enabled.

--- Comment #6 from razya at gcc dot gnu.org 2011-07-25 13:31:50 UTC ---
(In reply to comment #5)
> (In reply to comment #4)
> > (In reply to comment #3)
> > > (In reply to comment #2)
> > > > (In reply to comment #1)
> > > > > Why is
> > > > >   D.7313_5 = MEM[(struct  *).paral_data_param_1(D)].D.7288; /*  Number of loop
> > > > > iterations.  */
> > > > > of type __int128?  That looks bogus.
> > > > 
> > > > the size of 128 was determined according to the precision of the ivs in
> > > > canonicalize_loop_ivs:
> > > > 
> > > > canonicalize_loop_ivs (struct loop *loop, tree *nit, bool bump_in_latch)
> > > > {
> > > >   unsigned precision = TYPE_PRECISION (TREE_TYPE (*nit));   
> > > >   for (psi = gsi_start_phis (loop->header);         
> > > >        !gsi_end_p (psi); gsi_next (&psi))
> > > >     {
> > > >       gimple phi = gsi_stmt (psi);
> > > >       tree res = PHI_RESULT (phi);
> > > > 
> > > >       if (is_gimple_reg (res) && TYPE_PRECISION (TREE_TYPE (res)) > precision)
> > > >         precision = TYPE_PRECISION (TREE_TYPE (res));
> > > >     }
> > > > 
> > > >   type = lang_hooks.types.type_for_size (precision, 1); // precision == 128 
> > > >   ...
> > > >  }
> > > > 
> > > > Does it seem that the precision should not determine the new type size, or that 
> > > > the precision itself being 128 is strange?
> > > Well, autopar seems to introduce this 128 bit type in the first place,
> > > and I wonder why it does that.  And it definitely should avoid doing this.
> > What happens is that autopar calls canonicalize_loop_ivs() when it is starting
> > to change the loop.
> > Here's a  part of the documentation of canonicalize_loop_ivs(): 
> >  "  When the IV type precision has to be larger
> >    than *NIT type precision, *NIT is converted to the larger type, the
> >    conversion code is inserted before the loop, and *NIT is updated to
> >    the new definition.  "  
> > In this case of cactusADM, one of the loop's IVs indeed has a precision of 128,
> > and therefore a conversion to a type of 128 bit is created.
> > I checked the precision of the loop's IVs a few passes before autopar, and even
> > when I disable autopar, and indeed there is an IV that has a type with 128
> > precision.
> I tried to build cactusADM on linux-x86 with autopar enabled, and I get 
> segmentation fault due to the same reason.
> It happens when either -m32c or -m64 is enabled.
> /Develop/razya/gcc-cactus/bin/gcc -c -o PUGHReduce/ReductionNormInf.o
> -DSPEC_CPU -DNDEBUG  -Iinclude -I../include -DCCODE  -O2
> -ftree-parallelize-loops=4 -ffast-math       -DSPEC_CPU_LP64        
> PUGHReduce/ReductionNormInf.c
> PUGHReduce/ReductionNormInf.c: In function 'PUGH_ReductionNormInf':
> PUGHReduce/ReductionNormInf.c:207:12: internal compiler error: Segmentation
> fault
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <http://gcc.gnu.org/bugs.html> for instructions.
> specmake: *** [PUGHReduce/ReductionNormInf.o] Error 1
> The type is NULL at line 1218 in canonicalize_loop_ivs:
> 1214      type = lang_hooks.types.type_for_size (precision, 1);
> 1215    
> 1216      if (original_precision != precision)
> 1217        {
> 1218          *nit = fold_convert (type, *nit);
> 1219          *nit = force_gimple_operand (*nit, &stmts, true, NULL_TREE);
> 1220          if (stmts)
> 1221        gsi_insert_seq_on_edge_immediate (loop_preheader_edge (loop),
> stmts);
> 1222        }
> The size according to which the type is supposed to be created (line 1214) is
> 80.

dealII has the exact same behavior as cactusADM when autopar is enabled
on x86, or together with -m32 on powerpc.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/49471] cactusADM/dealII build with autopar fails on x86, and fails on power7 when -m32 is enabled.
  2011-06-20  8:57 [Bug tree-optimization/49471] New: ICE when -ftree-parallelize-loops is enabled together with -m32 on power7 razya at il dot ibm.com
                   ` (6 preceding siblings ...)
  2011-07-25 13:33 ` [Bug tree-optimization/49471] cactusADM/dealII build with autopar fails on x86, and fails on power7 when -m32 is enabled razya at gcc dot gnu.org
@ 2011-07-27 16:54 ` spop at gcc dot gnu.org
  2011-07-27 16:59 ` spop at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: spop at gcc dot gnu.org @ 2011-07-27 16:54 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Sebastian Pop <spop at gcc dot gnu.org> 2011-07-27 16:53:15 UTC ---
Author: spop
Date: Wed Jul 27 16:53:09 2011
New Revision: 176838

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=176838
Log:
Fix PR49471: canonicalize_loop_ivs should not generate unsigned types.

2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>

    PR tree-optimization/49471
    * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
    iv only when the largest type is unsigned.  Do not call
    lang_hooks.types.type_for_size.

    * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
    * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/tree-ssa-loop-manip.c
    trunk/libgomp/ChangeLog
    trunk/libgomp/testsuite/libgomp.graphite/force-parallel-1.c
    trunk/libgomp/testsuite/libgomp.graphite/force-parallel-2.c


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug tree-optimization/49471] cactusADM/dealII build with autopar fails on x86, and fails on power7 when -m32 is enabled.
  2011-06-20  8:57 [Bug tree-optimization/49471] New: ICE when -ftree-parallelize-loops is enabled together with -m32 on power7 razya at il dot ibm.com
                   ` (7 preceding siblings ...)
  2011-07-27 16:54 ` spop at gcc dot gnu.org
@ 2011-07-27 16:59 ` spop at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: spop at gcc dot gnu.org @ 2011-07-27 16:59 UTC (permalink / raw)
  To: gcc-bugs

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

Sebastian Pop <spop at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
                 CC|                            |spop at gcc dot gnu.org
         Resolution|                            |FIXED

--- Comment #8 from Sebastian Pop <spop at gcc dot gnu.org> 2011-07-27 16:56:00 UTC ---
Fixed.


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2011-07-27 16:59 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-20  8:57 [Bug tree-optimization/49471] New: ICE when -ftree-parallelize-loops is enabled together with -m32 on power7 razya at il dot ibm.com
2011-06-20 10:24 ` [Bug tree-optimization/49471] " rguenth at gcc dot gnu.org
2011-06-20 12:31 ` razya at il dot ibm.com
2011-06-20 12:55 ` rguenth at gcc dot gnu.org
2011-06-20 14:15 ` razya at il dot ibm.com
2011-07-13 15:10 ` razya at gcc dot gnu.org
2011-07-13 15:15 ` razya at gcc dot gnu.org
2011-07-25 13:33 ` [Bug tree-optimization/49471] cactusADM/dealII build with autopar fails on x86, and fails on power7 when -m32 is enabled razya at gcc dot gnu.org
2011-07-27 16:54 ` spop at gcc dot gnu.org
2011-07-27 16:59 ` spop at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).