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().

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.  
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(), and is_reference().

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::record_type
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.  
tree omp_context::srecord_type

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