diff mbox

[committed] Add pass_parallelize_loops to pass_oacc_kernels

Message ID 569CE8C5.2060903@mentor.com
State New
Headers show

Commit Message

Tom de Vries Jan. 18, 2016, 1:29 p.m. UTC
[ was: Re: [committed] Add oacc_kernels_p argument to 
pass_parallelize_loops ]

On 18/01/16 14:07, Tom de Vries wrote:
> [was: Re: [PIING][PATCH, 9/16] Add pass_parallelize_loops_oacc_kernels ]
>
> On 14/12/15 16:22, Richard Biener wrote:
>> On Sun, Dec 13, 2015 at 5:58 PM, Tom de Vries <Tom_deVries@mentor.com>
>> wrote:
>>> On 24/11/15 13:24, Tom de Vries wrote:
>>>>
>>>> On 16/11/15 12:59, Tom de Vries wrote:
>>>>>
>>>>> On 09/11/15 20:52, Tom de Vries wrote:
>>>>>>
>>>>>> On 09/11/15 16:35, Tom de Vries wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> this patch series for stage1 trunk adds support to:
>>>>>>> - parallelize oacc kernels regions using parloops, and
>>>>>>> - map the loops onto the oacc gang dimension.
>>>>>>>
>>>>>>> The patch series contains these patches:
>>>>>>>
>>>>>>>        1    Insert new exit block only when needed in
>>>>>>>           transform_to_exit_first_loop_alt
>>>>>>>        2    Make create_parallel_loop return void
>>>>>>>        3    Ignore reduction clause on kernels directive
>>>>>>>        4    Implement -foffload-alias
>>>>>>>        5    Add in_oacc_kernels_region in struct loop
>>>>>>>        6    Add pass_oacc_kernels
>>>>>>>        7    Add pass_dominator_oacc_kernels
>>>>>>>        8    Add pass_ch_oacc_kernels
>>>>>>>        9    Add pass_parallelize_loops_oacc_kernels
>>>>>>>       10    Add pass_oacc_kernels pass group in passes.def
>>>>>>>       11    Update testcases after adding kernels pass group
>>>>>>>       12    Handle acc loop directive
>>>>>>>       13    Add c-c++-common/goacc/kernels-*.c
>>>>>>>       14    Add gfortran.dg/goacc/kernels-*.f95
>>>>>>>       15    Add libgomp.oacc-c-c++-common/kernels-*.c
>>>>>>>       16    Add libgomp.oacc-fortran/kernels-*.f95
>>>>>>>
>>>>>>> The first 9 patches are more or less independent, but patches
>>>>>>> 10-16 are
>>>>>>> intended to be committed at the same time.
>>>>>>>
>>>>>>> Bootstrapped and reg-tested on x86_64.
>>>>>>>
>>>>>>> Build and reg-tested with nvidia accelerator, in combination with a
>>>>>>> patch that enables accelerator testing (which is submitted at
>>>>>>> https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01771.html ).
>>>>>>>
>>>>>>> I'll post the individual patches in reply to this message.
>>>>>>
>>>>>>
>>>>>> This patch adds pass_parallelize_loops_oacc_kernels.
>>>>>>
>>>>>> There's a number of things we do differently in parloops for oacc
>>>>>> kernels:
>>>>>> - in normal parloops, we generate code to choose between a parallel
>>>>>>     version of the loop, and a sequential (low iteration count)
>>>>>> version.
>>>>>>     Since the code in oacc kernels region is supposed to run on the
>>>>>>     accelerator anyway, we skip this check, and don't add a low
>>>>>> iteration
>>>>>>     count loop.
>>>>>> - in normal parloops, we generate an #pragma omp parallel /
>>>>>>     GIMPLE_OMP_RETURN pair to delimit the region which will we
>>>>>> split off
>>>>>>     into a thread function. Since the oacc kernels region is already
>>>>>>     split off, we don't add this pair.
>>>>>> - we indicate the parallelization factor by setting the oacc function
>>>>>>     attributes
>>>>>> - we generate an #pragma oacc loop instead of an #pragma omp for, and
>>>>>>     we add the gang clause
>>>>>> - in normal parloops, we rewrite the variable accesses in the loop in
>>>>>>     terms into accesses relative to a thread function parameter.
>>>>>> For the
>>>>>>     oacc kernels region, that rewrite has already been done at
>>>>>> omp-lower,
>>>>>>     so we skip this.
>>>>>> - we need to ensure that the entire kernels region can be run in
>>>>>>     parallel. The loop independence check is already present, so
>>>>>> for oacc
>>>>>>     kernels we add a check between blocks outside the loop and the
>>>>>> entire
>>>>>>     region.
>>>>>> - we guard stores in the blocks outside the loop with gang_pos == 0.
>>>>>>     There's no need for each gang to write to a single location,
>>>>>> we can
>>>>>>     do this in just one gang. (Typically this is the write of the
>>>>>> final
>>>>>>     value of the iteration variable if that one is copied back to the
>>>>>>     host).
>>>>>>
>>>>>
>>>>> Reposting with loop optimizer init added in
>>>>> pass_parallelize_loops_oacc_kernels::execute.
>>>>>
>>>>
>>>> Reposting with loop_optimizer_finalize,scev_initialize and
>>>> scev_finalize
>>>>    added in pass_parallelize_loops_oacc_kernels::execute.
>>>>
>>>
>>> Ping.
>>>
>>> Anything I can do to facilitate the review?
>>
>> Document new functions.
>
> Done.
>
> avoid if (1).
>
> Done.
>
>> Ideally some refactoring would avoid some of the if (!oacc_kernels_p)
>> spaghetti
>
> Ack. For now, i've tried to minimize the number of oacc_kernels_p tests
> in the code.
>
> Further suggestions on how to improve here are much appreciated.
>
>> but I'm considering tree-parloops.c (and its bugs) yours.
>
> Ack.
>
>> Can the pass not just use a pass parameter to switch between
>> oacc/non-oacc?
>>
>
> This patch introduces the pass parameter oacc_kernels_p (but does not
> instantiate an oacc_kernels_p == true pass version yet).

This patch add pass_parallelize_loops to pass_oacc_kernels (using pass 
parameter oacc_kernels_p == true).

As a consequence, it needs to update parloops testcases to use dumpfile 
parloops2.

Bootstrapped and reg-tested on x86_64.

Build with nvidia accelerator and tested goacc.exp and libgomp.

Committed to trunk.

Thanks,
- Tom
diff mbox

Patch

Add pass_parallelize_loops to pass_oacc_kernels

2016-01-18  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Add pass_parallelize_loops to pass_oacc_kernels.

	* gcc.dg/autopar/outer-1.c: Update for new parloops instantiation.
	* gcc.dg/autopar/outer-2.c: Same.
	* gcc.dg/autopar/outer-3.c: Same.
	* gcc.dg/autopar/outer-4.c: Same.
	* gcc.dg/autopar/outer-5.c: Same.
	* gcc.dg/autopar/outer-6.c: Same.
	* gcc.dg/autopar/parallelization-1.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-2.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-3.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-4.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-5.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-6.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-7.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-pr66652.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt.c: Same.
	* gcc.dg/autopar/pr39500-1.c: Same.
	* gcc.dg/autopar/pr39500-2.c: Same.
	* gcc.dg/autopar/pr46193.c: Same.
	* gcc.dg/autopar/pr46194.c: Same.
	* gcc.dg/autopar/pr49580.c: Same.
	* gcc.dg/autopar/pr49960-1.c: Same.
	* gcc.dg/autopar/pr49960.c: Same.
	* gcc.dg/autopar/pr68373.c: Same.
	* gcc.dg/autopar/reduc-1.c: Same.
	* gcc.dg/autopar/reduc-1char.c: Same.
	* gcc.dg/autopar/reduc-1short.c: Same.
	* gcc.dg/autopar/reduc-2.c: Same.
	* gcc.dg/autopar/reduc-2char.c: Same.
	* gcc.dg/autopar/reduc-2short.c: Same.
	* gcc.dg/autopar/reduc-3.c: Same.
	* gcc.dg/autopar/reduc-4.c: Same.
	* gcc.dg/autopar/reduc-6.c: Same.
	* gcc.dg/autopar/reduc-7.c: Same.
	* gcc.dg/autopar/reduc-8.c: Same.
	* gcc.dg/autopar/reduc-9.c: Same.
	* gcc.dg/autopar/uns-outer-4.c: Same.
	* gcc.dg/autopar/uns-outer-5.c: Same.
	* gcc.dg/autopar/uns-outer-6.c: Same.
	* gfortran.dg/parloops-exit-first-loop-alt-2.f95: Same.
	* gfortran.dg/parloops-exit-first-loop-alt.f95: Same.

---
 gcc/passes.def                                                 |  2 +-
 gcc/testsuite/gcc.dg/autopar/outer-1.c                         |  4 ++--
 gcc/testsuite/gcc.dg/autopar/outer-2.c                         |  4 ++--
 gcc/testsuite/gcc.dg/autopar/outer-3.c                         |  4 ++--
 gcc/testsuite/gcc.dg/autopar/outer-4.c                         |  6 +++---
 gcc/testsuite/gcc.dg/autopar/outer-5.c                         |  4 ++--
 gcc/testsuite/gcc.dg/autopar/outer-6.c                         |  6 +++---
 gcc/testsuite/gcc.dg/autopar/parallelization-1.c               |  4 ++--
 gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-2.c  |  4 ++--
 gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-3.c  |  4 ++--
 gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-4.c  |  4 ++--
 gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-5.c  |  4 ++--
 gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-6.c  |  4 ++--
 gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-7.c  |  4 ++--
 .../gcc.dg/autopar/parloops-exit-first-loop-alt-pr66652.c      |  6 +++---
 gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt.c    |  4 ++--
 gcc/testsuite/gcc.dg/autopar/pr39500-1.c                       |  4 ++--
 gcc/testsuite/gcc.dg/autopar/pr39500-2.c                       |  4 ++--
 gcc/testsuite/gcc.dg/autopar/pr46193.c                         |  4 ++--
 gcc/testsuite/gcc.dg/autopar/pr46194.c                         |  4 ++--
 gcc/testsuite/gcc.dg/autopar/pr49580.c                         |  4 ++--
 gcc/testsuite/gcc.dg/autopar/pr49960-1.c                       |  4 ++--
 gcc/testsuite/gcc.dg/autopar/pr49960.c                         |  4 ++--
 gcc/testsuite/gcc.dg/autopar/pr68373.c                         |  4 ++--
 gcc/testsuite/gcc.dg/autopar/reduc-1.c                         |  6 +++---
 gcc/testsuite/gcc.dg/autopar/reduc-1char.c                     |  6 +++---
 gcc/testsuite/gcc.dg/autopar/reduc-1short.c                    |  6 +++---
 gcc/testsuite/gcc.dg/autopar/reduc-2.c                         |  6 +++---
 gcc/testsuite/gcc.dg/autopar/reduc-2char.c                     | 10 +++++-----
 gcc/testsuite/gcc.dg/autopar/reduc-2short.c                    | 10 +++++-----
 gcc/testsuite/gcc.dg/autopar/reduc-3.c                         |  6 +++---
 gcc/testsuite/gcc.dg/autopar/reduc-4.c                         |  2 +-
 gcc/testsuite/gcc.dg/autopar/reduc-6.c                         |  8 ++++----
 gcc/testsuite/gcc.dg/autopar/reduc-7.c                         |  6 +++---
 gcc/testsuite/gcc.dg/autopar/reduc-8.c                         |  6 +++---
 gcc/testsuite/gcc.dg/autopar/reduc-9.c                         |  6 +++---
 gcc/testsuite/gcc.dg/autopar/uns-outer-4.c                     |  4 ++--
 gcc/testsuite/gcc.dg/autopar/uns-outer-5.c                     |  4 ++--
 gcc/testsuite/gcc.dg/autopar/uns-outer-6.c                     |  6 +++---
 gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt-2.f95   |  4 ++--
 gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt.f95     |  4 ++--
 41 files changed, 100 insertions(+), 100 deletions(-)

diff --git a/gcc/passes.def b/gcc/passes.def
index d9a8c4e..ab6e083 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -124,7 +124,7 @@  along with GCC; see the file COPYING3.  If not see
 	      NEXT_PASS (pass_lim);
 	      NEXT_PASS (pass_dominator, false /* may_peel_loop_headers_p */);
 	      NEXT_PASS (pass_dce);
-	      /* pass_parallelize_loops_oacc_kernels */
+	      NEXT_PASS (pass_parallelize_loops, true /* oacc_kernels_p */);
 	      NEXT_PASS (pass_expand_omp_ssa);
 	      NEXT_PASS (pass_rebuild_cgraph_edges);
 	  POP_INSERT_PASSES ()
diff --git a/gcc/testsuite/gcc.dg/autopar/outer-1.c b/gcc/testsuite/gcc.dg/autopar/outer-1.c
index d36b557..6607ed0 100644
--- a/gcc/testsuite/gcc.dg/autopar/outer-1.c
+++ b/gcc/testsuite/gcc.dg/autopar/outer-1.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 void abort (void);
 
@@ -27,5 +27,5 @@  int main(void)
 
 
 /* Check that outer loop is parallelized.  */
-/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops2" } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 4 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/outer-2.c b/gcc/testsuite/gcc.dg/autopar/outer-2.c
index fd7c2be..9533e8d 100644
--- a/gcc/testsuite/gcc.dg/autopar/outer-2.c
+++ b/gcc/testsuite/gcc.dg/autopar/outer-2.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 void abort (void);
 
@@ -27,5 +27,5 @@  int main(void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops2" } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 4 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/outer-3.c b/gcc/testsuite/gcc.dg/autopar/outer-3.c
index 55454a4..130a974 100644
--- a/gcc/testsuite/gcc.dg/autopar/outer-3.c
+++ b/gcc/testsuite/gcc.dg/autopar/outer-3.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 void abort (void);
 
@@ -27,5 +27,5 @@  int main(void)
 
 
 /* Check that outer loop is parallelized.  */
-/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops2" } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 4 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/outer-4.c b/gcc/testsuite/gcc.dg/autopar/outer-4.c
index 681cf85..b002b0e 100644
--- a/gcc/testsuite/gcc.dg/autopar/outer-4.c
+++ b/gcc/testsuite/gcc.dg/autopar/outer-4.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 void abort (void);
 
@@ -25,6 +25,6 @@  parloop (int N)
 }
 
 
-/* { dg-final { scan-tree-dump-times "parallelizing inner loop" 0 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "parallelizing inner loop" 0 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops2" { xfail *-*-* } } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 4 "optimized" { xfail *-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/outer-5.c b/gcc/testsuite/gcc.dg/autopar/outer-5.c
index d6e0dd3..84b2de1 100644
--- a/gcc/testsuite/gcc.dg/autopar/outer-5.c
+++ b/gcc/testsuite/gcc.dg/autopar/outer-5.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 void abort (void);
 
@@ -44,5 +44,5 @@  int main(void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops2" { xfail *-*-* } } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 4 "optimized" { xfail *-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/outer-6.c b/gcc/testsuite/gcc.dg/autopar/outer-6.c
index 726794c..fff7bce 100644
--- a/gcc/testsuite/gcc.dg/autopar/outer-6.c
+++ b/gcc/testsuite/gcc.dg/autopar/outer-6.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 void abort (void);
 
@@ -44,6 +44,6 @@  int main(void)
 
 
 /* Check that outer loop is parallelized.  */
-/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "parallelizing inner loop" 0 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops2" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "parallelizing inner loop" 0 "parloops2" } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 4 "optimized" { xfail *-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/parallelization-1.c b/gcc/testsuite/gcc.dg/autopar/parallelization-1.c
index 222831a..1b400fb 100644
--- a/gcc/testsuite/gcc.dg/autopar/parallelization-1.c
+++ b/gcc/testsuite/gcc.dg/autopar/parallelization-1.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 void abort (void);
 
@@ -27,5 +27,5 @@  int main(void)
 
 /* Check that the first loop in parloop got parallelized.  */
 
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops2" } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 4 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-2.c b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-2.c
index f988455..fbd3af8 100644
--- a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-2.c
+++ b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-2.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops2-details" } */
 
 /* Constant bound, vector addition.  */
 
@@ -18,4 +18,4 @@  f (void)
       c[i] = a[i] + b[i];
 }
 
-/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-3.c b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-3.c
index 8bba352..f7a7323 100644
--- a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-3.c
+++ b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-3.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops2-details" } */
 
 /* Variable bound, reduction.  */
 
@@ -17,4 +17,4 @@  f (unsigned int n, unsigned int *__restrict__ a)
   return sum;
 }
 
-/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-4.c b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-4.c
index ccb07bc..6b1a776 100644
--- a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-4.c
+++ b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-4.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops2-details" } */
 
 /* Constant bound, reduction.  */
 
@@ -19,4 +19,4 @@  f (void)
   return sum;
 }
 
-/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-5.c b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-5.c
index 68367b1..f3f8a3b 100644
--- a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-5.c
+++ b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-5.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops2-details" } */
 
 /* Variable bound, vector addition, unsigned loop counter, unsigned bound.  */
 
@@ -13,4 +13,4 @@  f (unsigned int n, unsigned int *__restrict__ a, unsigned int *__restrict__ b,
     c[i] = a[i] + b[i];
 }
 
-/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-6.c b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-6.c
index 80d1550..186eab3 100644
--- a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-6.c
+++ b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-6.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops2-details" } */
 
 /* Variable bound, vector addition, unsigned loop counter, signed bound.  */
 
@@ -13,4 +13,4 @@  f (int n, unsigned int *__restrict__ a, unsigned int *__restrict__ b,
     c[i] = a[i] + b[i];
 }
 
-/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-7.c b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-7.c
index 8ecff0c..46c5ac4 100644
--- a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-7.c
+++ b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-7.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops2-details" } */
 
 /* Variable bound, vector addition, signed loop counter, signed bound.  */
 
@@ -13,4 +13,4 @@  f (int n, unsigned int *__restrict__ a, unsigned int *__restrict__ b,
     c[i] = a[i] + b[i];
 }
 
-/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-pr66652.c b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-pr66652.c
index b320628..a02e183 100644
--- a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-pr66652.c
+++ b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt-pr66652.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops2-details" } */
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -21,5 +21,5 @@  f (unsigned int n, unsigned int sum)
   return sum;
 }
 
-/* { dg-final { scan-tree-dump-times "parallelizing inner loop" 1 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 0 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "parallelizing inner loop" 1 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 0 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt.c b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt.c
index c67d262..dce9c92 100644
--- a/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt.c
+++ b/gcc/testsuite/gcc.dg/autopar/parloops-exit-first-loop-alt.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops2-details" } */
 
 /* Variable bound, vector addition, signed loop counter, unsigned bound.  */
 
@@ -13,5 +13,5 @@  f (unsigned int n, unsigned int *__restrict__ a, unsigned int *__restrict__ b,
     c[i] = a[i] + b[i];
 }
 
-/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops2" } } */
 
diff --git a/gcc/testsuite/gcc.dg/autopar/pr39500-1.c b/gcc/testsuite/gcc.dg/autopar/pr39500-1.c
index 33b93b3..28f4789 100644
--- a/gcc/testsuite/gcc.dg/autopar/pr39500-1.c
+++ b/gcc/testsuite/gcc.dg/autopar/pr39500-1.c
@@ -1,7 +1,7 @@ 
 /* pr39500: autopar fails to parallel */
 /* origin: nemokingdom@gmail.com(LiFeng) */
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details" } */
 
 void abort (void);
 
@@ -24,4 +24,4 @@  int main (void)
 
 /* Check that the first loop in parloop got parallelized.  */
 
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/pr39500-2.c b/gcc/testsuite/gcc.dg/autopar/pr39500-2.c
index 12fa909..98363e4 100644
--- a/gcc/testsuite/gcc.dg/autopar/pr39500-2.c
+++ b/gcc/testsuite/gcc.dg/autopar/pr39500-2.c
@@ -1,7 +1,7 @@ 
 /* pr39500: autopar fails to parallel */
 /* origin: nemokingdom@gmail.com(LiFeng) */
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details" } */
 
 int main (void)
 {
@@ -16,4 +16,4 @@  int main (void)
 
 /* This loop cannot be parallelized due to a dependence.  */
 
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 0 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 0 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/pr46193.c b/gcc/testsuite/gcc.dg/autopar/pr46193.c
index 544a5da..36f89c1 100644
--- a/gcc/testsuite/gcc.dg/autopar/pr46193.c
+++ b/gcc/testsuite/gcc.dg/autopar/pr46193.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops2-details" } */
 
 extern void abort (void);
 
@@ -35,4 +35,4 @@  foo2 (int count, char **list)
   return maxaddr;
 }
 
-/* { dg-final { scan-tree-dump-times "parallelizing inner loop" 2 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "parallelizing inner loop" 2 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/pr46194.c b/gcc/testsuite/gcc.dg/autopar/pr46194.c
index 3daf2ab..2a184a0 100644
--- a/gcc/testsuite/gcc.dg/autopar/pr46194.c
+++ b/gcc/testsuite/gcc.dg/autopar/pr46194.c
@@ -1,6 +1,6 @@ 
 /* PR tree-optimization/46194 */
 /* { dg-do compile } */
-/* { dg-options "-O -ftree-parallelize-loops=2 -fdump-tree-parloops-details" } */
+/* { dg-options "-O -ftree-parallelize-loops=2 -fdump-tree-parloops2-details" } */
 
 #define N 1000
 int a[N];
@@ -20,4 +20,4 @@  int foo (void)
 
 /* This loop cannot be parallelized due to a dependence.  */
 
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 0 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 0 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/pr49580.c b/gcc/testsuite/gcc.dg/autopar/pr49580.c
index ddb622f..e2c8be8 100644
--- a/gcc/testsuite/gcc.dg/autopar/pr49580.c
+++ b/gcc/testsuite/gcc.dg/autopar/pr49580.c
@@ -1,6 +1,6 @@ 
 /* PR debug/49580 */
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details" } */
 
 #include <stdarg.h>
 #include <stdlib.h>
@@ -33,5 +33,5 @@  int main (void)
 }
 
 
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops2" } } */
 
diff --git a/gcc/testsuite/gcc.dg/autopar/pr49960-1.c b/gcc/testsuite/gcc.dg/autopar/pr49960-1.c
index 34d5552..bd65c22 100644
--- a/gcc/testsuite/gcc.dg/autopar/pr49960-1.c
+++ b/gcc/testsuite/gcc.dg/autopar/pr49960-1.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdlib.h>
 #include <stdio.h>
@@ -30,5 +30,5 @@  int main()
 }
 /* Check that no loop gets parallelized.  */
 
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 0 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 0 "parloops2" } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 0 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/pr49960.c b/gcc/testsuite/gcc.dg/autopar/pr49960.c
index c413278..e3fb04d 100644
--- a/gcc/testsuite/gcc.dg/autopar/pr49960.c
+++ b/gcc/testsuite/gcc.dg/autopar/pr49960.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized -fno-partial-inlining" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized -fno-partial-inlining" } */
 
 #include <stdio.h>
 #define MB 100
@@ -50,5 +50,5 @@  void main ()
 
 /* Check that the outer most loop doesn't get parallelized (thus no loop gets parallelized)  */
 
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 0 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 0 "parloops2" } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 0 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/pr68373.c b/gcc/testsuite/gcc.dg/autopar/pr68373.c
index 8e0f8a5..ecac613 100644
--- a/gcc/testsuite/gcc.dg/autopar/pr68373.c
+++ b/gcc/testsuite/gcc.dg/autopar/pr68373.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops-details" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=2 -fdump-tree-parloops2-details" } */
 
 unsigned int
 foo (int *a, unsigned int n)
@@ -11,4 +11,4 @@  foo (int *a, unsigned int n)
   return i;
 }
 
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-1.c b/gcc/testsuite/gcc.dg/autopar/reduc-1.c
index 6e9a280..1e5f923 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-1.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-1.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdarg.h>
 #include <stdlib.h>
@@ -66,6 +66,6 @@  int main (void)
 }
 
 
-/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops2" } } */
 
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-1char.c b/gcc/testsuite/gcc.dg/autopar/reduc-1char.c
index 48ead88..0d611b96 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-1char.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-1char.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdarg.h>
 #include <stdlib.h>
@@ -60,6 +60,6 @@  int main (void)
 }
 
 
-/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops2" } } */
 
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-1short.c b/gcc/testsuite/gcc.dg/autopar/reduc-1short.c
index f3f547c..92654e3 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-1short.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-1short.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdarg.h>
 #include <stdlib.h>
@@ -59,6 +59,6 @@  int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops2" } } */
 
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-2.c b/gcc/testsuite/gcc.dg/autopar/reduc-2.c
index 2f4883d..b94b2d4 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-2.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-2.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdarg.h>
 #include <stdlib.h>
@@ -63,6 +63,6 @@  int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops2" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 4 "parloops2" { xfail *-*-* } } } */
 
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-2char.c b/gcc/testsuite/gcc.dg/autopar/reduc-2char.c
index a2dad44..d48d9f9 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-2char.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-2char.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdarg.h>
 #include <stdlib.h>
@@ -61,10 +61,10 @@  int main (void)
 }
 
 
-/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops2" { xfail *-*-* } } } */
 
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops2" { xfail *-*-* } } } */
 
 
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-2short.c b/gcc/testsuite/gcc.dg/autopar/reduc-2short.c
index a50e14f..f5466f0 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-2short.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-2short.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdarg.h>
 #include <stdlib.h>
@@ -59,8 +59,8 @@  int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 3 "parloops2" { xfail *-*-* } } } */
 
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops2" { xfail *-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-3.c b/gcc/testsuite/gcc.dg/autopar/reduc-3.c
index 0d4baef..9ed1c90 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-3.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-3.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdarg.h>
 #include <stdlib.h>
@@ -50,6 +50,6 @@  int main (void)
 }
 
 
-/* { dg-final { scan-tree-dump-times "Detected reduction" 1 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 1 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops2" } } */
 
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-4.c b/gcc/testsuite/gcc.dg/autopar/reduc-4.c
index 80b15e2..fb331cc 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-4.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-4.c
@@ -1,4 +1,4 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized --param parloops-chunk-size=100" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized --param parloops-chunk-size=100" } */
 
 #include "reduc-3.c"
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-6.c b/gcc/testsuite/gcc.dg/autopar/reduc-6.c
index 91f679e..22a2e62 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-6.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-6.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdarg.h>
 #include <stdlib.h>
@@ -56,6 +56,6 @@  int main (void)
 
 
 /* need -ffast-math to  parallelize these loops.  */
-/* { dg-final { scan-tree-dump-times "Detected reduction" 0 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "FAILED: it is not a part of reduction" 3 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 0 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 1 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "FAILED: it is not a part of reduction" 3 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-7.c b/gcc/testsuite/gcc.dg/autopar/reduc-7.c
index 77b99e1..efae736 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-7.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-7.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdlib.h>
 
@@ -84,6 +84,6 @@  int main (void)
 }
 
 
-/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops2" } } */
 
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-8.c b/gcc/testsuite/gcc.dg/autopar/reduc-8.c
index 18ba03d..b3c0cda 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-8.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-8.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdlib.h>
 
@@ -85,5 +85,5 @@  main (void)
 }
 
 
-/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 2 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/reduc-9.c b/gcc/testsuite/gcc.dg/autopar/reduc-9.c
index 90f4db2..99f9298 100644
--- a/gcc/testsuite/gcc.dg/autopar/reduc-9.c
+++ b/gcc/testsuite/gcc.dg/autopar/reduc-9.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 #include <stdlib.h>
 
@@ -84,5 +84,5 @@  int main (void)
 }
 
 
-/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "Detected reduction" 2 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "SUCCESS: may be parallelized" 3 "parloops2" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/uns-outer-4.c b/gcc/testsuite/gcc.dg/autopar/uns-outer-4.c
index 5eb67ea..ee4bb82 100644
--- a/gcc/testsuite/gcc.dg/autopar/uns-outer-4.c
+++ b/gcc/testsuite/gcc.dg/autopar/uns-outer-4.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 void abort (void);
 
@@ -21,5 +21,5 @@  parloop (int N)
   g_sum = sum;
 }
 
-/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops2" } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 4 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/uns-outer-5.c b/gcc/testsuite/gcc.dg/autopar/uns-outer-5.c
index a929e5d..2d93a2d 100644
--- a/gcc/testsuite/gcc.dg/autopar/uns-outer-5.c
+++ b/gcc/testsuite/gcc.dg/autopar/uns-outer-5.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 void abort (void);
 
@@ -45,5 +45,5 @@  main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops2" { xfail *-*-* } } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 4 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/autopar/uns-outer-6.c b/gcc/testsuite/gcc.dg/autopar/uns-outer-6.c
index 5c745f8..dc2870b 100644
--- a/gcc/testsuite/gcc.dg/autopar/uns-outer-6.c
+++ b/gcc/testsuite/gcc.dg/autopar/uns-outer-6.c
@@ -1,5 +1,5 @@ 
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops-details -fdump-tree-optimized" } */
+/* { dg-options "-O2 -ftree-parallelize-loops=4 -fdump-tree-parloops2-details -fdump-tree-optimized" } */
 
 void abort (void);
 
@@ -46,6 +46,6 @@  main (void)
 
 
 /* Check that outer loop is parallelized.  */
-/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops" } } */
-/* { dg-final { scan-tree-dump-times "parallelizing inner loop" 0 "parloops" } } */
+/* { dg-final { scan-tree-dump-times "parallelizing outer loop" 1 "parloops2" } } */
+/* { dg-final { scan-tree-dump-times "parallelizing inner loop" 0 "parloops2" } } */
 /* { dg-final { scan-tree-dump-times "loopfn" 4 "optimized" } } */
diff --git a/gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt-2.f95 b/gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt-2.f95
index 52434f2..236480c 100644
--- a/gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt-2.f95
+++ b/gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt-2.f95
@@ -1,7 +1,7 @@ 
 ! { dg-additional-options "-O2" }
 ! { dg-require-effective-target pthread }
 ! { dg-additional-options "-ftree-parallelize-loops=2" }
-! { dg-additional-options "-fdump-tree-parloops-details" }
+! { dg-additional-options "-fdump-tree-parloops2-details" }
 
 ! Constant bound, vector addition.
 
@@ -16,4 +16,4 @@  subroutine foo ()
   end do
 end subroutine foo
 
-! { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops" } }
+! { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops2" } }
diff --git a/gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt.f95 b/gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt.f95
index 1eb9dfd..a33e11d 100644
--- a/gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt.f95
+++ b/gcc/testsuite/gfortran.dg/parloops-exit-first-loop-alt.f95
@@ -1,7 +1,7 @@ 
 ! { dg-additional-options "-O2" }
 ! { dg-require-effective-target pthread }
 ! { dg-additional-options "-ftree-parallelize-loops=2" }
-! { dg-additional-options "-fdump-tree-parloops-details" }
+! { dg-additional-options "-fdump-tree-parloops2-details" }
 
 ! Variable bound, vector addition.
 
@@ -17,5 +17,5 @@  subroutine foo (nr)
   end do
 end subroutine foo
 
-! { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops" } }
+! { dg-final { scan-tree-dump-times "alternative exit-first loop transform succeeded" 1 "parloops2" } }