From 61e47ac8a36d428c1dc2009c9707ed83acce3fff Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 13 Apr 2006 23:44:25 +0000
Subject: 	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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112935 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/tree.def | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

(limited to 'gcc/tree.def')

diff --git a/gcc/tree.def b/gcc/tree.def
index 2b84abdf085..ffc772fa173 100644
--- a/gcc/tree.def
+++ b/gcc/tree.def
@@ -987,11 +987,8 @@ DEFTREECODE (OMP_FOR, "omp_for", tcc_statement, 6)
 
 /* OpenMP - #pragma omp sections [clause1 ... clauseN]
    Operand 0: OMP_SECTIONS_BODY: Sections body.
-   Operand 1: OMP_SECTIONS_CLAUSES: List of clauses.
-   Operand 2: OMP_SECTIONS_SECTIONS: Vector of the different sections
-	      in the body.  Only valid after lowering and destroyed
-	      after the CFG has been built.  */
-DEFTREECODE (OMP_SECTIONS, "omp_sections", tcc_statement, 3)
+   Operand 1: OMP_SECTIONS_CLAUSES: List of clauses.  */
+DEFTREECODE (OMP_SECTIONS, "omp_sections", tcc_statement, 2)
 
 /* OpenMP - #pragma omp single
    Operand 0: OMP_SINGLE_BODY: Single section body.
@@ -1015,6 +1012,13 @@ DEFTREECODE (OMP_ORDERED, "omp_ordered", tcc_statement, 1)
    Operand 1: OMP_CRITICAL_NAME: Identifier for critical section.  */
 DEFTREECODE (OMP_CRITICAL, "omp_critical", tcc_statement, 2)
 
+/* Return from an OpenMP directive.  */
+DEFTREECODE (OMP_RETURN, "omp_return", tcc_statement, 0)
+
+/* OpenMP - An intermediate tree code to mark the location of the
+   loop or sections iteration in the partially lowered code.  */
+DEFTREECODE (OMP_CONTINUE, "omp_continue", tcc_statement, 0)
+
 /* OpenMP - #pragma omp atomic
    Operand 0: The address at which the atomic operation is to be performed.
 	This address should be stabilized with save_expr.
@@ -1026,9 +1030,6 @@ DEFTREECODE (OMP_ATOMIC, "omp_atomic", tcc_statement, 2)
 /* OpenMP clauses.  */
 DEFTREECODE (OMP_CLAUSE, "omp_clause", tcc_exceptional, 0)
 
-/* Return from an OpenMP directive.  */
-DEFTREECODE (OMP_RETURN_EXPR, "omp_return", tcc_statement, 0)
-
 /* Reduction operations. 
    Operations that take a vector of elements and "reduce" it to a scalar
    result (e.g. summing the elements of the vector, finding the minimum over
-- 
cgit v1.2.1

