ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
OmpAttribute.h File Reference
#include <iostream>
#include <string>
#include <map>
#include <cassert>
#include <vector>
Include dependency graph for OmpAttribute.h:

Go to the source code of this file.

Classes

class  OmpSupport::OmpAttributeList
 
class  OmpSupport::OmpAttribute
 

Namespaces

 OmpSupport
 

Constant Groups

 OmpSupport
 

Enumerations

enum  OmpSupport::omp_construct_enum {
  OmpSupport::e_unknown = 0,
  OmpSupport::e_parallel,
  OmpSupport::e_for,
  OmpSupport::e_do,
  OmpSupport::e_workshare,
  OmpSupport::e_sections,
  OmpSupport::e_section,
  OmpSupport::e_single,
  OmpSupport::e_master,
  OmpSupport::e_critical,
  OmpSupport::e_barrier,
  OmpSupport::e_atomic,
  OmpSupport::e_flush,
  OmpSupport::e_target,
  OmpSupport::e_target_declare,
  OmpSupport::e_target_data,
  OmpSupport::e_target_update,
  OmpSupport::e_map,
  OmpSupport::e_device,
  OmpSupport::e_threadprivate,
  OmpSupport::e_parallel_for,
  OmpSupport::e_parallel_do,
  OmpSupport::e_parallel_sections,
  OmpSupport::e_parallel_workshare,
  OmpSupport::e_task,
  OmpSupport::e_taskwait,
  OmpSupport::e_ordered_directive,
  OmpSupport::e_end_critical,
  OmpSupport::e_end_do,
  OmpSupport::e_end_master,
  OmpSupport::e_end_ordered,
  OmpSupport::e_end_parallel_do,
  OmpSupport::e_end_parallel_sections,
  OmpSupport::e_end_parallel_workshare,
  OmpSupport::e_end_parallel,
  OmpSupport::e_end_sections,
  OmpSupport::e_end_single,
  OmpSupport::e_end_task,
  OmpSupport::e_end_workshare,
  OmpSupport::e_default,
  OmpSupport::e_shared,
  OmpSupport::e_private,
  OmpSupport::e_firstprivate,
  OmpSupport::e_lastprivate,
  OmpSupport::e_copyin,
  OmpSupport::e_copyprivate,
  OmpSupport::e_if,
  OmpSupport::e_num_threads,
  OmpSupport::e_nowait,
  OmpSupport::e_ordered_clause,
  OmpSupport::e_reduction,
  OmpSupport::e_schedule,
  OmpSupport::e_collapse,
  OmpSupport::e_untied,
  OmpSupport::e_default_none,
  OmpSupport::e_default_shared,
  OmpSupport::e_default_private,
  OmpSupport::e_default_firstprivate,
  OmpSupport::e_reduction_plus,
  OmpSupport::e_reduction_mul,
  OmpSupport::e_reduction_minus,
  OmpSupport::e_reduction_bitand,
  OmpSupport::e_reduction_bitor,
  OmpSupport::e_reduction_bitxor,
  OmpSupport::e_reduction_logand,
  OmpSupport::e_reduction_logor,
  OmpSupport::e_reduction_and,
  OmpSupport::e_reduction_or,
  OmpSupport::e_reduction_eqv,
  OmpSupport::e_reduction_neqv,
  OmpSupport::e_reduction_max,
  OmpSupport::e_reduction_min,
  OmpSupport::e_reduction_iand,
  OmpSupport::e_reduction_ior,
  OmpSupport::e_reduction_ieor,
  OmpSupport::e_schedule_none,
  OmpSupport::e_schedule_static,
  OmpSupport::e_schedule_dynamic,
  OmpSupport::e_schedule_guided,
  OmpSupport::e_schedule_auto,
  OmpSupport::e_schedule_runtime,
  OmpSupport::e_map_alloc,
  OmpSupport::e_map_in,
  OmpSupport::e_map_out,
  OmpSupport::e_map_inout,
  OmpSupport::e_simd,
  OmpSupport::e_safelen,
  OmpSupport::e_uniform,
  OmpSupport::e_aligned,
  OmpSupport::e_linear,
  OmpSupport::e_not_omp
}
 

Functions

std::string OmpSupport::toString (omp_construct_enum omp_type)
 Output omp_construct_enum to a string: More...
 
bool OmpSupport::isFortranEndDirective (omp_construct_enum omp_type)
 Check if the construct is a Fortran END ... directive. More...
 
bool OmpSupport::isFortranBeginDirective (omp_construct_enum omp_type)
 Check if the construct is a Fortran directive which can (optionally) have a corresponding END directive. More...
 
bool OmpSupport::isDirective (omp_construct_enum omp_type)
 Check if an OpenMP construct is a directive. More...
 
bool OmpSupport::isDirectiveWithBody (omp_construct_enum omp_type)
 Check if an OpenMP directive has a structured body. More...
 
bool OmpSupport::isClause (omp_construct_enum omp_type)
 Check if an OpenMP construct is a clause. More...
 
bool OmpSupport::isReductionOperator (omp_construct_enum omp_type)
 Check if an OpenMP construct is a reduction operator. More...
 
ROSE_DLL_API OmpAttribute * OmpSupport::buildOmpAttribute (enum omp_construct_enum directive_type, SgNode *context_node, bool useDefined)
 Some utility functions to manipulate OmpAttribute. More...
 
ROSE_DLL_API void OmpSupport::addOmpAttribute (OmpAttribute *ompattribute, SgNode *node)
 Add OmpAttribute to a SgNode. More...
 
ROSE_DLL_API void OmpSupport::removeOmpAttribute (OmpAttribute *ompattribute, SgNode *node)
 Remove OmpAttribute from a SgNode. More...
 
ROSE_DLL_API bool OmpSupport::isEquivalentOmpAttribute (OmpAttribute *a1, OmpAttribute *a2)
 Check if two OmpAttributes are semantically equivalent to each other. More...
 
ROSE_DLL_API OmpAttributeList * OmpSupport::getOmpAttributeList (SgNode *node)
 Get OmpAttribute from a SgNode, return NULL if not found. More...
 
OmpAttribute * OmpSupport::getOmpAttribute (SgNode *node)
 Get the first OmpAttribute from a SgNode, return NULL if not found. More...
 
omp_construct_enum OmpSupport::getOmpConstructEnum (SgPragmaDeclaration *decl)
 Get omp enum from an OpenMP pragma attached with OmpAttribute. More...
 
omp_construct_enum OmpSupport::getBeginOmpConstructEnum (omp_construct_enum end_enum)
 Get the corresponding begin construct enum from an end construct enum. More...
 
omp_construct_enum OmpSupport::getEndOmpConstructEnum (omp_construct_enum begin_enum)
 Get the corresponding end construct enum from a begin construct enum. More...
 
ROSE_DLL_API void OmpSupport::generatePragmaFromOmpAttribute (SgNode *sg_node)
 Generate a pragma declaration from OmpAttribute attached to a statement. More...
 
ROSE_DLL_API std::string OmpSupport::generateDiffTextFromOmpAttribute (SgNode *sg_node)
 Generate diff text from OmpAttribute attached to a statement. More...
 

Variables

std::list< OmpAttribute * > OmpSupport::omp_comment_list