[Bug libgomp/26651] [gomp] #omp for ordered leaks memory

2006-04-17 Thread reichelt at gcc dot gnu dot org


--- Comment #5 from reichelt at gcc dot gnu dot org  2006-04-17 17:24 
---
RTH, alas there seems to be some fallout: PR25874, PR25989.
(I first blamed Jakub's patch for PR26823 for the fallout, but closer
inspection showed that it's your patch instead.)

Would you mind having a look?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26651



[Bug libgomp/26651] [gomp] #omp for ordered leaks memory

2006-04-16 Thread rth at gcc dot gnu dot org


--- Comment #4 from rth at gcc dot gnu dot org  2006-04-16 16:53 ---
Fixed.


-- 

rth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26651



[Bug libgomp/26651] [gomp] #omp for ordered leaks memory

2006-04-13 Thread rth at gcc dot gnu dot org


--- Comment #3 from rth at gcc dot gnu dot org  2006-04-13 23:44 ---
Subject: Bug 26651

Author: rth
Date: Thu Apr 13 23:44:25 2006
New Revision: 112935

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=112935
Log:
PR 26651
* gimple-low.c (lower_omp_directive): Remove dead code.
(lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
* gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
* omp-low.c (struct omp_region): Move to tree-flow.h.
(root_omp_region): Export.
(omp_regions, lookup_omp_region): Remove.
(determine_parallel_type): Update for struct omp_region changes.
(dump_omp_region): Dump regions with block numbers.
(new_omp_region): Take type and block instead of stmt; malloc
instead of ggc.
(free_omp_region_1, free_omp_regions): New.
(expand_parallel_call): Take entry_stmt as argument; update for
changes to omp_region.
(remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
(remove_exit_barriers): New.
(expand_omp_parallel): Update for struct omp_region changes.
(expand_omp_synch): Likewise.
(expand_omp): Likewise.
(expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
(expand_omp_for_static_chunk): Likewise.
(expand_omp_for): Likewise.
(expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
(expand_omp_sections): Similarly, with GOMP_sections_end.
(expand_omp_single): New.
(build_omp_regions_1): Update for OMP_CONTINUE.
(execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
(lower_omp_sections): Expand with OMP_CONTINUE, do not collect
OMP_SECTIONS_SECTIONS.
(lower_omp_single_simple): Don't emit barrier here.
(lower_omp_single_copy): Likewise.
(lower_omp_single): Fix bindings, and lower to straightline now.
(lower_omp_master, lower_omp_ordered): Likewise.
(lower_omp_critical): Likewise.
(lower_omp_for): Likewise.  Emit OMP_CONTINUE.
* tree-cfg.c (make_edges): Collect an omp_region tree, use it for
omp edges, free it afterward.
(make_omp_sections_edges): Remove.
(is_ctrl_altering_stmt): Don't bother checking flag_openmp.
(move_stmt_r): Handle OMP_CONTINUE.
* tree-flow.h (struct omp_region): Move from omp-low.c.  Switch 
statement pointers to basic blocks.  Add type member.
(root_omp_region, new_omp_region, free_omp_regions): Declare.
* tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
* tree-inline.c (estimate_num_insns_1): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
* tree-ssa-operands.c (get_expr_operands): Likewise.
* tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
(OMP_RETURN): Rename from OMP_RETURN_EXPR.
(OMP_CONTINUE): New.
* tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
(OMP_SECTIONS_SECTIONS): Remove.
(OMP_SECTION_LAST): New.
(OMP_RETURN_NOWAIT): New.
fortran/
* trans-openmp.c (gfc_trans_omp_sections): Adjust for changed
number of operands to OMP_SECTIONS.
testsuite/
* g++.dg/gomp/block-0.C: Update expected matches.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-openmp.c
trunk/gcc/gimple-low.c
trunk/gcc/gimplify.c
trunk/gcc/omp-low.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/gomp/block-0.C
trunk/gcc/tree-cfg.c
trunk/gcc/tree-flow.h
trunk/gcc/tree-gimple.c
trunk/gcc/tree-inline.c
trunk/gcc/tree-pretty-print.c
trunk/gcc/tree-ssa-operands.c
trunk/gcc/tree.def
trunk/gcc/tree.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26651



[Bug libgomp/26651] [gomp] #omp for ordered leaks memory

2006-03-20 Thread rth at gcc dot gnu dot org


--- Comment #2 from rth at gcc dot gnu dot org  2006-03-20 16:43 ---
Failing to call GOMP_loop_end.


-- 

rth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rth at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-03-15 15:59:22 |2006-03-20 16:43:51
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26651



[Bug libgomp/26651] [gomp] #omp for ordered leaks memory

2006-03-15 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-03-15 15:59 ---
Confirmed:
==25829== 68 bytes in 1 blocks are definitely lost in loss record 1 of 1
==25829==at 0x11B1E1FD: calloc (vg_replace_malloc.c:279)
==25829==by 0x11C232E0: gomp_malloc_cleared (alloc.c:48)
==25829==by 0x11C2524F: gomp_new_work_share (work.c:48)
==25829==by 0x11C254E0: gomp_work_share_start (work.c:130)
==25829==by 0x11C24535: GOMP_loop_ordered_static_start (loop.c:154)
==25829==by 0x4006DF: main.omp_fn.0 (in /home/pinskia/a.out)
==25829==by 0x400699: main (in /home/pinskia/a.out)


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-03-15 15:59:22
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26651