public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization
@ 2014-11-13  4:20 andi-gcc at firstfloor dot org
  2014-11-13  9:16 ` [Bug tree-optimization/63844] " rguenth at gcc dot gnu.org
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: andi-gcc at firstfloor dot org @ 2014-11-13  4:20 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

            Bug ID: 63844
           Summary: open mp parallelization prevents vectorization
           Product: gcc
           Version: 4.9.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: andi-gcc at firstfloor dot org

#define N 10000000
int a[N], b[N], c[N];

main()
{

        int i;

#pragma omp parallel num_threads(4)
        for (i = 0; i < N; i++) {
                a[i] = b[i] + c[i];
        }
        for (i = 0; i < N; i++) {
                a[i] += b[i] + c[i];
        }
}


compiled with gcc -O3 -fopenmp

The first loop gets parallelized by openmp, the second loop gets vectorized.
But why does the parallelized loop not get vectorized too?


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

* [Bug tree-optimization/63844] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
@ 2014-11-13  9:16 ` rguenth at gcc dot gnu.org
  2014-11-17 18:52 ` andi-gcc at firstfloor dot org
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-13  9:16 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization, openmp
             Blocks|                            |53947

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
We have a duplicate (or related) bug somewhere.


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

* [Bug tree-optimization/63844] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
  2014-11-13  9:16 ` [Bug tree-optimization/63844] " rguenth at gcc dot gnu.org
@ 2014-11-17 18:52 ` andi-gcc at firstfloor dot org
  2014-11-18 10:59 ` [Bug tree-optimization/63844] [4.8/4.9/5 Regression] " rguenth at gcc dot gnu.org
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: andi-gcc at firstfloor dot org @ 2014-11-17 18:52 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #2 from Andi Kleen <andi-gcc at firstfloor dot org> ---
Regression, doesn't happen on 4.8


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

* [Bug tree-optimization/63844] [4.8/4.9/5 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
  2014-11-13  9:16 ` [Bug tree-optimization/63844] " rguenth at gcc dot gnu.org
  2014-11-17 18:52 ` andi-gcc at firstfloor dot org
@ 2014-11-18 10:59 ` rguenth at gcc dot gnu.org
  2014-11-18 11:03 ` jakub at gcc dot gnu.org
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-18 10:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|jakub at gcc dot gnu.org           |rguenth at gcc dot gnu.org

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
The issue here is the induction variable is shared?

  <bb 5>:
  # _17 = PHI <0(2), _11(4)>
  _6 = b[_17];
  _7 = c[_17];
  _8 = _6 + _7;
  a[_17] = _8;
  _10 = .omp_data_i_3(D)->i;
  _11 = _10 + 1;
  .omp_data_i_3(D)->i = _11;
  if (_11 <= 9999999)
    goto <bb 4>;
  else
    goto <bb 3>;

and we didn't apply store-motion to it:

Memory reference 1: b[_17]
Memory reference 2: c[_17]
Memory reference 3: a[_17]
Memory reference 4: .omp_data_i_3(D)->i
...
Querying dependency of refs 4 and 1: dependent.
Querying dependencies of ref 4 in loop 1: dependent

I think the static chain never points to global decls thus we could
special-case this.  We could also treat members of the frame as
non-allocated and thus not worry about trailing arrays and such.
Unfortunately the .omp_data_i is a regular function parameter and
not a static chain :/


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

* [Bug tree-optimization/63844] [4.8/4.9/5 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (2 preceding siblings ...)
  2014-11-18 10:59 ` [Bug tree-optimization/63844] [4.8/4.9/5 Regression] " rguenth at gcc dot gnu.org
@ 2014-11-18 11:03 ` jakub at gcc dot gnu.org
  2014-11-18 11:13 ` rguenth at gcc dot gnu.org
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-11-18 11:03 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #5)
> The issue here is the induction variable is shared?

Ah right, the testcase is clearly invalid.
There is a data race on i, as well as data races on all the a[i] stores
(because 4 different threads all do the same thing).
Andi, did you mean
#pragma omp parallel for num_threads(4)
instead?


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

* [Bug tree-optimization/63844] [4.8/4.9/5 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (3 preceding siblings ...)
  2014-11-18 11:03 ` jakub at gcc dot gnu.org
@ 2014-11-18 11:13 ` rguenth at gcc dot gnu.org
  2014-11-18 11:34 ` rguenth at gcc dot gnu.org
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-18 11:13 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Ok, I think Tom had a similar patch for this but passing the .omp_data_i by
effective "reference" (restrict qualified pointer and DECL_BY_REFERENCE)
fixes this.

Index: gcc/omp-low.c
===================================================================
--- gcc/omp-low.c       (revision 217692)
+++ gcc/omp-low.c       (working copy)
@@ -1517,7 +1517,8 @@ fixup_child_record_type (omp_context *ct
       layout_type (type);
     }

-  TREE_TYPE (ctx->receiver_decl) = build_pointer_type (type);
+  TREE_TYPE (ctx->receiver_decl)
+    = build_qualified_type (build_pointer_type (type), TYPE_QUAL_RESTRICT);
 }

 /* Instantiate decls as necessary in CTX to satisfy the data sharing
@@ -2006,6 +2007,7 @@ create_omp_child_function (omp_context *
   DECL_NAMELESS (t) = 1;
   DECL_ARG_TYPE (t) = ptr_type_node;
   DECL_CONTEXT (t) = current_function_decl;
+  DECL_BY_REFERENCE (t) = 1;
   TREE_USED (t) = 1;
   if (cilk_for_count)
     DECL_CHAIN (t) = DECL_ARGUMENTS (decl);

there are more similar objects built, so the above may not fully optimize
all cases.


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

* [Bug tree-optimization/63844] [4.8/4.9/5 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (4 preceding siblings ...)
  2014-11-18 11:13 ` rguenth at gcc dot gnu.org
@ 2014-11-18 11:34 ` rguenth at gcc dot gnu.org
  2014-11-18 11:38 ` rguenth at gcc dot gnu.org
                   ` (11 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-18 11:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #7)
> Ok, I think Tom had a similar patch for this but passing the .omp_data_i by
> effective "reference" (restrict qualified pointer and DECL_BY_REFERENCE)
> fixes this.
> 
> Index: gcc/omp-low.c
> ===================================================================
> --- gcc/omp-low.c       (revision 217692)
> +++ gcc/omp-low.c       (working copy)
> @@ -1517,7 +1517,8 @@ fixup_child_record_type (omp_context *ct
>        layout_type (type);
>      }
>  
> -  TREE_TYPE (ctx->receiver_decl) = build_pointer_type (type);
> +  TREE_TYPE (ctx->receiver_decl)
> +    = build_qualified_type (build_pointer_type (type), TYPE_QUAL_RESTRICT);
>  }
>  
>  /* Instantiate decls as necessary in CTX to satisfy the data sharing
> @@ -2006,6 +2007,7 @@ create_omp_child_function (omp_context *
>    DECL_NAMELESS (t) = 1;
>    DECL_ARG_TYPE (t) = ptr_type_node;
>    DECL_CONTEXT (t) = current_function_decl;
> +  DECL_BY_REFERENCE (t) = 1;
>    TREE_USED (t) = 1;
>    if (cilk_for_count)
>      DECL_CHAIN (t) = DECL_ARGUMENTS (decl);
> 
> there are more similar objects built, so the above may not fully optimize
> all cases.

For the invalid testcase the DECL_BY_REFERENCE setting isn't needed and
its positive effect on PTA could also be seen if using build_reference_type
instead of build_pointer_type in the first hunk.


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

* [Bug tree-optimization/63844] [4.8/4.9/5 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (5 preceding siblings ...)
  2014-11-18 11:34 ` rguenth at gcc dot gnu.org
@ 2014-11-18 11:38 ` rguenth at gcc dot gnu.org
  2014-11-18 11:43 ` jakub at gcc dot gnu.org
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-18 11:38 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
Valid testcase (well, assign sth useful to g...)

#define N 10000000
int a[N], b[N], c[N];

main()
{

  int i, g;

#pragma omp parallel for num_threads(4)
  for (i = 0; i < N; i++) {
      a[i] = b[i] + c[i] + g;
  }
}

in the OMP fn we fail to hoist the load of .omp_child_i->g out of the
loop and thus generate inferior code.


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

* [Bug tree-optimization/63844] [4.8/4.9/5 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (6 preceding siblings ...)
  2014-11-18 11:38 ` rguenth at gcc dot gnu.org
@ 2014-11-18 11:43 ` jakub at gcc dot gnu.org
  2014-11-18 12:09 ` rguenther at suse dot de
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-11-18 11:43 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #9)
> Valid testcase (well, assign sth useful to g...)
> 
> #define N 10000000
> int a[N], b[N], c[N];
> 
> main()
> {
> 
>   int i, g;
> 
> #pragma omp parallel for num_threads(4)
>   for (i = 0; i < N; i++) {
>       a[i] = b[i] + c[i] + g;
>   }
> }
> 
> in the OMP fn we fail to hoist the load of .omp_child_i->g out of the
> loop and thus generate inferior code.

And does making receiver_decl restrict and/or reference type help with that?
BTW, we probably should add some IPA omp pass that would try to constant
propagate across from GOMP_parallel*/GOMP_task* callers to the *.omp_fn.*
functions (or teach IPA-SRA to do that?).


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

* [Bug tree-optimization/63844] [4.8/4.9/5 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (7 preceding siblings ...)
  2014-11-18 11:43 ` jakub at gcc dot gnu.org
@ 2014-11-18 12:09 ` rguenther at suse dot de
  2014-11-18 13:42 ` andi-gcc at firstfloor dot org
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenther at suse dot de @ 2014-11-18 12:09 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #11 from rguenther at suse dot de <rguenther at suse dot de> ---
On Tue, 18 Nov 2014, jakub at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844
> 
> --- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> (In reply to Richard Biener from comment #9)
> > Valid testcase (well, assign sth useful to g...)
> > 
> > #define N 10000000
> > int a[N], b[N], c[N];
> > 
> > main()
> > {
> > 
> >   int i, g;
> > 
> > #pragma omp parallel for num_threads(4)
> >   for (i = 0; i < N; i++) {
> >       a[i] = b[i] + c[i] + g;
> >   }
> > }
> > 
> > in the OMP fn we fail to hoist the load of .omp_child_i->g out of the
> > loop and thus generate inferior code.
> 
> And does making receiver_decl restrict and/or reference type help with that?

Yes.

> BTW, we probably should add some IPA omp pass that would try to constant
> propagate across from GOMP_parallel*/GOMP_task* callers to the *.omp_fn.*
> functions (or teach IPA-SRA to do that?).

I think aggregate IPA-CP does that, IPA-SRA cannot as the function has
its address taken.

Richard.


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

* [Bug tree-optimization/63844] [4.8/4.9/5 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (8 preceding siblings ...)
  2014-11-18 12:09 ` rguenther at suse dot de
@ 2014-11-18 13:42 ` andi-gcc at firstfloor dot org
  2014-11-18 13:44 ` andi-gcc at firstfloor dot org
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: andi-gcc at firstfloor dot org @ 2014-11-18 13:42 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #12 from Andi Kleen <andi-gcc at firstfloor dot org> ---
Yes should have been omp parallel for


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

* [Bug tree-optimization/63844] [4.8/4.9/5 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (9 preceding siblings ...)
  2014-11-18 13:42 ` andi-gcc at firstfloor dot org
@ 2014-11-18 13:44 ` andi-gcc at firstfloor dot org
  2014-11-19  9:47 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: andi-gcc at firstfloor dot org @ 2014-11-18 13:44 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #13 from Andi Kleen <andi-gcc at firstfloor dot org> ---

>I think aggregate IPA-CP does that, IPA-SRA cannot as the function has
>its address taken.

Perhaps that case (only passing address to gomp runtime) could be special cased
in the escape analysis.


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

* [Bug tree-optimization/63844] [4.8/4.9/5 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (10 preceding siblings ...)
  2014-11-18 13:44 ` andi-gcc at firstfloor dot org
@ 2014-11-19  9:47 ` rguenth at gcc dot gnu.org
  2014-11-19  9:48 ` [Bug tree-optimization/63844] [4.8/4.9 " rguenth at gcc dot gnu.org
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-19  9:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Wed Nov 19 09:47:19 2014
New Revision: 217757

URL: https://gcc.gnu.org/viewcvs?rev=217757&root=gcc&view=rev
Log:
2014-11-19  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/63844
    * omp-low.c (fixup_child_record_type): Use a restrict qualified
    referece type for the receiver parameter.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/omp-low.c


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

* [Bug tree-optimization/63844] [4.8/4.9 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (11 preceding siblings ...)
  2014-11-19  9:47 ` rguenth at gcc dot gnu.org
@ 2014-11-19  9:48 ` rguenth at gcc dot gnu.org
  2014-12-10 13:17 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-11-19  9:48 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |5.0
            Summary|[4.8/4.9/5 Regression] open |[4.8/4.9 Regression] open
                   |mp parallelization prevents |mp parallelization prevents
                   |vectorization               |vectorization

--- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed on trunk(?)


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

* [Bug tree-optimization/63844] [4.8/4.9 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (12 preceding siblings ...)
  2014-11-19  9:48 ` [Bug tree-optimization/63844] [4.8/4.9 " rguenth at gcc dot gnu.org
@ 2014-12-10 13:17 ` rguenth at gcc dot gnu.org
  2014-12-19 13:33 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-12-10 13:17 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


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

* [Bug tree-optimization/63844] [4.8/4.9 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (13 preceding siblings ...)
  2014-12-10 13:17 ` rguenth at gcc dot gnu.org
@ 2014-12-19 13:33 ` jakub at gcc dot gnu.org
  2015-02-23 12:06 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-12-19 13:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.8.4                       |4.8.5

--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 4.8.4 has been released.


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

* [Bug tree-optimization/63844] [4.8/4.9 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (14 preceding siblings ...)
  2014-12-19 13:33 ` jakub at gcc dot gnu.org
@ 2015-02-23 12:06 ` rguenth at gcc dot gnu.org
  2015-02-24 15:54 ` [Bug tree-optimization/63844] [4.8 " rguenth at gcc dot gnu.org
  2015-02-24 16:14 ` rguenth at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-02-23 12:06 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Mon Feb 23 11:14:25 2015
New Revision: 220912

URL: https://gcc.gnu.org/viewcvs?rev=220912&root=gcc&view=rev
Log:
2015-02-23  Richard Biener  <rguenther@suse.de>

    Backport from mainline
    2014-11-19  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/63844
    * omp-low.c (fixup_child_record_type): Use a restrict qualified
    referece type for the receiver parameter.

    2014-11-27  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/61634
    * tree-vect-slp.c: Include gimple-walk.h.
    (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
    down the SLP tree for one scalar statement.
    (vect_detect_hybrid_slp_1): New walker function.
    (vect_detect_hybrid_slp_2): Likewise.
    (vect_detect_hybrid_slp): Properly handle pattern statements
    in a pre-scan over all loop stmts.

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

    2015-01-14  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/59354
    * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
    groups larger than the slp group size as having gaps.

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

    2015-02-10  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/64909
    * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
    pass a scalar-stmt count estimate to the cost model.
    * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.

    * gcc.dg/vect/costmodel/x86_64/costmodel-pr64909.c: New testcase.

Added:
   
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr64909.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/pr59354.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/pr61634.c
Modified:
    branches/gcc-4_9-branch/gcc/ChangeLog
    branches/gcc-4_9-branch/gcc/omp-low.c
    branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_9-branch/gcc/tree-vect-data-refs.c
    branches/gcc-4_9-branch/gcc/tree-vect-loop.c
    branches/gcc-4_9-branch/gcc/tree-vect-slp.c


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

* [Bug tree-optimization/63844] [4.8 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (15 preceding siblings ...)
  2015-02-23 12:06 ` rguenth at gcc dot gnu.org
@ 2015-02-24 15:54 ` rguenth at gcc dot gnu.org
  2015-02-24 16:14 ` rguenth at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-02-24 15:54 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
      Known to work|                            |4.8.5
         Resolution|---                         |FIXED
      Known to fail|                            |4.8.4

--- Comment #18 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.


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

* [Bug tree-optimization/63844] [4.8 Regression] open mp parallelization prevents vectorization
  2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
                   ` (16 preceding siblings ...)
  2015-02-24 15:54 ` [Bug tree-optimization/63844] [4.8 " rguenth at gcc dot gnu.org
@ 2015-02-24 16:14 ` rguenth at gcc dot gnu.org
  17 siblings, 0 replies; 19+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-02-24 16:14 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63844

--- Comment #19 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Tue Feb 24 15:09:00 2015
New Revision: 220941

URL: https://gcc.gnu.org/viewcvs?rev=220941&root=gcc&view=rev
Log:
2015-02-24  Richard Biener  <rguenther@suse.de>

    Backport from mainline
    2014-11-19  Richard Biener  <rguenther@suse.de>

    PR tree-optimization/63844
    * omp-low.c (fixup_child_record_type): Use a restrict qualified
    referece type for the receiver parameter.

Modified:
    branches/gcc-4_8-branch/gcc/ChangeLog
    branches/gcc-4_8-branch/gcc/omp-low.c


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

end of thread, other threads:[~2015-02-24 15:09 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-13  4:20 [Bug tree-optimization/63844] New: open mp parallelization prevents vectorization andi-gcc at firstfloor dot org
2014-11-13  9:16 ` [Bug tree-optimization/63844] " rguenth at gcc dot gnu.org
2014-11-17 18:52 ` andi-gcc at firstfloor dot org
2014-11-18 10:59 ` [Bug tree-optimization/63844] [4.8/4.9/5 Regression] " rguenth at gcc dot gnu.org
2014-11-18 11:03 ` jakub at gcc dot gnu.org
2014-11-18 11:13 ` rguenth at gcc dot gnu.org
2014-11-18 11:34 ` rguenth at gcc dot gnu.org
2014-11-18 11:38 ` rguenth at gcc dot gnu.org
2014-11-18 11:43 ` jakub at gcc dot gnu.org
2014-11-18 12:09 ` rguenther at suse dot de
2014-11-18 13:42 ` andi-gcc at firstfloor dot org
2014-11-18 13:44 ` andi-gcc at firstfloor dot org
2014-11-19  9:47 ` rguenth at gcc dot gnu.org
2014-11-19  9:48 ` [Bug tree-optimization/63844] [4.8/4.9 " rguenth at gcc dot gnu.org
2014-12-10 13:17 ` rguenth at gcc dot gnu.org
2014-12-19 13:33 ` jakub at gcc dot gnu.org
2015-02-23 12:06 ` rguenth at gcc dot gnu.org
2015-02-24 15:54 ` [Bug tree-optimization/63844] [4.8 " rguenth at gcc dot gnu.org
2015-02-24 16:14 ` rguenth 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).