public inbox for jit@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] IPA-CP release transformation summary (PR jit/91928)
@ 2019-01-01  0:00 Andrea Corallo
  2019-01-01  0:00 ` Martin Jambor
  0 siblings, 1 reply; 7+ messages in thread
From: Andrea Corallo @ 2019-01-01  0:00 UTC (permalink / raw)
  To: gcc-patches, jit; +Cc: nd

[-- Attachment #1: Type: text/plain, Size: 611 bytes --]

Hi all,
I'd like to submit this patch.
It release the ipa cp transformation summary after functions being expanded.
This is to fix the compiler when used with libgccjit on subsequent
compilations (every new compilation should have a clean transformation
summary).

Bootstrap on arm64 and X86-64.

Bests
  Andrea

gcc/ChangeLog
2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>

	* cgraphunit.c (expand_all_functions): Release ipcp_transformation_sum
	when finished.
	* ipa-prop.c (ipcp_free_transformation_sum): New function.
	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 91928.patch --]
[-- Type: text/x-diff; name="91928.patch", Size: 1477 bytes --]

diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index cb08efe..0251fa4 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -2342,6 +2342,7 @@ expand_all_functions (void)
              profiled_func_count, expanded_func_count);
 
   symtab->process_new_functions ();
+  ipcp_free_transformation_sum ();
   free_gimplify_stack ();
 
   free (order);
diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h
index 30948fb..0ff8085 100644
--- a/gcc/ipa-prop.h
+++ b/gcc/ipa-prop.h
@@ -561,6 +561,7 @@ struct GTY(()) ipcp_transformation
 void ipa_set_node_agg_value_chain (struct cgraph_node *node,
 				   struct ipa_agg_replacement_value *aggvals);
 void ipcp_transformation_initialize (void);
+void ipcp_free_transformation_sum (void);
 
 /* ipa_edge_args stores information related to a callsite and particularly its
    arguments.  It can be accessed by the IPA_EDGE_REF macro.  */
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index 2f2b070..158dbe7 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -3758,6 +3758,18 @@ ipcp_transformation_initialize (void)
     ipcp_transformation_sum = ipcp_transformation_t::create_ggc (symtab);
 }
 
+/* Release the IPA CP transformation summary.  */
+
+void
+ipcp_free_transformation_sum (void)
+{
+  if (!ipcp_transformation_sum)
+    return;
+
+  ipcp_transformation_sum->release ();
+  ipcp_transformation_sum = NULL;
+}
+
 /* Set the aggregate replacements of NODE to be AGGVALS.  */
 
 void

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

* Re: [PATCH] IPA-CP release transformation summary (PR jit/91928)
  2019-01-01  0:00 [PATCH] IPA-CP release transformation summary (PR jit/91928) Andrea Corallo
@ 2019-01-01  0:00 ` Martin Jambor
  2019-01-01  0:00   ` Andrea Corallo
  0 siblings, 1 reply; 7+ messages in thread
From: Martin Jambor @ 2019-01-01  0:00 UTC (permalink / raw)
  To: Andrea Corallo, gcc-patches, jit; +Cc: nd, Jan Hubicka, Jan Hubicka

Hi,

On Mon, Sep 30 2019, Andrea Corallo wrote:
> Hi all,
> I'd like to submit this patch.
> It release the ipa cp transformation summary after functions being expanded.
> This is to fix the compiler when used with libgccjit on subsequent
> compilations (every new compilation should have a clean transformation
> summary).

if this is a general problem then I think we should instead add another
hook to class ipa_opt_pass_d to free transformation summary, call it for
all IPA passes at the appropriate time and implement it for IPA-CP. That
way it will work for all IPA passes which might have a transformation
summary.

Martin


>
> Bootstrap on arm64 and X86-64.
>
> Bests
>   Andrea
>
> gcc/ChangeLog
> 2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>
>
> 	* cgraphunit.c (expand_all_functions): Release ipcp_transformation_sum
> 	when finished.
> 	* ipa-prop.c (ipcp_free_transformation_sum): New function.
> 	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.

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

* Re: [PATCH] IPA-CP release transformation summary (PR jit/91928)
  2019-01-01  0:00   ` Andrea Corallo
@ 2019-01-01  0:00     ` Jeff Law
  2019-01-01  0:00       ` Andrea Corallo
  0 siblings, 1 reply; 7+ messages in thread
From: Jeff Law @ 2019-01-01  0:00 UTC (permalink / raw)
  To: Andrea Corallo, Martin Jambor
  Cc: gcc-patches, jit, nd, Jan Hubicka, Jan Hubicka

On 10/1/19 4:11 AM, Andrea Corallo wrote:
> Martin Jambor writes:
> 
>> Hi,
>>
>> On Mon, Sep 30 2019, Andrea Corallo wrote:
>>> Hi all,
>>> I'd like to submit this patch.
>>> It release the ipa cp transformation summary after functions being expanded.
>>> This is to fix the compiler when used with libgccjit on subsequent
>>> compilations (every new compilation should have a clean transformation
>>> summary).
>> if this is a general problem then I think we should instead add another
>> hook to class ipa_opt_pass_d to free transformation summary, call it for
>> all IPA passes at the appropriate time and implement it for IPA-CP. That
>> way it will work for all IPA passes which might have a transformation
>> summary.
>>
>> Martin
>>
>>
>>> Bootstrap on arm64 and X86-64.
>>>
>>> Bests
>>>   Andrea
>>>
>>> gcc/ChangeLog
>>> 2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>
>>>
>>> 	* cgraphunit.c (expand_all_functions): Release ipcp_transformation_sum
>>> 	when finished.
>>> 	* ipa-prop.c (ipcp_free_transformation_sum): New function.
>>> 	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
> Hi,
> actually looking around in order to implement the suggestions I realized
> that already some code was put in place in toplev::finalize calling
> then ipa_cp_c_finalize exactly for this purpose.
> 
> I've updated the patch accordingly.
> 
> Bootstraped on aarch64.
> 
> Is it okay for trunk?
> 
> Bests
>   Andrea
> 
> gcc/ChangeLog
> 2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>
> 
> 	* ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
> 	* ipa-prop.c (ipcp_free_transformation_sum): New function.
> 	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
OK for the trunk.

jeff

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

* Re: [PATCH] IPA-CP release transformation summary (PR jit/91928)
  2019-01-01  0:00         ` Jeff Law
@ 2019-01-01  0:00           ` Andrea Corallo
  0 siblings, 0 replies; 7+ messages in thread
From: Andrea Corallo @ 2019-01-01  0:00 UTC (permalink / raw)
  To: Jeff Law
  Cc: Andrea Corallo, Martin Jambor, gcc-patches, jit, nd, Jan Hubicka,
	Jan Hubicka


Jeff Law writes:

> On 10/3/19 6:47 AM, Andrea Corallo wrote:
>>
>> Jeff Law writes:
>>
>>> On 10/1/19 4:11 AM, Andrea Corallo wrote:
>>>> Martin Jambor writes:
>>>>
>>>>> Hi,
>>>>>
>>>>> On Mon, Sep 30 2019, Andrea Corallo wrote:
>>>>>> Hi all,
>>>>>> I'd like to submit this patch.
>>>>>> It release the ipa cp transformation summary after functions being expanded.
>>>>>> This is to fix the compiler when used with libgccjit on subsequent
>>>>>> compilations (every new compilation should have a clean transformation
>>>>>> summary).
>>>>> if this is a general problem then I think we should instead add another
>>>>> hook to class ipa_opt_pass_d to free transformation summary, call it for
>>>>> all IPA passes at the appropriate time and implement it for IPA-CP. That
>>>>> way it will work for all IPA passes which might have a transformation
>>>>> summary.
>>>>>
>>>>> Martin
>>>>>
>>>>>
>>>>>> Bootstrap on arm64 and X86-64.
>>>>>>
>>>>>> Bests
>>>>>>   Andrea
>>>>>>
>>>>>> gcc/ChangeLog
>>>>>> 2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>
>>>>>>
>>>>>> 	* cgraphunit.c (expand_all_functions): Release ipcp_transformation_sum
>>>>>> 	when finished.
>>>>>> 	* ipa-prop.c (ipcp_free_transformation_sum): New function.
>>>>>> 	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
>>>> Hi,
>>>> actually looking around in order to implement the suggestions I realized
>>>> that already some code was put in place in toplev::finalize calling
>>>> then ipa_cp_c_finalize exactly for this purpose.
>>>>
>>>> I've updated the patch accordingly.
>>>>
>>>> Bootstraped on aarch64.
>>>>
>>>> Is it okay for trunk?
>>>>
>>>> Bests
>>>>   Andrea
>>>>
>>>> gcc/ChangeLog
>>>> 2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>
>>>>
>>>> 	* ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
>>>> 	* ipa-prop.c (ipcp_free_transformation_sum): New function.
>>>> 	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
>>> OK for the trunk.
>>>
>>> jeff
>>
>> Applied as r276507.
>>
>> The same patch applies cleanly onto gcc-9-branch, I think would be good to
>> back port it cause libgccjit is not very usable without.
>> Should we back port it?
> It's a bit out of the scope of what we usually backport, but I think
> this is a reasonable exception.  So, yea, if you want, go ahead.
>
> Thanks
> jeff

Thanks,
committed as r276625.

Bests
  Andrea

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

* Re: [PATCH] IPA-CP release transformation summary (PR jit/91928)
  2019-01-01  0:00       ` Andrea Corallo
@ 2019-01-01  0:00         ` Jeff Law
  2019-01-01  0:00           ` Andrea Corallo
  0 siblings, 1 reply; 7+ messages in thread
From: Jeff Law @ 2019-01-01  0:00 UTC (permalink / raw)
  To: Andrea Corallo
  Cc: Martin Jambor, gcc-patches, jit, nd, Jan Hubicka, Jan Hubicka

On 10/3/19 6:47 AM, Andrea Corallo wrote:
> 
> Jeff Law writes:
> 
>> On 10/1/19 4:11 AM, Andrea Corallo wrote:
>>> Martin Jambor writes:
>>>
>>>> Hi,
>>>>
>>>> On Mon, Sep 30 2019, Andrea Corallo wrote:
>>>>> Hi all,
>>>>> I'd like to submit this patch.
>>>>> It release the ipa cp transformation summary after functions being expanded.
>>>>> This is to fix the compiler when used with libgccjit on subsequent
>>>>> compilations (every new compilation should have a clean transformation
>>>>> summary).
>>>> if this is a general problem then I think we should instead add another
>>>> hook to class ipa_opt_pass_d to free transformation summary, call it for
>>>> all IPA passes at the appropriate time and implement it for IPA-CP. That
>>>> way it will work for all IPA passes which might have a transformation
>>>> summary.
>>>>
>>>> Martin
>>>>
>>>>
>>>>> Bootstrap on arm64 and X86-64.
>>>>>
>>>>> Bests
>>>>>   Andrea
>>>>>
>>>>> gcc/ChangeLog
>>>>> 2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>
>>>>>
>>>>> 	* cgraphunit.c (expand_all_functions): Release ipcp_transformation_sum
>>>>> 	when finished.
>>>>> 	* ipa-prop.c (ipcp_free_transformation_sum): New function.
>>>>> 	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
>>> Hi,
>>> actually looking around in order to implement the suggestions I realized
>>> that already some code was put in place in toplev::finalize calling
>>> then ipa_cp_c_finalize exactly for this purpose.
>>>
>>> I've updated the patch accordingly.
>>>
>>> Bootstraped on aarch64.
>>>
>>> Is it okay for trunk?
>>>
>>> Bests
>>>   Andrea
>>>
>>> gcc/ChangeLog
>>> 2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>
>>>
>>> 	* ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
>>> 	* ipa-prop.c (ipcp_free_transformation_sum): New function.
>>> 	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
>> OK for the trunk.
>>
>> jeff
> 
> Applied as r276507.
> 
> The same patch applies cleanly onto gcc-9-branch, I think would be good to
> back port it cause libgccjit is not very usable without.
> Should we back port it?
It's a bit out of the scope of what we usually backport, but I think
this is a reasonable exception.  So, yea, if you want, go ahead.

Thanks
jeff

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

* Re: [PATCH] IPA-CP release transformation summary (PR jit/91928)
  2019-01-01  0:00     ` Jeff Law
@ 2019-01-01  0:00       ` Andrea Corallo
  2019-01-01  0:00         ` Jeff Law
  0 siblings, 1 reply; 7+ messages in thread
From: Andrea Corallo @ 2019-01-01  0:00 UTC (permalink / raw)
  To: Jeff Law
  Cc: Andrea Corallo, Martin Jambor, gcc-patches, jit, nd, Jan Hubicka,
	Jan Hubicka


Jeff Law writes:

> On 10/1/19 4:11 AM, Andrea Corallo wrote:
>> Martin Jambor writes:
>>
>>> Hi,
>>>
>>> On Mon, Sep 30 2019, Andrea Corallo wrote:
>>>> Hi all,
>>>> I'd like to submit this patch.
>>>> It release the ipa cp transformation summary after functions being expanded.
>>>> This is to fix the compiler when used with libgccjit on subsequent
>>>> compilations (every new compilation should have a clean transformation
>>>> summary).
>>> if this is a general problem then I think we should instead add another
>>> hook to class ipa_opt_pass_d to free transformation summary, call it for
>>> all IPA passes at the appropriate time and implement it for IPA-CP. That
>>> way it will work for all IPA passes which might have a transformation
>>> summary.
>>>
>>> Martin
>>>
>>>
>>>> Bootstrap on arm64 and X86-64.
>>>>
>>>> Bests
>>>>   Andrea
>>>>
>>>> gcc/ChangeLog
>>>> 2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>
>>>>
>>>> 	* cgraphunit.c (expand_all_functions): Release ipcp_transformation_sum
>>>> 	when finished.
>>>> 	* ipa-prop.c (ipcp_free_transformation_sum): New function.
>>>> 	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
>> Hi,
>> actually looking around in order to implement the suggestions I realized
>> that already some code was put in place in toplev::finalize calling
>> then ipa_cp_c_finalize exactly for this purpose.
>>
>> I've updated the patch accordingly.
>>
>> Bootstraped on aarch64.
>>
>> Is it okay for trunk?
>>
>> Bests
>>   Andrea
>>
>> gcc/ChangeLog
>> 2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>
>>
>> 	* ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
>> 	* ipa-prop.c (ipcp_free_transformation_sum): New function.
>> 	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
> OK for the trunk.
>
> jeff

Applied as r276507.

The same patch applies cleanly onto gcc-9-branch, I think would be good to
back port it cause libgccjit is not very usable without.
Should we back port it?

Bests
  Andrea

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

* Re: [PATCH] IPA-CP release transformation summary (PR jit/91928)
  2019-01-01  0:00 ` Martin Jambor
@ 2019-01-01  0:00   ` Andrea Corallo
  2019-01-01  0:00     ` Jeff Law
  0 siblings, 1 reply; 7+ messages in thread
From: Andrea Corallo @ 2019-01-01  0:00 UTC (permalink / raw)
  To: Martin Jambor
  Cc: Andrea Corallo, gcc-patches, jit, nd, Jan Hubicka, Jan Hubicka

[-- Attachment #1: Type: text/plain, Size: 1656 bytes --]


Martin Jambor writes:

> Hi,
>
> On Mon, Sep 30 2019, Andrea Corallo wrote:
>> Hi all,
>> I'd like to submit this patch.
>> It release the ipa cp transformation summary after functions being expanded.
>> This is to fix the compiler when used with libgccjit on subsequent
>> compilations (every new compilation should have a clean transformation
>> summary).
>
> if this is a general problem then I think we should instead add another
> hook to class ipa_opt_pass_d to free transformation summary, call it for
> all IPA passes at the appropriate time and implement it for IPA-CP. That
> way it will work for all IPA passes which might have a transformation
> summary.
>
> Martin
>
>
>>
>> Bootstrap on arm64 and X86-64.
>>
>> Bests
>>   Andrea
>>
>> gcc/ChangeLog
>> 2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>
>>
>> 	* cgraphunit.c (expand_all_functions): Release ipcp_transformation_sum
>> 	when finished.
>> 	* ipa-prop.c (ipcp_free_transformation_sum): New function.
>> 	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.

Hi,
actually looking around in order to implement the suggestions I realized
that already some code was put in place in toplev::finalize calling
then ipa_cp_c_finalize exactly for this purpose.

I've updated the patch accordingly.

Bootstraped on aarch64.

Is it okay for trunk?

Bests
  Andrea

gcc/ChangeLog
2019-??-??  Andrea Corallo  <andrea.corallo@arm.com>

	* ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
	* ipa-prop.c (ipcp_free_transformation_sum): New function.
	* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 91928.patch --]
[-- Type: text/x-diff; name="91928.patch", Size: 1407 bytes --]

diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index b4fb74e..2b40220 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -5305,4 +5305,5 @@ ipa_cp_c_finalize (void)
   max_count = profile_count::uninitialized ();
   overall_size = 0;
   max_new_size = 0;
+  ipcp_free_transformation_sum ();
 }
diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h
index 30948fb..0ff8085 100644
--- a/gcc/ipa-prop.h
+++ b/gcc/ipa-prop.h
@@ -561,6 +561,7 @@ struct GTY(()) ipcp_transformation
 void ipa_set_node_agg_value_chain (struct cgraph_node *node,
 				   struct ipa_agg_replacement_value *aggvals);
 void ipcp_transformation_initialize (void);
+void ipcp_free_transformation_sum (void);
 
 /* ipa_edge_args stores information related to a callsite and particularly its
    arguments.  It can be accessed by the IPA_EDGE_REF macro.  */
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index 2f2b070..158dbe7 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -3758,6 +3758,18 @@ ipcp_transformation_initialize (void)
     ipcp_transformation_sum = ipcp_transformation_t::create_ggc (symtab);
 }
 
+/* Release the IPA CP transformation summary.  */
+
+void
+ipcp_free_transformation_sum (void)
+{
+  if (!ipcp_transformation_sum)
+    return;
+
+  ipcp_transformation_sum->release ();
+  ipcp_transformation_sum = NULL;
+}
+
 /* Set the aggregate replacements of NODE to be AGGVALS.  */
 
 void

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

end of thread, other threads:[~2019-10-05  9:07 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-01  0:00 [PATCH] IPA-CP release transformation summary (PR jit/91928) Andrea Corallo
2019-01-01  0:00 ` Martin Jambor
2019-01-01  0:00   ` Andrea Corallo
2019-01-01  0:00     ` Jeff Law
2019-01-01  0:00       ` Andrea Corallo
2019-01-01  0:00         ` Jeff Law
2019-01-01  0:00           ` Andrea Corallo

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).