llvm::TrailingObjects<OMPArrayShapingExpr, Expr *, SourceRange> {
25 friendTrailingObjects;
39:
Expr(OMPArrayShapingExprClass, Shell), NumDims(NumDims) {}
45 voidsetBase(
Expr*Op) { getTrailingObjects<Expr *>()[NumDims] = Op; }
48 voidsetBracketsRanges(ArrayRef<SourceRange> BR);
50 unsignednumTrailingObjects(OverloadToken<Expr *>)
const{
55 unsignednumTrailingObjects(OverloadToken<SourceRange>)
const{
60 staticOMPArrayShapingExpr *
Create(
constASTContext &Context, QualType
T,
61 Expr*Op, SourceLocation L,
62SourceLocation R, ArrayRef<Expr *> Dims,
63ArrayRef<SourceRange> BracketRanges);
65 staticOMPArrayShapingExpr *
CreateEmpty(
constASTContext &Context,
86 return llvm::ArrayRef(getTrailingObjects<SourceRange>(), NumDims);
90 Expr*
getBase() {
returngetTrailingObjects<Expr *>()[NumDims]; }
91 const Expr*
getBase()
const{
returngetTrailingObjects<Expr *>()[NumDims]; }
94 return T->getStmtClass() == OMPArrayShapingExprClass;
99 Stmt**
Begin=
reinterpret_cast<Stmt**
>(getTrailingObjects<Expr *>());
104 reinterpret_cast<Stmt*
const*
>(getTrailingObjects<Expr *>());
150 privatellvm::TrailingObjects<OMPIteratorExpr, Decl *, Expr *,
151SourceLocation, OMPIteratorHelperData> {
168 friendTrailingObjects;
173 enum classRangeExprOffset {
181 enum classRangeLocOffset {
188SourceLocation IteratorKwLoc;
190SourceLocation LPLoc;
192SourceLocation RPLoc;
194 unsignedNumIterators = 0;
196OMPIteratorExpr(QualType ExprTy, SourceLocation IteratorKwLoc,
197SourceLocation L, SourceLocation R,
198ArrayRef<IteratorDefinition>
Data,
199ArrayRef<OMPIteratorHelperData> Helpers);
202 explicitOMPIteratorExpr(EmptyShell Shell,
unsignedNumIterators)
203:
Expr(OMPIteratorExprClass, Shell), NumIterators(NumIterators) {}
206 voidsetIteratorDeclaration(
unsignedI, Decl *
D);
210 voidsetAssignmentLoc(
unsignedI, SourceLocation
Loc);
214 voidsetIteratorRange(
unsignedI,
Expr*
Begin, SourceLocation ColonLoc,
215 Expr*End, SourceLocation SecondColonLoc,
Expr*Step);
218 voidsetHelper(
unsignedI,
constOMPIteratorHelperData &
D);
220 unsignednumTrailingObjects(OverloadToken<Decl *>)
const{
224 unsignednumTrailingObjects(OverloadToken<Expr *>)
const{
225 returnNumIterators *
static_cast<int>(RangeExprOffset::Total);
228 unsignednumTrailingObjects(OverloadToken<SourceLocation>)
const{
229 returnNumIterators *
static_cast<int>(RangeLocOffset::Total);
233 staticOMPIteratorExpr *
Create(
constASTContext &Context, QualType
T,
234SourceLocation IteratorKwLoc, SourceLocation L,
236ArrayRef<IteratorDefinition>
Data,
237ArrayRef<OMPIteratorHelperData> Helpers);
239 staticOMPIteratorExpr *
CreateEmpty(
constASTContext &Context,
240 unsignedNumIterators);
282 return T->getStmtClass() == OMPIteratorExprClass;
287 Stmt**
Begin=
reinterpret_cast<Stmt**
>(getTrailingObjects<Expr *>());
289 Begin,
Begin+ NumIterators *
static_cast<int>(RangeExprOffset::Total));
293 reinterpret_cast<Stmt*
const*
>(getTrailingObjects<Expr *>());
295 Begin,
Begin+ NumIterators *
static_cast<int>(RangeExprOffset::Total));
Decl - This represents one declaration (or definition), e.g.
This represents one expression.
An explicit cast in C or a C-style cast in C++, which uses the syntax ([s1][s2]......
const_child_range children() const
Expr * getBase()
Fetches base expression of array shaping expression.
void setLParenLoc(SourceLocation L)
SourceLocation getEndLoc() const LLVM_READONLY
static OMPArrayShapingExpr * CreateEmpty(const ASTContext &Context, unsigned NumDims)
SourceLocation getLParenLoc() const
ArrayRef< Expr * > getDimensions() const
Fetches the dimensions for array shaping expression.
SourceLocation getRParenLoc() const
SourceLocation getBeginLoc() const LLVM_READONLY
void setRParenLoc(SourceLocation L)
static bool classof(const Stmt *T)
ArrayRef< SourceRange > getBracketsRanges() const
Fetches source ranges for the brackets os the array shaping expression.
const Expr * getBase() const
OpenMP 5.0 [2.1.6 Iterators] Iterators are identifiers that expand to multiple values in the clause o...
void setLParenLoc(SourceLocation L)
SourceLocation getLParenLoc() const
static OMPIteratorExpr * CreateEmpty(const ASTContext &Context, unsigned NumIterators)
SourceLocation getSecondColonLoc(unsigned I) const
Gets the location of the second ':' (if any) in the range for the given iteratori definition.
void setRParenLoc(SourceLocation L)
SourceLocation getColonLoc(unsigned I) const
Gets the location of the first ':' in the range for the given iterator definition.
SourceLocation getRParenLoc() const
const IteratorRange getIteratorRange(unsigned I) const
SourceLocation getBeginLoc() const LLVM_READONLY
IteratorRange getIteratorRange(unsigned I)
Gets the iterator range for the given iterator.
const Decl * getIteratorDecl(unsigned I) const
OMPIteratorHelperData & getHelper(unsigned I)
Fetches helper data for the specified iteration space.
const_child_range children() const
void setIteratorKwLoc(SourceLocation L)
SourceLocation getAssignLoc(unsigned I) const
Gets the location of '=' for the given iterator definition.
SourceLocation getIteratorKwLoc() const
unsigned numOfIterators() const
Returns number of iterator definitions.
Decl * getIteratorDecl(unsigned I)
Gets the iterator declaration for the given iterator.
SourceLocation getEndLoc() const LLVM_READONLY
static bool classof(const Stmt *T)
A (possibly-)qualified type.
Encodes a location in the source.
Stmt - This represents one statement.
SourceLocation getEndLoc() const LLVM_READONLY
llvm::iterator_range< child_iterator > child_range
llvm::iterator_range< const_child_iterator > const_child_range
Represents a variable declaration or definition.
The JSON file list parser is used to communicate input to InstallAPI.
@ Create
'create' clause, allowed on Compute and Combined constructs, plus 'data', 'enter data',...
const FunctionProtoType * T
Iterator definition representation.
SourceLocation AssignmentLoc
SourceLocation SecondColonLoc
Iterator range representation begin:end[:step].
Helper expressions and declaration for OMPIteratorExpr class for each iteration space.
Expr * CounterUpdate
Updater for the internal counter: ++CounterVD;.
Expr * Upper
Normalized upper bound.
Expr * Update
Update expression for the originally specified iteration variable, calculated as VD = Begin + Counter...
VarDecl * CounterVD
Internal normalized counter.
A placeholder type used to construct an empty shell of a type, that will be filled in later (e....
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4