* [PATCH][3/3][PR65460] Mark offloaded functions as parallelized
@ 2015-03-18 17:22 Tom de Vries
2015-03-19 11:05 ` Tom de Vries
0 siblings, 1 reply; 11+ messages in thread
From: Tom de Vries @ 2015-03-18 17:22 UTC (permalink / raw)
To: GCC Patches, Richard Biener
[-- Attachment #1: Type: text/plain, Size: 237 bytes --]
Hi,
this patch fixes PR65460.
The patch marks offloaded functions as parallelized, which means the parloops
pass no longer attempts to modify that function.
Bootstrapped and reg-tested on x86_64.
OK for stage4 trunk?
Thanks,
- Tom
[-- Attachment #2: 0003-Mark-offloaded-functions-as-parallelized.patch --]
[-- Type: text/x-patch, Size: 682 bytes --]
Mark offloaded functions as parallelized
2015-03-18 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/65460
* omp-low.c (expand_omp_target): Call mark_parallelized_function for
child_fn.
---
gcc/omp-low.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index c5c0ccf..e7ceee2 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -8801,6 +8801,7 @@ expand_omp_target (struct omp_region *region)
{
child_fn = gimple_omp_target_child_fn (entry_stmt);
child_cfun = DECL_STRUCT_FUNCTION (child_fn);
+ mark_parallelized_function (child_fn);
}
/* Supported by expand_omp_taskreg, but not here. */
--
1.9.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH][3/3][PR65460] Mark offloaded functions as parallelized
2015-03-18 17:22 [PATCH][3/3][PR65460] Mark offloaded functions as parallelized Tom de Vries
@ 2015-03-19 11:05 ` Tom de Vries
2015-03-20 11:38 ` Tom de Vries
0 siblings, 1 reply; 11+ messages in thread
From: Tom de Vries @ 2015-03-19 11:05 UTC (permalink / raw)
To: GCC Patches, Richard Biener
[-- Attachment #1: Type: text/plain, Size: 471 bytes --]
On 18-03-15 18:22, Tom de Vries wrote:
> Hi,
>
> this patch fixes PR65460.
>
> The patch marks offloaded functions as parallelized, which means the parloops
> pass no longer attempts to modify that function.
Updated patch to postpone mark_parallelized_function until the corresponding
cgraph_node is available, to ensure it works with the updated
mark_parallelized_function from patch 2/3.
Bootstrapped and reg-tested on x86_64.
OK for stage4 trunk?
Thanks,
- Tom
[-- Attachment #2: 0003-Mark-offloaded-functions-as-parallelized.patch --]
[-- Type: text/x-patch, Size: 777 bytes --]
Mark offloaded functions as parallelized
2015-03-18 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/65460
* omp-low.c (expand_omp_target): Call mark_parallelized_function for
child_fn.
---
gcc/omp-low.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index a49a6eb..7195aa3 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -8938,6 +8938,7 @@ expand_omp_target (struct omp_region *region)
/* Inform the callgraph about the new function. */
DECL_STRUCT_FUNCTION (child_fn)->curr_properties = cfun->curr_properties;
cgraph_node::add_new_function (child_fn, true);
+ mark_parallelized_function (child_fn);
#ifdef ENABLE_OFFLOADING
/* Add the new function to the offload table. */
--
1.9.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH][3/3][PR65460] Mark offloaded functions as parallelized
2015-03-19 11:05 ` Tom de Vries
@ 2015-03-20 11:38 ` Tom de Vries
2015-03-21 22:31 ` Tom de Vries
2015-04-17 10:08 ` [PING][PATCH][3/3][PR65460] " Tom de Vries
0 siblings, 2 replies; 11+ messages in thread
From: Tom de Vries @ 2015-03-20 11:38 UTC (permalink / raw)
To: GCC Patches, Richard Biener
[-- Attachment #1: Type: text/plain, Size: 568 bytes --]
On 19-03-15 12:05, Tom de Vries wrote:
> On 18-03-15 18:22, Tom de Vries wrote:
>> Hi,
>>
>> this patch fixes PR65460.
>>
>> The patch marks offloaded functions as parallelized, which means the parloops
>> pass no longer attempts to modify that function.
>
> Updated patch to postpone mark_parallelized_function until the corresponding
> cgraph_node is available, to ensure it works with the updated
> mark_parallelized_function from patch 2/3.
>
Updated to eliminate mark_parallelized_function.
Bootstrapped and reg-tested on x86_64.
OK for stage4?
Thanks,
- Tom
[-- Attachment #2: 0003-Mark-offloaded-functions-as-parallelized.patch --]
[-- Type: text/x-patch, Size: 803 bytes --]
Mark offloaded functions as parallelized
2015-03-20 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/65460
* omp-low.c (expand_omp_target): Set parallelized_function on
cgraph_node for child_fn.
---
gcc/omp-low.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 5ca9e84..9be39b7 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -8937,6 +8937,7 @@ expand_omp_target (struct omp_region *region)
/* Inform the callgraph about the new function. */
DECL_STRUCT_FUNCTION (child_fn)->curr_properties = cfun->curr_properties;
cgraph_node::add_new_function (child_fn, true);
+ cgraph_node::get (child_fn)->parallelized_function = 1;
#ifdef ENABLE_OFFLOADING
/* Add the new function to the offload table. */
--
1.9.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH][3/3][PR65460] Mark offloaded functions as parallelized
2015-03-20 11:38 ` Tom de Vries
@ 2015-03-21 22:31 ` Tom de Vries
2015-03-25 8:30 ` Thomas Schwinge
2015-04-17 10:08 ` [PING][PATCH][3/3][PR65460] " Tom de Vries
1 sibling, 1 reply; 11+ messages in thread
From: Tom de Vries @ 2015-03-21 22:31 UTC (permalink / raw)
To: Thomas Schwinge; +Cc: GCC Patches, Richard Biener, Jakub Jelinek
On 20-03-15 12:38, Tom de Vries wrote:
> On 19-03-15 12:05, Tom de Vries wrote:
>> On 18-03-15 18:22, Tom de Vries wrote:
>>> Hi,
>>>
>>> this patch fixes PR65460.
>>>
>>> The patch marks offloaded functions as parallelized, which means the parloops
>>> pass no longer attempts to modify that function.
>>
>> Updated patch to postpone mark_parallelized_function until the corresponding
>> cgraph_node is available, to ensure it works with the updated
>> mark_parallelized_function from patch 2/3.
>>
>
> Updated to eliminate mark_parallelized_function.
>
> Bootstrapped and reg-tested on x86_64.
>
> OK for stage4?
>
Thomas,
as requested, applied to gomp-4_0-branch.
Thanks,
- Tom
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH][3/3][PR65460] Mark offloaded functions as parallelized
2015-03-21 22:31 ` Tom de Vries
@ 2015-03-25 8:30 ` Thomas Schwinge
0 siblings, 0 replies; 11+ messages in thread
From: Thomas Schwinge @ 2015-03-25 8:30 UTC (permalink / raw)
To: Tom de Vries; +Cc: GCC Patches, Richard Biener, Jakub Jelinek
[-- Attachment #1: Type: text/plain, Size: 4614 bytes --]
Hi Tom!
On Sat, 21 Mar 2015 23:30:51 +0100, Tom de Vries <Tom_deVries@mentor.com> wrote:
> On 20-03-15 12:38, Tom de Vries wrote:
> > On 19-03-15 12:05, Tom de Vries wrote:
> >> On 18-03-15 18:22, Tom de Vries wrote:
> >>> this patch fixes PR65460.
> >>>
> >>> The patch marks offloaded functions as parallelized, which means the parloops
> >>> pass no longer attempts to modify that function.
> >>
> >> Updated patch to postpone mark_parallelized_function until the corresponding
> >> cgraph_node is available, to ensure it works with the updated
> >> mark_parallelized_function from patch 2/3.
> >
> > Updated to eliminate mark_parallelized_function.
> >
> > Bootstrapped and reg-tested on x86_64.
> >
> > OK for stage4?
>
> as requested, applied to gomp-4_0-branch.
Thanks!
Committed to gomp-4_0-branch in r221652:
commit 68c0851cb7ce420d5d938d7f0d9247adf79190a5
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed Mar 25 08:28:09 2015 +0000
Use ChangeLog.gomp on gomp-4_0-branch.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@221652 138bc75d-0d04-0410-961f-82ee72b054a4
---
gcc/ChangeLog | 34 ----------------------------------
gcc/ChangeLog.gomp | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+), 34 deletions(-)
diff --git gcc/ChangeLog gcc/ChangeLog
index 48dca87..e474fc8 100644
--- gcc/ChangeLog
+++ gcc/ChangeLog
@@ -1,37 +1,3 @@
-2015-03-21 Tom de Vries <tom@codesourcery.com>
-
- PR tree-optimization/65460
- * omp-low.c (expand_omp_target): Set parallelized_function on
- cgraph_node for child_fn.
-
-2015-03-21 Tom de Vries <tom@codesourcery.com>
-
- backport from trunk:
- 2015-03-21 Tom de Vries <tom@codesourcery.com>
-
- PR tree-optimization/65458
- * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
- * cgraph.h (cgraph_node): Add parallelized_function field.
- * lto-cgraph.c (lto_output_node): Write parallelized_function field.
- (input_overwrite_node): Read parallelized_function field.
- * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
- parallelized_function on cgraph_node for child_fn.
- * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
- Remove include of gt-tree-parloops.h.
- (parallelized_functions): Remove static variable.
- (parallelized_function_p): Rewrite using parallelized_function field of
- cgraph_node.
- (create_loop_fn): Remove adding to parallelized_functions.
- * Makefile.in (GTFILES): Remove tree-parloops.c
-
-2015-03-21 Tom de Vries <tom@codesourcery.com>
-
- backport from trunk:
- 2015-03-18 Tom de Vries <tom@codesourcery.com>
-
- * tree-parloops.c (parallelize_loops): Make static.
- * tree-parloops.h (parallelize_loops): Remove extern declaration.
-
2015-03-11 Thomas Schwinge <thomas@codesourcery.com>
* config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
diff --git gcc/ChangeLog.gomp gcc/ChangeLog.gomp
index 6ed6962..b499d04 100644
--- gcc/ChangeLog.gomp
+++ gcc/ChangeLog.gomp
@@ -1,3 +1,37 @@
+2015-03-21 Tom de Vries <tom@codesourcery.com>
+
+ PR tree-optimization/65460
+ * omp-low.c (expand_omp_target): Set parallelized_function on
+ cgraph_node for child_fn.
+
+2015-03-21 Tom de Vries <tom@codesourcery.com>
+
+ backport from trunk:
+ 2015-03-21 Tom de Vries <tom@codesourcery.com>
+
+ PR tree-optimization/65458
+ * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
+ * cgraph.h (cgraph_node): Add parallelized_function field.
+ * lto-cgraph.c (lto_output_node): Write parallelized_function field.
+ (input_overwrite_node): Read parallelized_function field.
+ * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
+ parallelized_function on cgraph_node for child_fn.
+ * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
+ Remove include of gt-tree-parloops.h.
+ (parallelized_functions): Remove static variable.
+ (parallelized_function_p): Rewrite using parallelized_function field of
+ cgraph_node.
+ (create_loop_fn): Remove adding to parallelized_functions.
+ * Makefile.in (GTFILES): Remove tree-parloops.c
+
+2015-03-21 Tom de Vries <tom@codesourcery.com>
+
+ backport from trunk:
+ 2015-03-18 Tom de Vries <tom@codesourcery.com>
+
+ * tree-parloops.c (parallelize_loops): Make static.
+ * tree-parloops.h (parallelize_loops): Remove extern declaration.
+
2015-01-13 Thomas Schwinge <thomas@codesourcery.com>
* tree-core.h: Don't include "gomp-constants.h".
Grüße,
Thomas
[-- Attachment #2: Type: application/pgp-signature, Size: 472 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PING][PATCH][3/3][PR65460] Mark offloaded functions as parallelized
2015-03-20 11:38 ` Tom de Vries
2015-03-21 22:31 ` Tom de Vries
@ 2015-04-17 10:08 ` Tom de Vries
2015-06-08 12:33 ` [PING^2][PATCH][3/3][PR65460] " Tom de Vries
1 sibling, 1 reply; 11+ messages in thread
From: Tom de Vries @ 2015-04-17 10:08 UTC (permalink / raw)
To: GCC Patches, Richard Biener
On 20-03-15 12:38, Tom de Vries wrote:
> On 19-03-15 12:05, Tom de Vries wrote:
>> On 18-03-15 18:22, Tom de Vries wrote:
>>> Hi,
>>>
>>> this patch fixes PR65460.
>>>
>>> The patch marks offloaded functions as parallelized, which means the parloops
>>> pass no longer attempts to modify that function.
>>
>> Updated patch to postpone mark_parallelized_function until the corresponding
>> cgraph_node is available, to ensure it works with the updated
>> mark_parallelized_function from patch 2/3.
>>
>
> Updated to eliminate mark_parallelized_function.
>
> Bootstrapped and reg-tested on x86_64.
>
> OK for stage4?
>
ping.
OK for stage1?
Thanks,
- Tom
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PING^2][PATCH][3/3][PR65460] Mark offloaded functions as parallelized
2015-04-17 10:08 ` [PING][PATCH][3/3][PR65460] " Tom de Vries
@ 2015-06-08 12:33 ` Tom de Vries
2015-06-09 11:12 ` Richard Biener
0 siblings, 1 reply; 11+ messages in thread
From: Tom de Vries @ 2015-06-08 12:33 UTC (permalink / raw)
To: GCC Patches, Richard Biener
On 17/04/15 12:08, Tom de Vries wrote:
> On 20-03-15 12:38, Tom de Vries wrote:
>> On 19-03-15 12:05, Tom de Vries wrote:
>>> On 18-03-15 18:22, Tom de Vries wrote:
>>>> Hi,
>>>>
>>>> this patch fixes PR65460.
>>>>
>>>> The patch marks offloaded functions as parallelized, which means the
>>>> parloops
>>>> pass no longer attempts to modify that function.
>>>
>>> Updated patch to postpone mark_parallelized_function until the
>>> corresponding
>>> cgraph_node is available, to ensure it works with the updated
>>> mark_parallelized_function from patch 2/3.
>>>
>>
>> Updated to eliminate mark_parallelized_function.
>>
>> Bootstrapped and reg-tested on x86_64.
>>
>> OK for stage4?
>>
>
> ping.
ping^2. Original post at
https://gcc.gnu.org/ml/gcc-patches/2015-03/msg01063.html .
>
> OK for stage1?
>
Thanks,
- Tom
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PING^2][PATCH][3/3][PR65460] Mark offloaded functions as parallelized
2015-06-08 12:33 ` [PING^2][PATCH][3/3][PR65460] " Tom de Vries
@ 2015-06-09 11:12 ` Richard Biener
2015-06-09 14:12 ` Tom de Vries
0 siblings, 1 reply; 11+ messages in thread
From: Richard Biener @ 2015-06-09 11:12 UTC (permalink / raw)
To: Tom de Vries; +Cc: GCC Patches
On Mon, 8 Jun 2015, Tom de Vries wrote:
> On 17/04/15 12:08, Tom de Vries wrote:
> > On 20-03-15 12:38, Tom de Vries wrote:
> > > On 19-03-15 12:05, Tom de Vries wrote:
> > > > On 18-03-15 18:22, Tom de Vries wrote:
> > > > > Hi,
> > > > >
> > > > > this patch fixes PR65460.
> > > > >
> > > > > The patch marks offloaded functions as parallelized, which means the
> > > > > parloops
> > > > > pass no longer attempts to modify that function.
> > > >
> > > > Updated patch to postpone mark_parallelized_function until the
> > > > corresponding
> > > > cgraph_node is available, to ensure it works with the updated
> > > > mark_parallelized_function from patch 2/3.
> > > >
> > >
> > > Updated to eliminate mark_parallelized_function.
> > >
> > > Bootstrapped and reg-tested on x86_64.
> > >
> > > OK for stage4?
> > >
> >
> > ping.
>
> ping^2. Original post at
> https://gcc.gnu.org/ml/gcc-patches/2015-03/msg01063.html .
Ok, but shouldn't it be set before calling add_new_function as
add_new_function might run passes that wouldn't identify the
function as parallelized?
Richard.
> >
> > OK for stage1?
> >
>
> Thanks,
> - Tom
>
>
>
--
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Dilip Upmanyu, Graham Norton, HRB 21284 (AG Nuernberg)
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PING^2][PATCH][3/3][PR65460] Mark offloaded functions as parallelized
2015-06-09 11:12 ` Richard Biener
@ 2015-06-09 14:12 ` Tom de Vries
2015-06-09 23:46 ` Thomas Schwinge
0 siblings, 1 reply; 11+ messages in thread
From: Tom de Vries @ 2015-06-09 14:12 UTC (permalink / raw)
To: Richard Biener; +Cc: GCC Patches
[-- Attachment #1: Type: text/plain, Size: 1414 bytes --]
On 09/06/15 13:07, Richard Biener wrote:
> On Mon, 8 Jun 2015, Tom de Vries wrote:
>
>> On 17/04/15 12:08, Tom de Vries wrote:
>>> On 20-03-15 12:38, Tom de Vries wrote:
>>>> On 19-03-15 12:05, Tom de Vries wrote:
>>>>> On 18-03-15 18:22, Tom de Vries wrote:
>>>>>> Hi,
>>>>>>
>>>>>> this patch fixes PR65460.
>>>>>>
>>>>>> The patch marks offloaded functions as parallelized, which means the
>>>>>> parloops
>>>>>> pass no longer attempts to modify that function.
>>>>>
>>>>> Updated patch to postpone mark_parallelized_function until the
>>>>> corresponding
>>>>> cgraph_node is available, to ensure it works with the updated
>>>>> mark_parallelized_function from patch 2/3.
>>>>>
>>>>
>>>> Updated to eliminate mark_parallelized_function.
>>>>
>>>> Bootstrapped and reg-tested on x86_64.
>>>>
>>>> OK for stage4?
>>>>
>>>
>>> ping.
>>
>> ping^2. Original post at
>> https://gcc.gnu.org/ml/gcc-patches/2015-03/msg01063.html .
>
> Ok, but shouldn't it be set before calling add_new_function as
> add_new_function might run passes that wouldn't identify the
> function as parallelized?
>
Hm, indeed sometimes add_new_function executes some passes itself,
besides queueing the function for further processing. I suppose the
existing settings of parallelized_function should be modified in a
similar way.
I'll bootstrap and reg-test attached two patches on x86_64, and commit
unless objections.
Thanks,
- Tom
[-- Attachment #2: 0001-Mark-function-parallelized_function-before-add_new_f.patch --]
[-- Type: text/x-patch, Size: 1400 bytes --]
Mark function parallelized_function before add_new_function
2015-06-09 Tom de Vries <tom@codesourcery.com>
* omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
parallelized_function before add_new_function.
---
gcc/omp-low.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index f322416..2045e48 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -1552,8 +1552,9 @@ finalize_task_copyfn (gomp_task *task_stmt)
pop_cfun ();
/* Inform the callgraph about the new function. */
+ cgraph_node *node = cgraph_node::get_create (child_fn);
+ node->parallelized_function = 1;
cgraph_node::add_new_function (child_fn, false);
- cgraph_node::get (child_fn)->parallelized_function = 1;
}
/* Destroy a omp_context data structures. Called through the splay tree
@@ -5589,8 +5590,9 @@ expand_omp_taskreg (struct omp_region *region)
/* Inform the callgraph about the new function. */
DECL_STRUCT_FUNCTION (child_fn)->curr_properties = cfun->curr_properties;
+ cgraph_node *node = cgraph_node::get_create (child_fn);
+ node->parallelized_function = 1;
cgraph_node::add_new_function (child_fn, true);
- cgraph_node::get (child_fn)->parallelized_function = 1;
/* Fix the callgraph edges for child_cfun. Those for cfun will be
fixed in a following pass. */
--
1.9.1
[-- Attachment #3: 0002-Mark-offloaded-functions-as-parallelized.patch --]
[-- Type: text/x-patch, Size: 791 bytes --]
Mark offloaded functions as parallelized
2015-06-09 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/65460
* omp-low.c (expand_omp_target): Set parallelized_function on
cgraph_node for child_fn.
---
gcc/omp-low.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 2045e48..77716bf6 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -8959,6 +8959,8 @@ expand_omp_target (struct omp_region *region)
/* Inform the callgraph about the new function. */
DECL_STRUCT_FUNCTION (child_fn)->curr_properties = cfun->curr_properties;
+ cgraph_node *node = cgraph_node::get_create (child_fn);
+ node->parallelized_function = 1;
cgraph_node::add_new_function (child_fn, true);
#ifdef ENABLE_OFFLOADING
--
1.9.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PING^2][PATCH][3/3][PR65460] Mark offloaded functions as parallelized
2015-06-09 14:12 ` Tom de Vries
@ 2015-06-09 23:46 ` Thomas Schwinge
2015-06-10 8:26 ` Tom de Vries
0 siblings, 1 reply; 11+ messages in thread
From: Thomas Schwinge @ 2015-06-09 23:46 UTC (permalink / raw)
To: Tom de Vries; +Cc: GCC Patches, Richard Biener
[-- Attachment #1: Type: text/plain, Size: 2794 bytes --]
Hi Tom!
On Tue, 9 Jun 2015 16:12:12 +0200, Tom de Vries <Tom_deVries@mentor.com> wrote:
> On 09/06/15 13:07, Richard Biener wrote:
> > On Mon, 8 Jun 2015, Tom de Vries wrote:
> >
> >> On 17/04/15 12:08, Tom de Vries wrote:
> >>> On 20-03-15 12:38, Tom de Vries wrote:
> >>>> On 19-03-15 12:05, Tom de Vries wrote:
> >>>>> On 18-03-15 18:22, Tom de Vries wrote:
> >>>>>> this patch fixes PR65460.
> >>>>>>
> >>>>>> The patch marks offloaded functions as parallelized, which means the
> >>>>>> parloops
> >>>>>> pass no longer attempts to modify that function.
> > Ok, but shouldn't it be set before calling add_new_function as
> > add_new_function might run passes that wouldn't identify the
> > function as parallelized?
>
> Hm, indeed sometimes add_new_function executes some passes itself,
> besides queueing the function for further processing. I suppose the
> existing settings of parallelized_function should be modified in a
> similar way.
(I took note of this small change of the trunk patch vs. the version
present on gomp-4_0-branch, and will adapt the latter as required as part
of the next merge.)
> I'll bootstrap and reg-test attached two patches on x86_64, and commit
> unless objections.
> Mark offloaded functions as parallelized
>
> 2015-06-09 Tom de Vries <tom@codesourcery.com>
>
> PR tree-optimization/65460
> * omp-low.c (expand_omp_target): Set parallelized_function on
> cgraph_node for child_fn.
(Committed to trunk in r224303.)
> --- a/gcc/omp-low.c
> +++ b/gcc/omp-low.c
> @@ -8959,6 +8959,8 @@ expand_omp_target (struct omp_region *region)
>
> /* Inform the callgraph about the new function. */
> DECL_STRUCT_FUNCTION (child_fn)->curr_properties = cfun->curr_properties;
> + cgraph_node *node = cgraph_node::get_create (child_fn);
Would you please committ a fix: in offloading configurations
(ENABLE_OFFLOADING), this new node variable will clash with an existing
definition a little later:
> + node->parallelized_function = 1;
> cgraph_node::add_new_function (child_fn, true);
>
> #ifdef ENABLE_OFFLOADING
| /* Add the new function to the offload table. */
| vec_safe_push (offload_funcs, child_fn);
| #endif
|
| /* Fix the callgraph edges for child_cfun. Those for cfun will be
| fixed in a following pass. */
| push_cfun (child_cfun);
| cgraph_edge::rebuild_edges ();
|
| #ifdef ENABLE_OFFLOADING
| /* Prevent IPA from removing child_fn as unreachable, since there are no
| refs from the parent function to child_fn in offload LTO mode. */
| struct cgraph_node *node = cgraph_node::get (child_fn);
| node->mark_force_output ();
| #endif
Grüße,
Thomas
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 472 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PING^2][PATCH][3/3][PR65460] Mark offloaded functions as parallelized
2015-06-09 23:46 ` Thomas Schwinge
@ 2015-06-10 8:26 ` Tom de Vries
0 siblings, 0 replies; 11+ messages in thread
From: Tom de Vries @ 2015-06-10 8:26 UTC (permalink / raw)
To: Thomas Schwinge; +Cc: GCC Patches, Richard Biener
[-- Attachment #1: Type: text/plain, Size: 2956 bytes --]
On 10/06/15 00:15, Thomas Schwinge wrote:
> Hi Tom!
>
> On Tue, 9 Jun 2015 16:12:12 +0200, Tom de Vries <Tom_deVries@mentor.com> wrote:
>> On 09/06/15 13:07, Richard Biener wrote:
>>> On Mon, 8 Jun 2015, Tom de Vries wrote:
>>>
>>>> On 17/04/15 12:08, Tom de Vries wrote:
>>>>> On 20-03-15 12:38, Tom de Vries wrote:
>>>>>> On 19-03-15 12:05, Tom de Vries wrote:
>>>>>>> On 18-03-15 18:22, Tom de Vries wrote:
>>>>>>>> this patch fixes PR65460.
>>>>>>>>
>>>>>>>> The patch marks offloaded functions as parallelized, which means the
>>>>>>>> parloops
>>>>>>>> pass no longer attempts to modify that function.
>
>>> Ok, but shouldn't it be set before calling add_new_function as
>>> add_new_function might run passes that wouldn't identify the
>>> function as parallelized?
>>
>> Hm, indeed sometimes add_new_function executes some passes itself,
>> besides queueing the function for further processing. I suppose the
>> existing settings of parallelized_function should be modified in a
>> similar way.
>
> (I took note of this small change of the trunk patch vs. the version
> present on gomp-4_0-branch, and will adapt the latter as required as part
> of the next merge.)
>
>> I'll bootstrap and reg-test attached two patches on x86_64, and commit
>> unless objections.
>
>> Mark offloaded functions as parallelized
>>
>> 2015-06-09 Tom de Vries <tom@codesourcery.com>
>>
>> PR tree-optimization/65460
>> * omp-low.c (expand_omp_target): Set parallelized_function on
>> cgraph_node for child_fn.
>
> (Committed to trunk in r224303.)
>
>> --- a/gcc/omp-low.c
>> +++ b/gcc/omp-low.c
>> @@ -8959,6 +8959,8 @@ expand_omp_target (struct omp_region *region)
>>
>> /* Inform the callgraph about the new function. */
>> DECL_STRUCT_FUNCTION (child_fn)->curr_properties = cfun->curr_properties;
>> + cgraph_node *node = cgraph_node::get_create (child_fn);
>
> Would you please committ a fix: in offloading configurations
> (ENABLE_OFFLOADING), this new node variable will clash with an existing
> definition a little later:
>
>> + node->parallelized_function = 1;
>> cgraph_node::add_new_function (child_fn, true);
>>
>> #ifdef ENABLE_OFFLOADING
> | /* Add the new function to the offload table. */
> | vec_safe_push (offload_funcs, child_fn);
> | #endif
> |
> | /* Fix the callgraph edges for child_cfun. Those for cfun will be
> | fixed in a following pass. */
> | push_cfun (child_cfun);
> | cgraph_edge::rebuild_edges ();
> |
> | #ifdef ENABLE_OFFLOADING
> | /* Prevent IPA from removing child_fn as unreachable, since there are no
> | refs from the parent function to child_fn in offload LTO mode. */
> | struct cgraph_node *node = cgraph_node::get (child_fn);
> | node->mark_force_output ();
> | #endif
>
Committed attached patch to trunk as obvious. Build and tested in
ENABLE_OFFLOADING configuration on top of gomp-4_0-branch.
Thanks,
- Tom
[-- Attachment #2: 0001-Fix-build-for-ENABLE_OFFLOADING-in-expand_omp_target.patch --]
[-- Type: text/x-patch, Size: 849 bytes --]
Fix build for ENABLE_OFFLOADING in expand_omp_target
2015-06-10 Tom de Vries <tom@codesourcery.com>
* omp-low.c (expand_omp_target): Remove duplicate declaration of node.
---
gcc/omp-low.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 77716bf6..72c431e 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -8976,8 +8976,7 @@ expand_omp_target (struct omp_region *region)
#ifdef ENABLE_OFFLOADING
/* Prevent IPA from removing child_fn as unreachable, since there are no
refs from the parent function to child_fn in offload LTO mode. */
- struct cgraph_node *node = cgraph_node::get (child_fn);
- node->mark_force_output ();
+ cgraph_node::get (child_fn)->mark_force_output ();
#endif
/* Some EH regions might become dead, see PR34608. If
--
1.9.1
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-06-10 8:26 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-18 17:22 [PATCH][3/3][PR65460] Mark offloaded functions as parallelized Tom de Vries
2015-03-19 11:05 ` Tom de Vries
2015-03-20 11:38 ` Tom de Vries
2015-03-21 22:31 ` Tom de Vries
2015-03-25 8:30 ` Thomas Schwinge
2015-04-17 10:08 ` [PING][PATCH][3/3][PR65460] " Tom de Vries
2015-06-08 12:33 ` [PING^2][PATCH][3/3][PR65460] " Tom de Vries
2015-06-09 11:12 ` Richard Biener
2015-06-09 14:12 ` Tom de Vries
2015-06-09 23:46 ` Thomas Schwinge
2015-06-10 8:26 ` Tom de Vries
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).