Commit 12e088ba by Andrea Corallo Committed by Andrea Corallo

re PR jit/91928 (libgccjit fails on subsequent compilations in ipa-cp)

PR jit/91928

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

From-SVN: r276507
parent 3aad513c
2019-10-03 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.
2019-10-03 Aldy Hernandez <aldyh@redhat.com> 2019-10-03 Aldy Hernandez <aldyh@redhat.com>
* Makefile.in (OBJS): Add range.o and range-op.o. * Makefile.in (OBJS): Add range.o and range-op.o.
......
...@@ -5304,4 +5304,5 @@ ipa_cp_c_finalize (void) ...@@ -5304,4 +5304,5 @@ ipa_cp_c_finalize (void)
max_count = profile_count::uninitialized (); max_count = profile_count::uninitialized ();
overall_size = 0; overall_size = 0;
max_new_size = 0; max_new_size = 0;
ipcp_free_transformation_sum ();
} }
...@@ -3758,6 +3758,18 @@ ipcp_transformation_initialize (void) ...@@ -3758,6 +3758,18 @@ ipcp_transformation_initialize (void)
ipcp_transformation_sum = ipcp_transformation_t::create_ggc (symtab); 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. */ /* Set the aggregate replacements of NODE to be AGGVALS. */
void void
......
...@@ -561,6 +561,7 @@ struct GTY(()) ipcp_transformation ...@@ -561,6 +561,7 @@ struct GTY(()) ipcp_transformation
void ipa_set_node_agg_value_chain (struct cgraph_node *node, void ipa_set_node_agg_value_chain (struct cgraph_node *node,
struct ipa_agg_replacement_value *aggvals); struct ipa_agg_replacement_value *aggvals);
void ipcp_transformation_initialize (void); void ipcp_transformation_initialize (void);
void ipcp_free_transformation_sum (void);
/* ipa_edge_args stores information related to a callsite and particularly its /* ipa_edge_args stores information related to a callsite and particularly its
arguments. It can be accessed by the IPA_EDGE_REF macro. */ arguments. It can be accessed by the IPA_EDGE_REF macro. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment