Hi! On 2021-03-02T04:20:11-0800, Julian Brown <jul...@codesourcery.com> wrote: > --- /dev/null > +++ b/gcc/oacc-neuter-bcast.c
Allocated here: > +static parallel_g * > +omp_sese_find_par (bb_stmt_map_t *map, parallel_g *par, basic_block block) > +{ > + par = new parallel_g ([...]); > + par = new parallel_g (par, mask); > + par = new parallel_g ([...]); > + return par; > +} > +static parallel_g * > +omp_sese_discover_pars (bb_stmt_map_t *map) > +{ > + parallel_g *par = omp_sese_find_par (map, 0, block); > + return par; > +} ..., and used here: > +void > +oacc_do_neutering (void) > +{ > + parallel_g *par = omp_sese_discover_pars (&bb_stmt_map); > + populate_single_mode_bitmaps (par, [...]); > + find_ssa_names_to_propagate (par, [...]); > + find_partitioned_var_uses (par, [...]); > + find_local_vars_to_propagate (par, [...]); > + neuter_worker_single (par, [...]); ... but never released; memory leak. Pushed "Plug 'par' memory leak in 'gcc/omp-oacc-neuter-broadcast.cc:execute_omp_oacc_neuter_broadcast'" to master branch in commit df98015fb7db2ed754a7c154669bc7777f8e1612, see attached. Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
>From df98015fb7db2ed754a7c154669bc7777f8e1612 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tho...@codesourcery.com> Date: Fri, 6 Aug 2021 15:34:25 +0200 Subject: [PATCH] Plug 'par' memory leak in 'gcc/omp-oacc-neuter-broadcast.cc:execute_omp_oacc_neuter_broadcast' Fix-up for recent commit e2a58ed6dc5293602d0d168475109caa81ad0f0d "openacc: Middle-end worker-partitioning support". gcc/ * omp-oacc-neuter-broadcast.cc (execute_omp_oacc_neuter_broadcast): Plug 'par' memory leak. --- gcc/omp-oacc-neuter-broadcast.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gcc/omp-oacc-neuter-broadcast.cc b/gcc/omp-oacc-neuter-broadcast.cc index d30867085c3..d48627a6940 100644 --- a/gcc/omp-oacc-neuter-broadcast.cc +++ b/gcc/omp-oacc-neuter-broadcast.cc @@ -1463,6 +1463,8 @@ execute_omp_oacc_neuter_broadcast () gcc_checking_assert (!it); prop_set.release (); + delete par; + /* This doesn't seem to make a difference. */ loops_state_clear (LOOP_CLOSED_SSA); -- 2.30.2