GCC Middle and Back End API Reference
omp_context Struct Reference
Collaboration diagram for omp_context:

Data Fields

copy_body_data cb
struct omp_contextouter
gimple stmt
splay_tree field_map
tree record_type
tree sender_decl
tree receiver_decl
splay_tree sfield_map
tree srecord_type
tree block_vars
tree cancel_label
enum omp_clause_default_kind default_kind
int depth
bool is_nested
bool cancellable

Detailed Description

Context structure. Used to store information about each parallel directive in the code.


Field Documentation

tree omp_context::block_vars

A chain of variables to add to the top-level block surrounding the construct. In the case of a parallel, this is in the child function.

Referenced by lower_omp_sections(), and maybe_add_implicit_barrier_cancel().

tree omp_context::cancel_label

Label to which GOMP_cancel{,llation_point} and explicit and implicit barriers should jump to during omplower pass.

bool omp_context::cancellable

True if this construct can be cancelled.

Referenced by scan_omp_teams().

copy_body_data omp_context::cb

This field must be at the beginning, as we do "inheritance": Some callback functions for tree-inline.c (e.g., omp_copy_decl) receive a copy_body_data pointer that is up-casted to an omp_context pointer.

Referenced by finalize_task_copyfn(), new_omp_context(), and new_omp_region().

enum omp_clause_default_kind omp_context::default_kind

What to do with variables with implicitly determined sharing attributes.

int omp_context::depth

Nesting depth of this context. Used to beautify error messages re invalid gotos. The outermost ctx is depth 1, with depth 0 being reserved for the main body of the function.

Referenced by new_omp_region().

splay_tree omp_context::field_map

Map variables to fields in a structure that allows communication between sending and receiving threads.

Referenced by finalize_task_copyfn(), is_reference(), is_variable_sized(), and new_omp_context().

bool omp_context::is_nested

True if this parallel directive is nested within another.

struct omp_context* omp_context::outer

The tree of contexts corresponding to the encountered constructs.

Referenced by maybe_lookup_field().

tree omp_context::receiver_decl

Referenced by finalize_task_copyfn().

tree omp_context::sender_decl
splay_tree omp_context::sfield_map

These are used just by task contexts, if task firstprivate fn is needed. srecord_type is used to communicate from the thread that encountered the task construct to task firstprivate fn, record_type is allocated by GOMP_task, initialized by task firstprivate fn and passed to the task body fn.

Referenced by build_sender_ref(), is_variable_sized(), and new_omp_context().

tree omp_context::srecord_type

The documentation for this struct was generated from the following file: