class OMPDeclareReductionDecl
Declaration
class OMPDeclareReductionDecl : public ValueDecl, public DeclContext { /* full declaration omitted */ };
Description
This represents '#pragma omp declare reduction ...' directive. For example, in the following, declared reduction 'foo' for types 'int' and 'float': Here 'omp_out += omp_in' is a combiner and 'omp_priv = 0' is an initializer.
Declared at: clang/include/clang/AST/DeclOpenMP.h:171
Inherits from: ValueDecl, DeclContext
Member Variables
- private clang::Expr* Combiner = nullptr
- Combiner for declare reduction construct.
- private clang::Expr* Initializer = nullptr
- Initializer for declare reduction construct.
- private clang::Expr* In = nullptr
- In parameter of the combiner.
- private clang::Expr* Out = nullptr
- Out parameter of the combiner.
- private clang::Expr* Priv = nullptr
- Priv parameter of the initializer.
- private clang::Expr* Orig = nullptr
- Orig parameter of the initializer.
- private clang::LazyDeclPtr PrevDeclInScope
- Reference to the previous declare reduction construct in the same scope with the same name. Required for proper templates instantiation if the declare reduction construct is declared inside compound statement.
Inherited from DeclContext:
- protected
- protected FirstDecl = nullptr
- protected LastDecl = nullptr
Inherited from Decl:
- protected NextInContextAndBits
- protected Access
- protected FromASTFile
- protected IdentifierNamespace
- protected CacheValidAndLinkage
Method Overview
- public static clang::OMPDeclareReductionDecl * Create(clang::ASTContext & C, clang::DeclContext * DC, clang::SourceLocation L, clang::DeclarationName Name, clang::QualType T, clang::OMPDeclareReductionDecl * PrevDeclInScope)
- public static clang::OMPDeclareReductionDecl * CreateDeserialized(clang::ASTContext & C, unsigned int ID)
- private OMPDeclareReductionDecl(clang::Decl::Kind DK, clang::DeclContext * DC, clang::SourceLocation L, clang::DeclarationName Name, clang::QualType Ty, clang::OMPDeclareReductionDecl * PrevDeclInScope)
- private void anchor()
- public static clang::OMPDeclareReductionDecl * castFromDeclContext(const clang::DeclContext * DC)
- public static clang::DeclContext * castToDeclContext(const clang::OMPDeclareReductionDecl * D)
- public static bool classof(const clang::Decl * D)
- public static bool classofKind(clang::Decl::Kind K)
- public const clang::Expr * getCombiner() const
- public clang::Expr * getCombiner()
- public clang::Expr * getCombinerIn()
- public const clang::Expr * getCombinerIn() const
- public clang::Expr * getCombinerOut()
- public const clang::Expr * getCombinerOut() const
- public clang::Expr * getInitOrig()
- public const clang::Expr * getInitOrig() const
- public clang::Expr * getInitPriv()
- public const clang::Expr * getInitPriv() const
- public const clang::Expr * getInitializer() const
- public clang::Expr * getInitializer()
- public clang::OMPDeclareReductionDecl::InitKind getInitializerKind() const
- public clang::OMPDeclareReductionDecl * getPrevDeclInScope()
- public const clang::OMPDeclareReductionDecl * getPrevDeclInScope() const
- public void setCombiner(clang::Expr * E)
- public void setCombinerData(clang::Expr * InE, clang::Expr * OutE)
- public void setInitializer(clang::Expr * E, clang::OMPDeclareReductionDecl::InitKind IK)
- public void setInitializerData(clang::Expr * OrigE, clang::Expr * PrivE)
- private void setPrevDeclInScope(clang::OMPDeclareReductionDecl * Prev)
Inherited from DeclContext:
- protected BuildDeclChain
- public Encloses
- public Equals
- public InEnclosingNamespaceSetOf
- public addDecl
- public addDeclInternal
- public addHiddenDecl
- public buildLookup
- public classof
- public classof
- public collectAllContexts
- public containsDecl
- public containsDeclAndLoad
- public ddiags
- public decls
- public decls_begin
- public decls_empty
- public decls_end
- public dumpDeclContext
- public dumpLookups
- public dumpLookups
- public getDeclKind
- public getDeclKindName
- public getEnclosingNamespaceContext
- public getEnclosingNamespaceContext
- public getExternCContext
- public getInnermostBlockDecl
- public getLexicalParent
- public getLexicalParent
- public getLookupParent
- public getLookupParent
- public getLookupPtr
- public getNonClosureAncestor
- public getNonClosureAncestor
- public getNonTransparentContext
- public getNonTransparentContext
- public getOuterLexicalRecordContext
- public getOuterLexicalRecordContext
- public getParent
- public getParent
- public getParentASTContext
- public getPrimaryContext
- public getPrimaryContext
- public getRedeclContext
- public getRedeclContext
- public hasExternalLexicalStorage
- public hasExternalVisibleStorage
- public isClosure
- public isDeclInLexicalTraversal
- public isDependentContext
- public isExternCContext
- public isExternCXXContext
- public isFileContext
- public isFunctionOrMethod
- public isInlineNamespace
- public isLookupContext
- public isNamespace
- public isObjCContainer
- public isRecord
- public isStdNamespace
- public isTranslationUnit
- public isTransparentContext
- public localUncachedLookup
- public lookup
- public lookups
- public lookups_begin
- public lookups_end
- public makeDeclVisibleInContext
- public noload_decls
- public noload_decls_begin
- public noload_decls_end
- public noload_lookup
- public noload_lookups
- public noload_lookups_begin
- public noload_lookups_end
- public removeDecl
- public setHasExternalLexicalStorage
- public setHasExternalVisibleStorage
- public setMustBuildLookupTable
- public setUseQualifiedLookup
- public shouldUseQualifiedLookup
- public using_directives
Inherited from ValueDecl:
Inherited from NamedDecl:
- public classof
- public classofKind
- public declarationReplaces
- public getDeclName
- public getExplicitVisibility
- public getFormalLinkage
- public getIdentifier
- public getLinkageAndVisibility
- public getLinkageInternal
- public getMostRecentDecl
- public getMostRecentDecl
- public getName
- public getNameAsString
- public getNameForDiagnostic
- public getObjCFStringFormattingFamily
- public getQualifiedNameAsString
- public getUnderlyingDecl
- public getUnderlyingDecl
- public getVisibility
- public hasExternalFormalLinkage
- public hasLinkage
- public hasLinkageBeenComputed
- public isCXXClassMember
- public isCXXInstanceMember
- public isExternallyDeclarable
- public isExternallyVisible
- public isLinkageValid
- public isReserved
- public printName
- public printNestedNameSpecifier
- public printNestedNameSpecifier
- public printQualifiedName
- public printQualifiedName
- public setDeclName
Inherited from Decl:
- public EnableStatistics
- public PrintStats
- public add
- public addAttr
- public attr_begin
- public attr_end
- public attrs
- public canBeWeakImported
- public castFromDeclContext
- public castToDeclContext
- public classofKind
- public dropAttr
- public dropAttrs
- public dump
- public dump
- public dumpColor
- public getASTContext
- protected getASTMutationListener
- public getAccess
- public getAccessUnsafe
- public getAsFunction
- public getAsFunction
- public getAttr
- public getAttrs
- public getAttrs
- public getAvailability
- public getBeginLoc
- public getBody
- public getBodyRBrace
- protected getCachedLinkage
- public getCanonicalDecl
- public getCanonicalDecl
- public getDeclContext
- public getDeclContext
- public getDeclKindName
- public getDefiningAttr
- public getDescribedTemplate
- public getDescribedTemplateParams
- public getEndLoc
- public getExternalSourceSymbolAttr
- public getFriendObjectKind
- public getFunctionType
- public getGlobalID
- public getID
- public getIdentifierNamespace
- public getIdentifierNamespaceForKind
- public getImportedOwningModule
- public getKind
- public getLangOpts
- public getLexicalDeclContext
- public getLexicalDeclContext
- public getLocalOwningModule
- public getLocation
- public getMaxAlignment
- public getModuleOwnershipKind
- public getMostRecentDecl
- public getMostRecentDecl
- protected getMostRecentDeclImpl
- public getNextDeclInContext
- public getNextDeclInContext
- protected getNextRedeclarationImpl
- public getNonClosureContext
- public getNonClosureContext
- public getOwningModule
- public getOwningModuleForLinkage
- public getOwningModuleID
- public getParentFunctionOrMethod
- public getParentFunctionOrMethod
- public getPreviousDecl
- public getPreviousDecl
- protected getPreviousDeclImpl
- public getSourceRange
- public getTemplateDepth
- public getTranslationUnitDecl
- public getTranslationUnitDecl
- public getVersionIntroduced
- public hasAttr
- public hasAttrs
- public hasBody
- protected hasCachedLinkage
- public hasDefiningAttr
- protected hasLocalOwningModuleStorage
- public hasOwningModule
- public hasTagIdentifierNamespace
- public isCanonicalDecl
- public isDefinedOutsideFunctionOrMethod
- public isDeprecated
- public isDiscardedInGlobalModuleFragment
- public isFirstDecl
- public isFromASTFile
- public isFunctionOrFunctionTemplate
- public isImplicit
- public isInAnonymousNamespace
- public isInExportDeclContext
- public isInIdentifierNamespace
- public isInLocalScopeForInstantiation
- public isInStdNamespace
- public isInvalidDecl
- public isInvisibleOutsideTheOwningModule
- public isLocalExternDecl
- public isModulePrivate
- public isOutOfLine
- public isParameterPack
- public isReachable
- public isReferenced
- public isTagIdentifierNamespace
- public isTemplateDecl
- public isTemplateParameter
- public isTemplateParameterPack
- public isTemplated
- public isThisDeclarationReferenced
- public isTopLevelDeclInObjCContainer
- public isUnavailable
- public isUnconditionallyVisible
- public isUsed
- public isWeakImported
- public markUsed
- public print
- public print
- public printGroup
- public redecls
- public redecls_begin
- public redecls_end
- public setAccess
- public setAttrs
- protected setCachedLinkage
- public setDeclContext
- public setFromASTFile
- public setImplicit
- public setInvalidDecl
- public setIsUsed
- public setLexicalDeclContext
- public setLocalExternDecl
- public setLocalOwningModule
- public setLocation
- public setModuleOwnershipKind
- protected setModulePrivate
- public setNonMemberOperator
- public setObjectOfFriendDecl
- public setOwningModuleID
- public setReferenced
- public setTopLevelDeclInObjCContainer
- public setVisibleDespiteOwningModule
- public specific_attr_begin
- public specific_attr_end
- public specific_attrs
- protected updateOutOfDate
Methods
¶static clang::OMPDeclareReductionDecl* Create(
clang::ASTContext& C,
clang::DeclContext* DC,
clang::SourceLocation L,
clang::DeclarationName Name,
clang::QualType T,
clang::OMPDeclareReductionDecl*
PrevDeclInScope)
static clang::OMPDeclareReductionDecl* Create(
clang::ASTContext& C,
clang::DeclContext* DC,
clang::SourceLocation L,
clang::DeclarationName Name,
clang::QualType T,
clang::OMPDeclareReductionDecl*
PrevDeclInScope)
Description
Create declare reduction node.
Declared at: clang/include/clang/AST/DeclOpenMP.h:214
Parameters
- clang::ASTContext& C
- clang::DeclContext* DC
- clang::SourceLocation L
- clang::DeclarationName Name
- clang::QualType T
- clang::OMPDeclareReductionDecl* PrevDeclInScope
¶static clang::OMPDeclareReductionDecl*
CreateDeserialized(clang::ASTContext& C,
unsigned int ID)
static clang::OMPDeclareReductionDecl*
CreateDeserialized(clang::ASTContext& C,
unsigned int ID)
Description
Create deserialized declare reduction node.
Declared at: clang/include/clang/AST/DeclOpenMP.h:217
Parameters
- clang::ASTContext& C
- unsigned int ID
¶OMPDeclareReductionDecl(
clang::Decl::Kind DK,
clang::DeclContext* DC,
clang::SourceLocation L,
clang::DeclarationName Name,
clang::QualType Ty,
clang::OMPDeclareReductionDecl*
PrevDeclInScope)
OMPDeclareReductionDecl(
clang::Decl::Kind DK,
clang::DeclContext* DC,
clang::SourceLocation L,
clang::DeclarationName Name,
clang::QualType Ty,
clang::OMPDeclareReductionDecl*
PrevDeclInScope)
Declared at: clang/include/clang/AST/DeclOpenMP.h:203
Parameters
- clang::Decl::Kind DK
- clang::DeclContext* DC
- clang::SourceLocation L
- clang::DeclarationName Name
- clang::QualType Ty
- clang::OMPDeclareReductionDecl* PrevDeclInScope
¶void anchor()
void anchor()
Declared at: clang/include/clang/AST/DeclOpenMP.h:201
¶static clang::OMPDeclareReductionDecl*
castFromDeclContext(const clang::DeclContext* DC)
static clang::OMPDeclareReductionDecl*
castFromDeclContext(const clang::DeclContext* DC)
Declared at: clang/include/clang/AST/DeclOpenMP.h:272
Parameters
- const clang::DeclContext* DC
¶static clang::DeclContext* castToDeclContext(
const clang::OMPDeclareReductionDecl* D)
static clang::DeclContext* castToDeclContext(
const clang::OMPDeclareReductionDecl* D)
Declared at: clang/include/clang/AST/DeclOpenMP.h:269
Parameters
- const clang::OMPDeclareReductionDecl* D
¶static bool classof(const clang::Decl* D)
static bool classof(const clang::Decl* D)
Declared at: clang/include/clang/AST/DeclOpenMP.h:267
Parameters
- const clang::Decl* D
¶static bool classofKind(clang::Decl::Kind K)
static bool classofKind(clang::Decl::Kind K)
Declared at: clang/include/clang/AST/DeclOpenMP.h:268
Parameters
- clang::Decl::Kind K
¶const clang::Expr* getCombiner() const
const clang::Expr* getCombiner() const
Declared at: clang/include/clang/AST/DeclOpenMP.h:222
¶clang::Expr* getCombiner()
clang::Expr* getCombiner()
Description
Get combiner expression of the declare reduction construct.
Declared at: clang/include/clang/AST/DeclOpenMP.h:221
¶clang::Expr* getCombinerIn()
clang::Expr* getCombinerIn()
Description
Get In variable of the combiner.
Declared at: clang/include/clang/AST/DeclOpenMP.h:224
¶const clang::Expr* getCombinerIn() const
const clang::Expr* getCombinerIn() const
Declared at: clang/include/clang/AST/DeclOpenMP.h:225
¶clang::Expr* getCombinerOut()
clang::Expr* getCombinerOut()
Description
Get Out variable of the combiner.
Declared at: clang/include/clang/AST/DeclOpenMP.h:227
¶const clang::Expr* getCombinerOut() const
const clang::Expr* getCombinerOut() const
Declared at: clang/include/clang/AST/DeclOpenMP.h:228
¶clang::Expr* getInitOrig()
clang::Expr* getInitOrig()
Description
Get Orig variable of the initializer.
Declared at: clang/include/clang/AST/DeclOpenMP.h:246
¶const clang::Expr* getInitOrig() const
const clang::Expr* getInitOrig() const
Declared at: clang/include/clang/AST/DeclOpenMP.h:247
¶clang::Expr* getInitPriv()
clang::Expr* getInitPriv()
Description
Get Priv variable of the initializer.
Declared at: clang/include/clang/AST/DeclOpenMP.h:249
¶const clang::Expr* getInitPriv() const
const clang::Expr* getInitPriv() const
Declared at: clang/include/clang/AST/DeclOpenMP.h:250
¶const clang::Expr* getInitializer() const
const clang::Expr* getInitializer() const
Declared at: clang/include/clang/AST/DeclOpenMP.h:240
¶clang::Expr* getInitializer()
clang::Expr* getInitializer()
Description
Get initializer expression (if specified) of the declare reduction construct.
Declared at: clang/include/clang/AST/DeclOpenMP.h:239
¶clang::OMPDeclareReductionDecl::InitKind
getInitializerKind() const
clang::OMPDeclareReductionDecl::InitKind
getInitializerKind() const
Description
Get initializer kind.
Declared at: clang/include/clang/AST/DeclOpenMP.h:242
¶clang::OMPDeclareReductionDecl*
getPrevDeclInScope()
clang::OMPDeclareReductionDecl*
getPrevDeclInScope()
Description
Get reference to previous declare reduction construct in the same scope with the same name.
Declared at: clang/include/clang/AST/DeclOpenMP.h:264
¶const clang::OMPDeclareReductionDecl*
getPrevDeclInScope() const
const clang::OMPDeclareReductionDecl*
getPrevDeclInScope() const
Declared at: clang/include/clang/AST/DeclOpenMP.h:265
¶void setCombiner(clang::Expr* E)
void setCombiner(clang::Expr* E)
Description
Set combiner expression for the declare reduction construct.
Declared at: clang/include/clang/AST/DeclOpenMP.h:230
Parameters
- clang::Expr* E
¶void setCombinerData(clang::Expr* InE,
clang::Expr* OutE)
void setCombinerData(clang::Expr* InE,
clang::Expr* OutE)
Description
Set combiner In and Out vars.
Declared at: clang/include/clang/AST/DeclOpenMP.h:232
Parameters
- clang::Expr* InE
- clang::Expr* OutE
¶void setInitializer(
clang::Expr* E,
clang::OMPDeclareReductionDecl::InitKind IK)
void setInitializer(
clang::Expr* E,
clang::OMPDeclareReductionDecl::InitKind IK)
Description
Set initializer expression for the declare reduction construct.
Declared at: clang/include/clang/AST/DeclOpenMP.h:252
Parameters
- clang::Expr* E
- clang::OMPDeclareReductionDecl::InitKind IK
¶void setInitializerData(clang::Expr* OrigE,
clang::Expr* PrivE)
void setInitializerData(clang::Expr* OrigE,
clang::Expr* PrivE)
Description
Set initializer Orig and Priv vars.
Declared at: clang/include/clang/AST/DeclOpenMP.h:257
Parameters
- clang::Expr* OrigE
- clang::Expr* PrivE
¶void setPrevDeclInScope(
clang::OMPDeclareReductionDecl* Prev)
void setPrevDeclInScope(
clang::OMPDeclareReductionDecl* Prev)
Declared at: clang/include/clang/AST/DeclOpenMP.h:207