[PATCH 08/18] make side_effects a vec<rtx>

Jeff Law law@redhat.com
Thu Apr 28 04:29:00 GMT 2016


On 04/22/2016 06:11 AM, Trevor Saunders wrote:
> On Thu, Apr 21, 2016 at 11:12:48PM -0600, Jeff Law wrote:
>> On 04/20/2016 12:22 AM, tbsaunde+gcc@tbsaunde.org wrote:
>>> From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
>>>
>>> gcc/ChangeLog:
>>>
>>> 2016-04-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
>>>
>>> 	* var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
>>> 	(adjust_mems): Adjust.
>>> 	(adjust_insn): Likewise.
>>> 	(prepare_call_arguments): Likewise.
>>> ---
>>>  gcc/var-tracking.c | 30 +++++++++++-------------------
>>>  1 file changed, 11 insertions(+), 19 deletions(-)
>>>
>>> diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
>>> index 9f09d30..7fc6ed3 100644
>>> --- a/gcc/var-tracking.c
>>> +++ b/gcc/var-tracking.c
>>> @@ -926,7 +926,7 @@ struct adjust_mem_data
>>>    bool store;
>>>    machine_mode mem_mode;
>>>    HOST_WIDE_INT stack_adjust;
>>> -  rtx_expr_list *side_effects;
>>> +  auto_vec<rtx> side_effects;
>>>  };
>> Is auto_vec what you really want here?  AFAICT this object is never
>> destructed, so we're not releasing the memory.  Am I missing something here?
>
> it is destructed, auto_vec has a destructor, there for adjust_mem_data
> has a destructor since it has a field with a destructor.
> adjust_mem_data is always on the stack so the compiler deals with making
> sure the destructor is called when it goes out of scope.\
Duh :-)

OK for the trunk.  It looks like Bernd and others are handling the bulk 
of these, so I'll step aside.

jeff



More information about the Gcc-patches mailing list