public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Fix two leaks in postreload-gcse.c
@ 2015-05-14 16:33 David Malcolm
  2015-05-14 17:44 ` Jeff Law
  0 siblings, 1 reply; 2+ messages in thread
From: David Malcolm @ 2015-05-14 16:33 UTC (permalink / raw)
  To: gcc-patches; +Cc: David Malcolm

Running jit.dg/test-sum-of-squares.c under valgrind showed a couple of leaks:

608 bytes in 4 blocks are definitely lost in loss record 184 of 229
   at 0x4A081D4: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x5BC88B0: xcalloc (xmalloc.c:162)
   by 0x524F72D: alloc_mem() (postreload-gcse.c:352)
   by 0x5252611: gcse_after_reload_main(rtx_def*) (postreload-gcse.c:1390)
   by 0x5252828: rest_of_handle_gcse2() (postreload-gcse.c:1444)
   by 0x52528DA: (anonymous namespace)::pass_gcse2::execute(function*) (postreload-gcse.c:1478)
   by 0x5249D2A: execute_one_pass(opt_pass*) (passes.c:2317)
   by 0x5249FB1: execute_pass_list_1(opt_pass*) (passes.c:2370)
   by 0x5249FE2: execute_pass_list_1(opt_pass*) (passes.c:2371)
   by 0x5249FE2: execute_pass_list_1(opt_pass*) (passes.c:2371)
   by 0x524A01F: execute_pass_list(function*, opt_pass*) (passes.c:2381)
   by 0x4EC075C: cgraph_node::expand() (cgraphunit.c:1895)

608 bytes in 4 blocks are definitely lost in loss record 185 of 229
   at 0x4A081D4: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x5BC88B0: xcalloc (xmalloc.c:162)
   by 0x524F754: alloc_mem() (postreload-gcse.c:355)
   by 0x5252611: gcse_after_reload_main(rtx_def*) (postreload-gcse.c:1390)
   by 0x5252828: rest_of_handle_gcse2() (postreload-gcse.c:1444)
   by 0x52528DA: (anonymous namespace)::pass_gcse2::execute(function*) (postreload-gcse.c:1478)
   by 0x5249D2A: execute_one_pass(opt_pass*) (passes.c:2317)
   by 0x5249FB1: execute_pass_list_1(opt_pass*) (passes.c:2370)
   by 0x5249FE2: execute_pass_list_1(opt_pass*) (passes.c:2371)
   by 0x5249FE2: execute_pass_list_1(opt_pass*) (passes.c:2371)
   by 0x524A01F: execute_pass_list(function*, opt_pass*) (passes.c:2381)
   by 0x4EC075C: cgraph_node::expand() (cgraphunit.c:1895)

The following patch fixes them (verified via rerunning under valgrind).

OK for trunk? (assuming I bootstrap and test it)

gcc/ChangeLog:
	* postreload-gcse.c (free_mem): Free modify_mem_list and
	canon_modify_mem_list.
---
 gcc/postreload-gcse.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gcc/postreload-gcse.c b/gcc/postreload-gcse.c
index 9014d69..ae6fdd0 100644
--- a/gcc/postreload-gcse.c
+++ b/gcc/postreload-gcse.c
@@ -381,6 +381,8 @@ free_mem (void)
   BITMAP_FREE (blocks_with_calls);
   BITMAP_FREE (modify_mem_list_set);
   free (reg_avail_info);
+  free (modify_mem_list);
+  free (canon_modify_mem_list);
 }
 \f
 
-- 
1.8.5.3

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

* Re: [PATCH] Fix two leaks in postreload-gcse.c
  2015-05-14 16:33 [PATCH] Fix two leaks in postreload-gcse.c David Malcolm
@ 2015-05-14 17:44 ` Jeff Law
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff Law @ 2015-05-14 17:44 UTC (permalink / raw)
  To: David Malcolm, gcc-patches

On 05/14/2015 10:38 AM, David Malcolm wrote:
> Running jit.dg/test-sum-of-squares.c under valgrind showed a couple of leaks:
>
> 608 bytes in 4 blocks are definitely lost in loss record 184 of 229
>     at 0x4A081D4: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
>     by 0x5BC88B0: xcalloc (xmalloc.c:162)
>     by 0x524F72D: alloc_mem() (postreload-gcse.c:352)
>     by 0x5252611: gcse_after_reload_main(rtx_def*) (postreload-gcse.c:1390)
>     by 0x5252828: rest_of_handle_gcse2() (postreload-gcse.c:1444)
>     by 0x52528DA: (anonymous namespace)::pass_gcse2::execute(function*) (postreload-gcse.c:1478)
>     by 0x5249D2A: execute_one_pass(opt_pass*) (passes.c:2317)
>     by 0x5249FB1: execute_pass_list_1(opt_pass*) (passes.c:2370)
>     by 0x5249FE2: execute_pass_list_1(opt_pass*) (passes.c:2371)
>     by 0x5249FE2: execute_pass_list_1(opt_pass*) (passes.c:2371)
>     by 0x524A01F: execute_pass_list(function*, opt_pass*) (passes.c:2381)
>     by 0x4EC075C: cgraph_node::expand() (cgraphunit.c:1895)
>
> 608 bytes in 4 blocks are definitely lost in loss record 185 of 229
>     at 0x4A081D4: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
>     by 0x5BC88B0: xcalloc (xmalloc.c:162)
>     by 0x524F754: alloc_mem() (postreload-gcse.c:355)
>     by 0x5252611: gcse_after_reload_main(rtx_def*) (postreload-gcse.c:1390)
>     by 0x5252828: rest_of_handle_gcse2() (postreload-gcse.c:1444)
>     by 0x52528DA: (anonymous namespace)::pass_gcse2::execute(function*) (postreload-gcse.c:1478)
>     by 0x5249D2A: execute_one_pass(opt_pass*) (passes.c:2317)
>     by 0x5249FB1: execute_pass_list_1(opt_pass*) (passes.c:2370)
>     by 0x5249FE2: execute_pass_list_1(opt_pass*) (passes.c:2371)
>     by 0x5249FE2: execute_pass_list_1(opt_pass*) (passes.c:2371)
>     by 0x524A01F: execute_pass_list(function*, opt_pass*) (passes.c:2381)
>     by 0x4EC075C: cgraph_node::expand() (cgraphunit.c:1895)
>
> The following patch fixes them (verified via rerunning under valgrind).
>
> OK for trunk? (assuming I bootstrap and test it)
>
> gcc/ChangeLog:
> 	* postreload-gcse.c (free_mem): Free modify_mem_list and
> 	canon_modify_mem_list.
OK.  Not sure how I missed them when I added that code.

jeff

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

end of thread, other threads:[~2015-05-14 17:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-14 16:33 [PATCH] Fix two leaks in postreload-gcse.c David Malcolm
2015-05-14 17:44 ` Jeff Law

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