-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[NFC][Clang] Adopt simplified getTrailingObjects
in Decl/StmtOpenACC
#140087
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Adopt non-templated and array-ref returning forms of `getTrailingObjects` in DeclOpenACC and StmtOpenACC. Also use std::uninitialized_contruct_n to make the code a little concise.
d9176b9
to
969c163
Compare
@llvm/pr-subscribers-clang-modules Author: Rahul Joshi (jurahul) ChangesAdopt non-templated and array-ref returning forms of Patch is 22.01 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/140087.diff 4 Files Affected:
diff --git a/clang/include/clang/AST/DeclOpenACC.h b/clang/include/clang/AST/DeclOpenACC.h
index e5d1ec317fb18..c9c69ee5f64a3 100644
--- a/clang/include/clang/AST/DeclOpenACC.h
+++ b/clang/include/clang/AST/DeclOpenACC.h
@@ -73,10 +73,8 @@ class OpenACCDeclareDecl final
OpenACCDeclareDecl(unsigned NumClauses)
: OpenACCConstructDecl(OpenACCDeclare) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCDeclareDecl(DeclContext *DC, SourceLocation StartLoc,
@@ -85,10 +83,9 @@ class OpenACCDeclareDecl final
: OpenACCConstructDecl(OpenACCDeclare, DC, OpenACCDirectiveKind::Declare,
StartLoc, DirLoc, EndLoc) {
// Initialize the trailing storage.
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -117,10 +114,8 @@ class OpenACCRoutineDecl final
OpenACCRoutineDecl(unsigned NumClauses)
: OpenACCConstructDecl(OpenACCRoutine) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCRoutineDecl(DeclContext *DC, SourceLocation StartLoc,
@@ -134,9 +129,8 @@ class OpenACCRoutineDecl final
assert(LParenLoc.isValid() &&
"Cannot represent implicit name with this declaration");
// Initialize the trailing storage.
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
diff --git a/clang/include/clang/AST/StmtOpenACC.h b/clang/include/clang/AST/StmtOpenACC.h
index bf667d4194298..c8f8b968b1c80 100644
--- a/clang/include/clang/AST/StmtOpenACC.h
+++ b/clang/include/clang/AST/StmtOpenACC.h
@@ -142,10 +142,8 @@ class OpenACCComputeConstruct final
// We cannot send the TrailingObjects storage to the base class (which holds
// a reference to the data) until it is constructed, so we have to set it
// separately here.
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCComputeConstruct(OpenACCDirectiveKind K, SourceLocation Start,
@@ -159,10 +157,9 @@ class OpenACCComputeConstruct final
"represented by this type");
// Initialize the trailing storage.
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ setClauseList(getTrailingObjects(Clauses.size()));
}
void setStructuredBlock(Stmt *S) { setAssociatedStmt(S); }
@@ -254,10 +251,8 @@ class OpenACCCombinedConstruct final
OpenACCCombinedConstructClass, OpenACCDirectiveKind::Invalid,
SourceLocation{}, SourceLocation{}, SourceLocation{},
/*AssociatedStmt=*/nullptr) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCCombinedConstruct(OpenACCDirectiveKind K, SourceLocation Start,
@@ -270,9 +265,8 @@ class OpenACCCombinedConstruct final
"Only parallel loop, serial loop, and kernels loop constructs "
"should be represented by this type");
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
void setStructuredBlock(Stmt *S) { setAssociatedStmt(S); }
@@ -305,10 +299,8 @@ class OpenACCDataConstruct final
OpenACCDataConstructClass, OpenACCDirectiveKind::Data,
SourceLocation{}, SourceLocation{}, SourceLocation{},
/*AssociatedStmt=*/nullptr) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCDataConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
@@ -318,9 +310,8 @@ class OpenACCDataConstruct final
: OpenACCAssociatedStmtConstruct(OpenACCDataConstructClass,
OpenACCDirectiveKind::Data, Start,
DirectiveLoc, End, StructuredBlock) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
void setStructuredBlock(Stmt *S) { setAssociatedStmt(S); }
@@ -351,10 +342,8 @@ class OpenACCEnterDataConstruct final
: OpenACCConstructStmt(OpenACCEnterDataConstructClass,
OpenACCDirectiveKind::EnterData, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCEnterDataConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation End,
@@ -362,9 +351,8 @@ class OpenACCEnterDataConstruct final
: OpenACCConstructStmt(OpenACCEnterDataConstructClass,
OpenACCDirectiveKind::EnterData, Start,
DirectiveLoc, End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -387,10 +375,8 @@ class OpenACCExitDataConstruct final
: OpenACCConstructStmt(OpenACCExitDataConstructClass,
OpenACCDirectiveKind::ExitData, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCExitDataConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation End,
@@ -398,9 +384,8 @@ class OpenACCExitDataConstruct final
: OpenACCConstructStmt(OpenACCExitDataConstructClass,
OpenACCDirectiveKind::ExitData, Start,
DirectiveLoc, End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -425,10 +410,8 @@ class OpenACCHostDataConstruct final
OpenACCHostDataConstructClass, OpenACCDirectiveKind::HostData,
SourceLocation{}, SourceLocation{}, SourceLocation{},
/*AssociatedStmt=*/nullptr) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCHostDataConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation End,
@@ -437,9 +420,8 @@ class OpenACCHostDataConstruct final
: OpenACCAssociatedStmtConstruct(OpenACCHostDataConstructClass,
OpenACCDirectiveKind::HostData, Start,
DirectiveLoc, End, StructuredBlock) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
void setStructuredBlock(Stmt *S) { setAssociatedStmt(S); }
@@ -490,11 +472,9 @@ class OpenACCWaitConstruct final
assert(NumExprs >= 1 &&
"NumExprs should always be >= 1 because the 'devnum' "
"expr is represented by a null if necessary");
- std::uninitialized_value_construct(getExprPtr(),
- getExprPtr() + NumExprs);
- std::uninitialized_value_construct(getTrailingObjects<OpenACCClause *>(),
- getTrailingObjects<OpenACCClause *>() +
- NumClauses);
+ std::uninitialized_value_construct_n(getExprPtr(), NumExprs);
+ std::uninitialized_value_construct_n(getTrailingObjects<OpenACCClause *>(),
+ NumClauses);
setClauseList(MutableArrayRef(const_cast<const OpenACCClause **>(
getTrailingObjects<OpenACCClause *>()),
NumClauses));
@@ -533,13 +513,9 @@ class OpenACCWaitConstruct final
return const_cast<Expr**>(getTrailingObjects<Expr *>());
}
- llvm::ArrayRef<Expr *> getExprs() const {
- return llvm::ArrayRef<Expr *>(getExprPtr(), NumExprs);
- }
+ ArrayRef<Expr *> getExprs() const { return {getExprPtr(), NumExprs}; }
- llvm::ArrayRef<Expr *> getExprs() {
- return llvm::ArrayRef<Expr *>(getExprPtr(), NumExprs);
- }
+ ArrayRef<Expr *> getExprs() { return {getExprPtr(), NumExprs}; }
public:
static bool classof(const Stmt *T) {
@@ -597,8 +573,7 @@ class OpenACCCacheConstruct final
OpenACCDirectiveKind::Cache, SourceLocation{},
SourceLocation{}, SourceLocation{}),
NumVars(NumVars) {
- std::uninitialized_value_construct(getVarListPtr(),
- getVarListPtr() + NumVars);
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumVars);
}
OpenACCCacheConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation LParenLoc, SourceLocation ReadOnlyLoc,
@@ -610,21 +585,13 @@ class OpenACCCacheConstruct final
ParensLoc(LParenLoc, RParenLoc), ReadOnlyLoc(ReadOnlyLoc),
NumVars(VarList.size()) {
- llvm::uninitialized_copy(VarList, getVarListPtr());
- }
-
- Expr **getVarListPtr() const {
- return const_cast<Expr **>(getTrailingObjects<Expr *>());
+ llvm::uninitialized_copy(VarList, getTrailingObjects());
}
public:
- llvm::ArrayRef<Expr *> getVarList() const {
- return llvm::ArrayRef<Expr *>(getVarListPtr(), NumVars);
- }
+ ArrayRef<Expr *> getVarList() const { return getTrailingObjects(NumVars); }
- llvm::ArrayRef<Expr *> getVarList() {
- return llvm::ArrayRef<Expr *>(getVarListPtr(), NumVars);
- }
+ MutableArrayRef<Expr *> getVarList() { return getTrailingObjects(NumVars); }
static bool classof(const Stmt *T) {
return T->getStmtClass() == OpenACCCacheConstructClass;
@@ -644,12 +611,12 @@ class OpenACCCacheConstruct final
SourceLocation getReadOnlyLoc() const { return ReadOnlyLoc; }
child_range children() {
- Stmt **Begin = reinterpret_cast<Stmt **>(getVarListPtr());
+ Stmt **Begin = reinterpret_cast<Stmt **>(getTrailingObjects());
return child_range(Begin, Begin + NumVars);
}
const_child_range children() const {
- Stmt *const *Begin = reinterpret_cast<Stmt *const *>(getVarListPtr());
+ Stmt *const *Begin = reinterpret_cast<Stmt *const *>(getTrailingObjects());
return const_child_range(Begin, Begin + NumVars);
}
};
@@ -664,10 +631,8 @@ class OpenACCInitConstruct final
: OpenACCConstructStmt(OpenACCInitConstructClass,
OpenACCDirectiveKind::Init, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCInitConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation End,
@@ -675,9 +640,8 @@ class OpenACCInitConstruct final
: OpenACCConstructStmt(OpenACCInitConstructClass,
OpenACCDirectiveKind::Init, Start, DirectiveLoc,
End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -702,10 +666,8 @@ class OpenACCShutdownConstruct final
: OpenACCConstructStmt(OpenACCShutdownConstructClass,
OpenACCDirectiveKind::Shutdown, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCShutdownConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation End,
@@ -713,9 +675,8 @@ class OpenACCShutdownConstruct final
: OpenACCConstructStmt(OpenACCShutdownConstructClass,
OpenACCDirectiveKind::Shutdown, Start,
DirectiveLoc, End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -739,10 +700,8 @@ class OpenACCSetConstruct final
: OpenACCConstructStmt(OpenACCSetConstructClass,
OpenACCDirectiveKind::Set, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCSetConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
@@ -751,9 +710,8 @@ class OpenACCSetConstruct final
: OpenACCConstructStmt(OpenACCSetConstructClass,
OpenACCDirectiveKind::Set, Start, DirectiveLoc,
End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -777,9 +735,7 @@ class OpenACCUpdateConstruct final
: OpenACCConstructStmt(OpenACCUpdateConstructClass,
OpenACCDirectiveKind::Update, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
}
@@ -789,9 +745,8 @@ class OpenACCUpdateConstruct final
: OpenACCConstructStmt(OpenACCUpdateConstructClass,
OpenACCDirectiveKind::Update, Start, DirectiveLoc,
End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -821,10 +776,8 @@ class OpenACCAtomicConstruct final
OpenACCAtomicConstructClass, OpenACCDirectiveKind::Atomic,
SourceLocation{}, SourceLocation{}, SourceLocation{},
/*AssociatedStmt=*/nullptr) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCAtomicConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
@@ -836,10 +789,9 @@ class OpenACCAtomicConstruct final
DirectiveLoc, End, AssociatedStmt),
AtomicKind(AtKind) {
// Initialize the trailing storage.
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ setClauseList(getTrailingObjects(Clauses.size()));
}
void setAssociatedStmt(Stmt *S) {
diff --git a/clang/lib/AST/StmtOpenACC.cpp b/clang/lib/AST/StmtOpenACC.cpp
i...
[truncated]
|
@llvm/pr-subscribers-clang Author: Rahul Joshi (jurahul) ChangesAdopt non-templated and array-ref returning forms of Patch is 22.01 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/140087.diff 4 Files Affected:
diff --git a/clang/include/clang/AST/DeclOpenACC.h b/clang/include/clang/AST/DeclOpenACC.h
index e5d1ec317fb18..c9c69ee5f64a3 100644
--- a/clang/include/clang/AST/DeclOpenACC.h
+++ b/clang/include/clang/AST/DeclOpenACC.h
@@ -73,10 +73,8 @@ class OpenACCDeclareDecl final
OpenACCDeclareDecl(unsigned NumClauses)
: OpenACCConstructDecl(OpenACCDeclare) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCDeclareDecl(DeclContext *DC, SourceLocation StartLoc,
@@ -85,10 +83,9 @@ class OpenACCDeclareDecl final
: OpenACCConstructDecl(OpenACCDeclare, DC, OpenACCDirectiveKind::Declare,
StartLoc, DirLoc, EndLoc) {
// Initialize the trailing storage.
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -117,10 +114,8 @@ class OpenACCRoutineDecl final
OpenACCRoutineDecl(unsigned NumClauses)
: OpenACCConstructDecl(OpenACCRoutine) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCRoutineDecl(DeclContext *DC, SourceLocation StartLoc,
@@ -134,9 +129,8 @@ class OpenACCRoutineDecl final
assert(LParenLoc.isValid() &&
"Cannot represent implicit name with this declaration");
// Initialize the trailing storage.
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
diff --git a/clang/include/clang/AST/StmtOpenACC.h b/clang/include/clang/AST/StmtOpenACC.h
index bf667d4194298..c8f8b968b1c80 100644
--- a/clang/include/clang/AST/StmtOpenACC.h
+++ b/clang/include/clang/AST/StmtOpenACC.h
@@ -142,10 +142,8 @@ class OpenACCComputeConstruct final
// We cannot send the TrailingObjects storage to the base class (which holds
// a reference to the data) until it is constructed, so we have to set it
// separately here.
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCComputeConstruct(OpenACCDirectiveKind K, SourceLocation Start,
@@ -159,10 +157,9 @@ class OpenACCComputeConstruct final
"represented by this type");
// Initialize the trailing storage.
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ setClauseList(getTrailingObjects(Clauses.size()));
}
void setStructuredBlock(Stmt *S) { setAssociatedStmt(S); }
@@ -254,10 +251,8 @@ class OpenACCCombinedConstruct final
OpenACCCombinedConstructClass, OpenACCDirectiveKind::Invalid,
SourceLocation{}, SourceLocation{}, SourceLocation{},
/*AssociatedStmt=*/nullptr) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCCombinedConstruct(OpenACCDirectiveKind K, SourceLocation Start,
@@ -270,9 +265,8 @@ class OpenACCCombinedConstruct final
"Only parallel loop, serial loop, and kernels loop constructs "
"should be represented by this type");
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
void setStructuredBlock(Stmt *S) { setAssociatedStmt(S); }
@@ -305,10 +299,8 @@ class OpenACCDataConstruct final
OpenACCDataConstructClass, OpenACCDirectiveKind::Data,
SourceLocation{}, SourceLocation{}, SourceLocation{},
/*AssociatedStmt=*/nullptr) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCDataConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
@@ -318,9 +310,8 @@ class OpenACCDataConstruct final
: OpenACCAssociatedStmtConstruct(OpenACCDataConstructClass,
OpenACCDirectiveKind::Data, Start,
DirectiveLoc, End, StructuredBlock) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
void setStructuredBlock(Stmt *S) { setAssociatedStmt(S); }
@@ -351,10 +342,8 @@ class OpenACCEnterDataConstruct final
: OpenACCConstructStmt(OpenACCEnterDataConstructClass,
OpenACCDirectiveKind::EnterData, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCEnterDataConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation End,
@@ -362,9 +351,8 @@ class OpenACCEnterDataConstruct final
: OpenACCConstructStmt(OpenACCEnterDataConstructClass,
OpenACCDirectiveKind::EnterData, Start,
DirectiveLoc, End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -387,10 +375,8 @@ class OpenACCExitDataConstruct final
: OpenACCConstructStmt(OpenACCExitDataConstructClass,
OpenACCDirectiveKind::ExitData, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCExitDataConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation End,
@@ -398,9 +384,8 @@ class OpenACCExitDataConstruct final
: OpenACCConstructStmt(OpenACCExitDataConstructClass,
OpenACCDirectiveKind::ExitData, Start,
DirectiveLoc, End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -425,10 +410,8 @@ class OpenACCHostDataConstruct final
OpenACCHostDataConstructClass, OpenACCDirectiveKind::HostData,
SourceLocation{}, SourceLocation{}, SourceLocation{},
/*AssociatedStmt=*/nullptr) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCHostDataConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation End,
@@ -437,9 +420,8 @@ class OpenACCHostDataConstruct final
: OpenACCAssociatedStmtConstruct(OpenACCHostDataConstructClass,
OpenACCDirectiveKind::HostData, Start,
DirectiveLoc, End, StructuredBlock) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
void setStructuredBlock(Stmt *S) { setAssociatedStmt(S); }
@@ -490,11 +472,9 @@ class OpenACCWaitConstruct final
assert(NumExprs >= 1 &&
"NumExprs should always be >= 1 because the 'devnum' "
"expr is represented by a null if necessary");
- std::uninitialized_value_construct(getExprPtr(),
- getExprPtr() + NumExprs);
- std::uninitialized_value_construct(getTrailingObjects<OpenACCClause *>(),
- getTrailingObjects<OpenACCClause *>() +
- NumClauses);
+ std::uninitialized_value_construct_n(getExprPtr(), NumExprs);
+ std::uninitialized_value_construct_n(getTrailingObjects<OpenACCClause *>(),
+ NumClauses);
setClauseList(MutableArrayRef(const_cast<const OpenACCClause **>(
getTrailingObjects<OpenACCClause *>()),
NumClauses));
@@ -533,13 +513,9 @@ class OpenACCWaitConstruct final
return const_cast<Expr**>(getTrailingObjects<Expr *>());
}
- llvm::ArrayRef<Expr *> getExprs() const {
- return llvm::ArrayRef<Expr *>(getExprPtr(), NumExprs);
- }
+ ArrayRef<Expr *> getExprs() const { return {getExprPtr(), NumExprs}; }
- llvm::ArrayRef<Expr *> getExprs() {
- return llvm::ArrayRef<Expr *>(getExprPtr(), NumExprs);
- }
+ ArrayRef<Expr *> getExprs() { return {getExprPtr(), NumExprs}; }
public:
static bool classof(const Stmt *T) {
@@ -597,8 +573,7 @@ class OpenACCCacheConstruct final
OpenACCDirectiveKind::Cache, SourceLocation{},
SourceLocation{}, SourceLocation{}),
NumVars(NumVars) {
- std::uninitialized_value_construct(getVarListPtr(),
- getVarListPtr() + NumVars);
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumVars);
}
OpenACCCacheConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation LParenLoc, SourceLocation ReadOnlyLoc,
@@ -610,21 +585,13 @@ class OpenACCCacheConstruct final
ParensLoc(LParenLoc, RParenLoc), ReadOnlyLoc(ReadOnlyLoc),
NumVars(VarList.size()) {
- llvm::uninitialized_copy(VarList, getVarListPtr());
- }
-
- Expr **getVarListPtr() const {
- return const_cast<Expr **>(getTrailingObjects<Expr *>());
+ llvm::uninitialized_copy(VarList, getTrailingObjects());
}
public:
- llvm::ArrayRef<Expr *> getVarList() const {
- return llvm::ArrayRef<Expr *>(getVarListPtr(), NumVars);
- }
+ ArrayRef<Expr *> getVarList() const { return getTrailingObjects(NumVars); }
- llvm::ArrayRef<Expr *> getVarList() {
- return llvm::ArrayRef<Expr *>(getVarListPtr(), NumVars);
- }
+ MutableArrayRef<Expr *> getVarList() { return getTrailingObjects(NumVars); }
static bool classof(const Stmt *T) {
return T->getStmtClass() == OpenACCCacheConstructClass;
@@ -644,12 +611,12 @@ class OpenACCCacheConstruct final
SourceLocation getReadOnlyLoc() const { return ReadOnlyLoc; }
child_range children() {
- Stmt **Begin = reinterpret_cast<Stmt **>(getVarListPtr());
+ Stmt **Begin = reinterpret_cast<Stmt **>(getTrailingObjects());
return child_range(Begin, Begin + NumVars);
}
const_child_range children() const {
- Stmt *const *Begin = reinterpret_cast<Stmt *const *>(getVarListPtr());
+ Stmt *const *Begin = reinterpret_cast<Stmt *const *>(getTrailingObjects());
return const_child_range(Begin, Begin + NumVars);
}
};
@@ -664,10 +631,8 @@ class OpenACCInitConstruct final
: OpenACCConstructStmt(OpenACCInitConstructClass,
OpenACCDirectiveKind::Init, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCInitConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation End,
@@ -675,9 +640,8 @@ class OpenACCInitConstruct final
: OpenACCConstructStmt(OpenACCInitConstructClass,
OpenACCDirectiveKind::Init, Start, DirectiveLoc,
End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -702,10 +666,8 @@ class OpenACCShutdownConstruct final
: OpenACCConstructStmt(OpenACCShutdownConstructClass,
OpenACCDirectiveKind::Shutdown, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCShutdownConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
SourceLocation End,
@@ -713,9 +675,8 @@ class OpenACCShutdownConstruct final
: OpenACCConstructStmt(OpenACCShutdownConstructClass,
OpenACCDirectiveKind::Shutdown, Start,
DirectiveLoc, End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -739,10 +700,8 @@ class OpenACCSetConstruct final
: OpenACCConstructStmt(OpenACCSetConstructClass,
OpenACCDirectiveKind::Set, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCSetConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
@@ -751,9 +710,8 @@ class OpenACCSetConstruct final
: OpenACCConstructStmt(OpenACCSetConstructClass,
OpenACCDirectiveKind::Set, Start, DirectiveLoc,
End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -777,9 +735,7 @@ class OpenACCUpdateConstruct final
: OpenACCConstructStmt(OpenACCUpdateConstructClass,
OpenACCDirectiveKind::Update, SourceLocation{},
SourceLocation{}, SourceLocation{}) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
}
@@ -789,9 +745,8 @@ class OpenACCUpdateConstruct final
: OpenACCConstructStmt(OpenACCUpdateConstructClass,
OpenACCDirectiveKind::Update, Start, DirectiveLoc,
End) {
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
+ setClauseList(getTrailingObjects(Clauses.size()));
}
public:
@@ -821,10 +776,8 @@ class OpenACCAtomicConstruct final
OpenACCAtomicConstructClass, OpenACCDirectiveKind::Atomic,
SourceLocation{}, SourceLocation{}, SourceLocation{},
/*AssociatedStmt=*/nullptr) {
- std::uninitialized_value_construct(
- getTrailingObjects<const OpenACCClause *>(),
- getTrailingObjects<const OpenACCClause *>() + NumClauses);
- setClauseList(getTrailingObjects<const OpenACCClause *>(NumClauses));
+ std::uninitialized_value_construct_n(getTrailingObjects(), NumClauses);
+ setClauseList(getTrailingObjects(NumClauses));
}
OpenACCAtomicConstruct(SourceLocation Start, SourceLocation DirectiveLoc,
@@ -836,10 +789,9 @@ class OpenACCAtomicConstruct final
DirectiveLoc, End, AssociatedStmt),
AtomicKind(AtKind) {
// Initialize the trailing storage.
- llvm::uninitialized_copy(Clauses,
- getTrailingObjects<const OpenACCClause *>());
+ llvm::uninitialized_copy(Clauses, getTrailingObjects());
- setClauseList(getTrailingObjects<const OpenACCClause *>(Clauses.size()));
+ setClauseList(getTrailingObjects(Clauses.size()));
}
void setAssociatedStmt(Stmt *S) {
diff --git a/clang/lib/AST/StmtOpenACC.cpp b/clang/lib/AST/StmtOpenACC.cpp
i...
[truncated]
|
llvm#140087) Adopt non-templated and array-ref returning forms of `getTrailingObjects` in DeclOpenACC and StmtOpenACC. Also use std::uninitialized_contruct_n to make the code a little concise.
llvm#140087) Adopt non-templated and array-ref returning forms of `getTrailingObjects` in DeclOpenACC and StmtOpenACC. Also use std::uninitialized_contruct_n to make the code a little concise.
Adopt non-templated and array-ref returning forms of
getTrailingObjects
in DeclOpenACC and StmtOpenACC. Also use std::uninitialized_contruct_n to make the code a little concise.