GCC Middle and Back End API Reference
|
Data Fields | |
struct omp_region * | outer |
struct omp_region * | inner |
struct omp_region * | next |
basic_block | entry |
basic_block | exit |
basic_block | cont |
vec< tree, va_gc > * | ws_args |
enum gimple_code | type |
enum omp_clause_schedule_kind | sched_kind |
unsigned char | sched_modifiers |
bool | is_combined_parallel |
bool | has_lastprivate_conditional |
gomp_ordered * | ord_stmt |
Expansion pass for OMP directives. Outlines regions of certain OMP directives to separate functions, converts others into explicit calls to the runtime library (libgomp) and so forth Copyright (C) 2005-2024 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
OMP region information. Every parallel and workshare directive is enclosed between two markers, the OMP_* directive and a corresponding GIMPLE_OMP_RETURN statement.
basic_block omp_region::cont |
Referenced by build_omp_regions_1(), determine_parallel_type(), dump_omp_region(), expand_oacc_for(), expand_omp_for(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_sections(), expand_omp_simd(), expand_omp_taskloop_for_inner(), expand_omp_taskloop_for_outer(), expand_omp_taskreg(), and omp_make_gimple_edges().
basic_block omp_region::entry |
Referenced by adjust_context_and_scope(), determine_parallel_type(), dump_omp_region(), expand_oacc_for(), expand_omp(), expand_omp_atomic(), expand_omp_for(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_sections(), expand_omp_simd(), expand_omp_single(), expand_omp_synch(), expand_omp_target(), expand_omp_taskloop_for_inner(), expand_omp_taskloop_for_outer(), expand_omp_taskreg(), expand_task_call(), is_in_offload_region(), new_omp_region(), omp_make_gimple_edges(), and remove_exit_barrier().
basic_block omp_region::exit |
Referenced by build_omp_regions_1(), determine_parallel_type(), dump_omp_region(), expand_oacc_for(), expand_omp_atomic(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_omp_sections(), expand_omp_simd(), expand_omp_single(), expand_omp_synch(), expand_omp_target(), expand_omp_taskloop_for_inner(), expand_omp_taskloop_for_outer(), expand_omp_taskreg(), omp_make_gimple_edges(), and remove_exit_barrier().
bool omp_region::has_lastprivate_conditional |
Referenced by expand_omp_for(), and expand_parallel_call().
struct omp_region* omp_region::inner |
bool omp_region::is_combined_parallel |
Referenced by determine_parallel_type(), and is_combined_parallel().
struct omp_region* omp_region::next |
gomp_ordered* omp_region::ord_stmt |
Referenced by expand_omp(), and expand_omp_ordered_source_sink().
struct omp_region* omp_region::outer |
enum omp_clause_schedule_kind omp_region::sched_kind |
Referenced by expand_omp_for(), and expand_parallel_call().
unsigned char omp_region::sched_modifiers |
Referenced by expand_omp_for(), and expand_parallel_call().
enum gimple_code omp_region::type |
Referenced by determine_parallel_type(), expand_omp_taskreg(), and expand_parallel_call().