[OpenMP][NFC] Minimize memory usage and copying of `OMPTraitInfo`s
See rational here: https://reviews.llvm.org/D71830#1922656
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D76173
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp
index 77f15bc..fbd6892 100644
--- a/clang/lib/Serialization/ASTReader.cpp
+++ b/clang/lib/Serialization/ASTReader.cpp
@@ -12684,8 +12684,8 @@
C->setKindKwLoc(Record.readSourceLocation());
}
-OMPTraitInfo ASTRecordReader::readOMPTraitInfo() {
- OMPTraitInfo TI;
+OMPTraitInfo *ASTRecordReader::readOMPTraitInfo() {
+ OMPTraitInfo &TI = getContext().getNewOMPTraitInfo();
TI.Sets.resize(readUInt32());
for (auto &Set : TI.Sets) {
Set.Kind = readEnum<llvm::omp::TraitSet>();
@@ -12700,5 +12700,5 @@
Property.Kind = readEnum<llvm::omp::TraitProperty>();
}
}
- return TI;
+ return &TI;
}
diff --git a/clang/lib/Serialization/ASTReaderDecl.cpp b/clang/lib/Serialization/ASTReaderDecl.cpp
index bb2ecb5..3bd7b82 100644
--- a/clang/lib/Serialization/ASTReaderDecl.cpp
+++ b/clang/lib/Serialization/ASTReaderDecl.cpp
@@ -2744,7 +2744,7 @@
return Reader.readVersionTuple();
}
- OMPTraitInfo readOMPTraitInfo() { return Reader.readOMPTraitInfo(); }
+ OMPTraitInfo *readOMPTraitInfo() { return Reader.readOMPTraitInfo(); }
template <typename T> T *GetLocalDeclAs(uint32_t LocalID) {
return Reader.GetLocalDeclAs<T>(LocalID);
diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp
index 9ccebae..f308246 100644
--- a/clang/lib/Serialization/ASTWriter.cpp
+++ b/clang/lib/Serialization/ASTWriter.cpp
@@ -6624,9 +6624,9 @@
Record.AddSourceLocation(C->getKindKwLoc());
}
-void ASTRecordWriter::writeOMPTraitInfo(const OMPTraitInfo &TI) {
- writeUInt32(TI.Sets.size());
- for (const auto &Set : TI.Sets) {
+void ASTRecordWriter::writeOMPTraitInfo(const OMPTraitInfo *TI) {
+ writeUInt32(TI->Sets.size());
+ for (const auto &Set : TI->Sets) {
writeEnum(Set.Kind);
writeUInt32(Set.Selectors.size());
for (const auto &Selector : Set.Selectors) {