|
@@ -1802,896 +1802,6 @@ void ASTStmtReader::VisitAsTypeExpr(AsTypeExpr *E) {
|
|
E->SrcExpr = Record.readSubExpr();
|
|
E->SrcExpr = Record.readSubExpr();
|
|
}
|
|
}
|
|
|
|
|
|
-//===----------------------------------------------------------------------===//
|
|
|
|
-// OpenMP Clauses.
|
|
|
|
-//===----------------------------------------------------------------------===//
|
|
|
|
-
|
|
|
|
-namespace clang {
|
|
|
|
-
|
|
|
|
-class OMPClauseReader : public OMPClauseVisitor<OMPClauseReader> {
|
|
|
|
- ASTStmtReader *Reader;
|
|
|
|
- ASTContext &Context;
|
|
|
|
-
|
|
|
|
-public:
|
|
|
|
- OMPClauseReader(ASTStmtReader *R, ASTRecordReader &Record)
|
|
|
|
- : Reader(R), Context(Record.getContext()) {}
|
|
|
|
-
|
|
|
|
-#define OPENMP_CLAUSE(Name, Class) void Visit##Class(Class *C);
|
|
|
|
-#include "clang/Basic/OpenMPKinds.def"
|
|
|
|
- OMPClause *readClause();
|
|
|
|
- void VisitOMPClauseWithPreInit(OMPClauseWithPreInit *C);
|
|
|
|
- void VisitOMPClauseWithPostUpdate(OMPClauseWithPostUpdate *C);
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-} // namespace clang
|
|
|
|
-
|
|
|
|
-OMPClause *OMPClauseReader::readClause() {
|
|
|
|
- OMPClause *C;
|
|
|
|
- switch (Reader->Record.readInt()) {
|
|
|
|
- case OMPC_if:
|
|
|
|
- C = new (Context) OMPIfClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_final:
|
|
|
|
- C = new (Context) OMPFinalClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_num_threads:
|
|
|
|
- C = new (Context) OMPNumThreadsClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_safelen:
|
|
|
|
- C = new (Context) OMPSafelenClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_simdlen:
|
|
|
|
- C = new (Context) OMPSimdlenClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_collapse:
|
|
|
|
- C = new (Context) OMPCollapseClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_default:
|
|
|
|
- C = new (Context) OMPDefaultClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_proc_bind:
|
|
|
|
- C = new (Context) OMPProcBindClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_schedule:
|
|
|
|
- C = new (Context) OMPScheduleClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_ordered:
|
|
|
|
- C = OMPOrderedClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_nowait:
|
|
|
|
- C = new (Context) OMPNowaitClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_untied:
|
|
|
|
- C = new (Context) OMPUntiedClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_mergeable:
|
|
|
|
- C = new (Context) OMPMergeableClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_read:
|
|
|
|
- C = new (Context) OMPReadClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_write:
|
|
|
|
- C = new (Context) OMPWriteClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_update:
|
|
|
|
- C = new (Context) OMPUpdateClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_capture:
|
|
|
|
- C = new (Context) OMPCaptureClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_seq_cst:
|
|
|
|
- C = new (Context) OMPSeqCstClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_threads:
|
|
|
|
- C = new (Context) OMPThreadsClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_simd:
|
|
|
|
- C = new (Context) OMPSIMDClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_nogroup:
|
|
|
|
- C = new (Context) OMPNogroupClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_private:
|
|
|
|
- C = OMPPrivateClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_firstprivate:
|
|
|
|
- C = OMPFirstprivateClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_lastprivate:
|
|
|
|
- C = OMPLastprivateClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_shared:
|
|
|
|
- C = OMPSharedClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_reduction:
|
|
|
|
- C = OMPReductionClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_task_reduction:
|
|
|
|
- C = OMPTaskReductionClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_in_reduction:
|
|
|
|
- C = OMPInReductionClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_linear:
|
|
|
|
- C = OMPLinearClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_aligned:
|
|
|
|
- C = OMPAlignedClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_copyin:
|
|
|
|
- C = OMPCopyinClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_copyprivate:
|
|
|
|
- C = OMPCopyprivateClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_flush:
|
|
|
|
- C = OMPFlushClause::CreateEmpty(Context, Reader->Record.readInt());
|
|
|
|
- break;
|
|
|
|
- case OMPC_depend: {
|
|
|
|
- unsigned NumVars = Reader->Record.readInt();
|
|
|
|
- unsigned NumLoops = Reader->Record.readInt();
|
|
|
|
- C = OMPDependClause::CreateEmpty(Context, NumVars, NumLoops);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- case OMPC_device:
|
|
|
|
- C = new (Context) OMPDeviceClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_map: {
|
|
|
|
- unsigned NumVars = Reader->Record.readInt();
|
|
|
|
- unsigned NumDeclarations = Reader->Record.readInt();
|
|
|
|
- unsigned NumLists = Reader->Record.readInt();
|
|
|
|
- unsigned NumComponents = Reader->Record.readInt();
|
|
|
|
- C = OMPMapClause::CreateEmpty(Context, NumVars, NumDeclarations, NumLists,
|
|
|
|
- NumComponents);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- case OMPC_num_teams:
|
|
|
|
- C = new (Context) OMPNumTeamsClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_thread_limit:
|
|
|
|
- C = new (Context) OMPThreadLimitClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_priority:
|
|
|
|
- C = new (Context) OMPPriorityClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_grainsize:
|
|
|
|
- C = new (Context) OMPGrainsizeClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_num_tasks:
|
|
|
|
- C = new (Context) OMPNumTasksClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_hint:
|
|
|
|
- C = new (Context) OMPHintClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_dist_schedule:
|
|
|
|
- C = new (Context) OMPDistScheduleClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_defaultmap:
|
|
|
|
- C = new (Context) OMPDefaultmapClause();
|
|
|
|
- break;
|
|
|
|
- case OMPC_to: {
|
|
|
|
- unsigned NumVars = Reader->Record.readInt();
|
|
|
|
- unsigned NumDeclarations = Reader->Record.readInt();
|
|
|
|
- unsigned NumLists = Reader->Record.readInt();
|
|
|
|
- unsigned NumComponents = Reader->Record.readInt();
|
|
|
|
- C = OMPToClause::CreateEmpty(Context, NumVars, NumDeclarations, NumLists,
|
|
|
|
- NumComponents);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- case OMPC_from: {
|
|
|
|
- unsigned NumVars = Reader->Record.readInt();
|
|
|
|
- unsigned NumDeclarations = Reader->Record.readInt();
|
|
|
|
- unsigned NumLists = Reader->Record.readInt();
|
|
|
|
- unsigned NumComponents = Reader->Record.readInt();
|
|
|
|
- C = OMPFromClause::CreateEmpty(Context, NumVars, NumDeclarations, NumLists,
|
|
|
|
- NumComponents);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- case OMPC_use_device_ptr: {
|
|
|
|
- unsigned NumVars = Reader->Record.readInt();
|
|
|
|
- unsigned NumDeclarations = Reader->Record.readInt();
|
|
|
|
- unsigned NumLists = Reader->Record.readInt();
|
|
|
|
- unsigned NumComponents = Reader->Record.readInt();
|
|
|
|
- C = OMPUseDevicePtrClause::CreateEmpty(Context, NumVars, NumDeclarations,
|
|
|
|
- NumLists, NumComponents);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- case OMPC_is_device_ptr: {
|
|
|
|
- unsigned NumVars = Reader->Record.readInt();
|
|
|
|
- unsigned NumDeclarations = Reader->Record.readInt();
|
|
|
|
- unsigned NumLists = Reader->Record.readInt();
|
|
|
|
- unsigned NumComponents = Reader->Record.readInt();
|
|
|
|
- C = OMPIsDevicePtrClause::CreateEmpty(Context, NumVars, NumDeclarations,
|
|
|
|
- NumLists, NumComponents);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- Visit(C);
|
|
|
|
- C->setLocStart(Reader->ReadSourceLocation());
|
|
|
|
- C->setLocEnd(Reader->ReadSourceLocation());
|
|
|
|
-
|
|
|
|
- return C;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPClauseWithPreInit(OMPClauseWithPreInit *C) {
|
|
|
|
- C->setPreInitStmt(Reader->Record.readSubStmt(),
|
|
|
|
- static_cast<OpenMPDirectiveKind>(Reader->Record.readInt()));
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPClauseWithPostUpdate(OMPClauseWithPostUpdate *C) {
|
|
|
|
- VisitOMPClauseWithPreInit(C);
|
|
|
|
- C->setPostUpdateExpr(Reader->Record.readSubExpr());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPIfClause(OMPIfClause *C) {
|
|
|
|
- VisitOMPClauseWithPreInit(C);
|
|
|
|
- C->setNameModifier(static_cast<OpenMPDirectiveKind>(Reader->Record.readInt()));
|
|
|
|
- C->setNameModifierLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setColonLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setCondition(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPFinalClause(OMPFinalClause *C) {
|
|
|
|
- C->setCondition(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPNumThreadsClause(OMPNumThreadsClause *C) {
|
|
|
|
- VisitOMPClauseWithPreInit(C);
|
|
|
|
- C->setNumThreads(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPSafelenClause(OMPSafelenClause *C) {
|
|
|
|
- C->setSafelen(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPSimdlenClause(OMPSimdlenClause *C) {
|
|
|
|
- C->setSimdlen(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPCollapseClause(OMPCollapseClause *C) {
|
|
|
|
- C->setNumForLoops(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPDefaultClause(OMPDefaultClause *C) {
|
|
|
|
- C->setDefaultKind(
|
|
|
|
- static_cast<OpenMPDefaultClauseKind>(Reader->Record.readInt()));
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setDefaultKindKwLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPProcBindClause(OMPProcBindClause *C) {
|
|
|
|
- C->setProcBindKind(
|
|
|
|
- static_cast<OpenMPProcBindClauseKind>(Reader->Record.readInt()));
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setProcBindKindKwLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPScheduleClause(OMPScheduleClause *C) {
|
|
|
|
- VisitOMPClauseWithPreInit(C);
|
|
|
|
- C->setScheduleKind(
|
|
|
|
- static_cast<OpenMPScheduleClauseKind>(Reader->Record.readInt()));
|
|
|
|
- C->setFirstScheduleModifier(
|
|
|
|
- static_cast<OpenMPScheduleClauseModifier>(Reader->Record.readInt()));
|
|
|
|
- C->setSecondScheduleModifier(
|
|
|
|
- static_cast<OpenMPScheduleClauseModifier>(Reader->Record.readInt()));
|
|
|
|
- C->setChunkSize(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setFirstScheduleModifierLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setSecondScheduleModifierLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setScheduleKindLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setCommaLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPOrderedClause(OMPOrderedClause *C) {
|
|
|
|
- C->setNumForLoops(Reader->Record.readSubExpr());
|
|
|
|
- for (unsigned I = 0, E = C->NumberOfLoops; I < E; ++I)
|
|
|
|
- C->setLoopNumIterations(I, Reader->Record.readSubExpr());
|
|
|
|
- for (unsigned I = 0, E = C->NumberOfLoops; I < E; ++I)
|
|
|
|
- C->setLoopCounter(I, Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPNowaitClause(OMPNowaitClause *) {}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPUntiedClause(OMPUntiedClause *) {}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPMergeableClause(OMPMergeableClause *) {}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPReadClause(OMPReadClause *) {}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPWriteClause(OMPWriteClause *) {}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPUpdateClause(OMPUpdateClause *) {}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPCaptureClause(OMPCaptureClause *) {}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPSeqCstClause(OMPSeqCstClause *) {}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPThreadsClause(OMPThreadsClause *) {}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPSIMDClause(OMPSIMDClause *) {}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPNogroupClause(OMPNogroupClause *) {}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPPrivateClause(OMPPrivateClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setPrivateCopies(Vars);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPFirstprivateClause(OMPFirstprivateClause *C) {
|
|
|
|
- VisitOMPClauseWithPreInit(C);
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setPrivateCopies(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setInits(Vars);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPLastprivateClause(OMPLastprivateClause *C) {
|
|
|
|
- VisitOMPClauseWithPostUpdate(C);
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setPrivateCopies(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setSourceExprs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setDestinationExprs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setAssignmentOps(Vars);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPSharedClause(OMPSharedClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPReductionClause(OMPReductionClause *C) {
|
|
|
|
- VisitOMPClauseWithPostUpdate(C);
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setColonLoc(Reader->ReadSourceLocation());
|
|
|
|
- NestedNameSpecifierLoc NNSL = Reader->Record.readNestedNameSpecifierLoc();
|
|
|
|
- DeclarationNameInfo DNI;
|
|
|
|
- Reader->ReadDeclarationNameInfo(DNI);
|
|
|
|
- C->setQualifierLoc(NNSL);
|
|
|
|
- C->setNameInfo(DNI);
|
|
|
|
-
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setPrivates(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setLHSExprs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setRHSExprs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setReductionOps(Vars);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPTaskReductionClause(OMPTaskReductionClause *C) {
|
|
|
|
- VisitOMPClauseWithPostUpdate(C);
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setColonLoc(Reader->ReadSourceLocation());
|
|
|
|
- NestedNameSpecifierLoc NNSL = Reader->Record.readNestedNameSpecifierLoc();
|
|
|
|
- DeclarationNameInfo DNI;
|
|
|
|
- Reader->ReadDeclarationNameInfo(DNI);
|
|
|
|
- C->setQualifierLoc(NNSL);
|
|
|
|
- C->setNameInfo(DNI);
|
|
|
|
-
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setPrivates(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setLHSExprs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setRHSExprs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setReductionOps(Vars);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPInReductionClause(OMPInReductionClause *C) {
|
|
|
|
- VisitOMPClauseWithPostUpdate(C);
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setColonLoc(Reader->ReadSourceLocation());
|
|
|
|
- NestedNameSpecifierLoc NNSL = Reader->Record.readNestedNameSpecifierLoc();
|
|
|
|
- DeclarationNameInfo DNI;
|
|
|
|
- Reader->ReadDeclarationNameInfo(DNI);
|
|
|
|
- C->setQualifierLoc(NNSL);
|
|
|
|
- C->setNameInfo(DNI);
|
|
|
|
-
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setPrivates(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setLHSExprs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setRHSExprs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setReductionOps(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setTaskgroupDescriptors(Vars);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPLinearClause(OMPLinearClause *C) {
|
|
|
|
- VisitOMPClauseWithPostUpdate(C);
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setColonLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setModifier(static_cast<OpenMPLinearClauseKind>(Reader->Record.readInt()));
|
|
|
|
- C->setModifierLoc(Reader->ReadSourceLocation());
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setPrivates(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setInits(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setUpdates(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setFinals(Vars);
|
|
|
|
- C->setStep(Reader->Record.readSubExpr());
|
|
|
|
- C->setCalcStep(Reader->Record.readSubExpr());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPAlignedClause(OMPAlignedClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setColonLoc(Reader->ReadSourceLocation());
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
- C->setAlignment(Reader->Record.readSubExpr());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPCopyinClause(OMPCopyinClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Exprs;
|
|
|
|
- Exprs.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Exprs.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Exprs);
|
|
|
|
- Exprs.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Exprs.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setSourceExprs(Exprs);
|
|
|
|
- Exprs.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Exprs.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setDestinationExprs(Exprs);
|
|
|
|
- Exprs.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Exprs.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setAssignmentOps(Exprs);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPCopyprivateClause(OMPCopyprivateClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Exprs;
|
|
|
|
- Exprs.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Exprs.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Exprs);
|
|
|
|
- Exprs.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Exprs.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setSourceExprs(Exprs);
|
|
|
|
- Exprs.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Exprs.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setDestinationExprs(Exprs);
|
|
|
|
- Exprs.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Exprs.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setAssignmentOps(Exprs);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPFlushClause(OMPFlushClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPDependClause(OMPDependClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setDependencyKind(
|
|
|
|
- static_cast<OpenMPDependClauseKind>(Reader->Record.readInt()));
|
|
|
|
- C->setDependencyLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setColonLoc(Reader->ReadSourceLocation());
|
|
|
|
- unsigned NumVars = C->varlist_size();
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned I = 0; I != NumVars; ++I)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
- for (unsigned I = 0, E = C->getNumLoops(); I < E; ++I)
|
|
|
|
- C->setLoopData(I, Reader->Record.readSubExpr());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPDeviceClause(OMPDeviceClause *C) {
|
|
|
|
- VisitOMPClauseWithPreInit(C);
|
|
|
|
- C->setDevice(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPMapClause(OMPMapClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setMapTypeModifier(
|
|
|
|
- static_cast<OpenMPMapClauseKind>(Reader->Record.readInt()));
|
|
|
|
- C->setMapType(
|
|
|
|
- static_cast<OpenMPMapClauseKind>(Reader->Record.readInt()));
|
|
|
|
- C->setMapLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setColonLoc(Reader->ReadSourceLocation());
|
|
|
|
- auto NumVars = C->varlist_size();
|
|
|
|
- auto UniqueDecls = C->getUniqueDeclarationsNum();
|
|
|
|
- auto TotalLists = C->getTotalComponentListNum();
|
|
|
|
- auto TotalComponents = C->getTotalComponentsNum();
|
|
|
|
-
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
-
|
|
|
|
- SmallVector<ValueDecl *, 16> Decls;
|
|
|
|
- Decls.reserve(UniqueDecls);
|
|
|
|
- for (unsigned i = 0; i < UniqueDecls; ++i)
|
|
|
|
- Decls.push_back(Reader->Record.readDeclAs<ValueDecl>());
|
|
|
|
- C->setUniqueDecls(Decls);
|
|
|
|
-
|
|
|
|
- SmallVector<unsigned, 16> ListsPerDecl;
|
|
|
|
- ListsPerDecl.reserve(UniqueDecls);
|
|
|
|
- for (unsigned i = 0; i < UniqueDecls; ++i)
|
|
|
|
- ListsPerDecl.push_back(Reader->Record.readInt());
|
|
|
|
- C->setDeclNumLists(ListsPerDecl);
|
|
|
|
-
|
|
|
|
- SmallVector<unsigned, 32> ListSizes;
|
|
|
|
- ListSizes.reserve(TotalLists);
|
|
|
|
- for (unsigned i = 0; i < TotalLists; ++i)
|
|
|
|
- ListSizes.push_back(Reader->Record.readInt());
|
|
|
|
- C->setComponentListSizes(ListSizes);
|
|
|
|
-
|
|
|
|
- SmallVector<OMPClauseMappableExprCommon::MappableComponent, 32> Components;
|
|
|
|
- Components.reserve(TotalComponents);
|
|
|
|
- for (unsigned i = 0; i < TotalComponents; ++i) {
|
|
|
|
- Expr *AssociatedExpr = Reader->Record.readSubExpr();
|
|
|
|
- auto *AssociatedDecl = Reader->Record.readDeclAs<ValueDecl>();
|
|
|
|
- Components.push_back(OMPClauseMappableExprCommon::MappableComponent(
|
|
|
|
- AssociatedExpr, AssociatedDecl));
|
|
|
|
- }
|
|
|
|
- C->setComponents(Components, ListSizes);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPNumTeamsClause(OMPNumTeamsClause *C) {
|
|
|
|
- VisitOMPClauseWithPreInit(C);
|
|
|
|
- C->setNumTeams(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPThreadLimitClause(OMPThreadLimitClause *C) {
|
|
|
|
- VisitOMPClauseWithPreInit(C);
|
|
|
|
- C->setThreadLimit(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPPriorityClause(OMPPriorityClause *C) {
|
|
|
|
- C->setPriority(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPGrainsizeClause(OMPGrainsizeClause *C) {
|
|
|
|
- C->setGrainsize(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPNumTasksClause(OMPNumTasksClause *C) {
|
|
|
|
- C->setNumTasks(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPHintClause(OMPHintClause *C) {
|
|
|
|
- C->setHint(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPDistScheduleClause(OMPDistScheduleClause *C) {
|
|
|
|
- VisitOMPClauseWithPreInit(C);
|
|
|
|
- C->setDistScheduleKind(
|
|
|
|
- static_cast<OpenMPDistScheduleClauseKind>(Reader->Record.readInt()));
|
|
|
|
- C->setChunkSize(Reader->Record.readSubExpr());
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setDistScheduleKindLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setCommaLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPDefaultmapClause(OMPDefaultmapClause *C) {
|
|
|
|
- C->setDefaultmapKind(
|
|
|
|
- static_cast<OpenMPDefaultmapClauseKind>(Reader->Record.readInt()));
|
|
|
|
- C->setDefaultmapModifier(
|
|
|
|
- static_cast<OpenMPDefaultmapClauseModifier>(Reader->Record.readInt()));
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setDefaultmapModifierLoc(Reader->ReadSourceLocation());
|
|
|
|
- C->setDefaultmapKindLoc(Reader->ReadSourceLocation());
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPToClause(OMPToClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- auto NumVars = C->varlist_size();
|
|
|
|
- auto UniqueDecls = C->getUniqueDeclarationsNum();
|
|
|
|
- auto TotalLists = C->getTotalComponentListNum();
|
|
|
|
- auto TotalComponents = C->getTotalComponentsNum();
|
|
|
|
-
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
-
|
|
|
|
- SmallVector<ValueDecl *, 16> Decls;
|
|
|
|
- Decls.reserve(UniqueDecls);
|
|
|
|
- for (unsigned i = 0; i < UniqueDecls; ++i)
|
|
|
|
- Decls.push_back(Reader->Record.readDeclAs<ValueDecl>());
|
|
|
|
- C->setUniqueDecls(Decls);
|
|
|
|
-
|
|
|
|
- SmallVector<unsigned, 16> ListsPerDecl;
|
|
|
|
- ListsPerDecl.reserve(UniqueDecls);
|
|
|
|
- for (unsigned i = 0; i < UniqueDecls; ++i)
|
|
|
|
- ListsPerDecl.push_back(Reader->Record.readInt());
|
|
|
|
- C->setDeclNumLists(ListsPerDecl);
|
|
|
|
-
|
|
|
|
- SmallVector<unsigned, 32> ListSizes;
|
|
|
|
- ListSizes.reserve(TotalLists);
|
|
|
|
- for (unsigned i = 0; i < TotalLists; ++i)
|
|
|
|
- ListSizes.push_back(Reader->Record.readInt());
|
|
|
|
- C->setComponentListSizes(ListSizes);
|
|
|
|
-
|
|
|
|
- SmallVector<OMPClauseMappableExprCommon::MappableComponent, 32> Components;
|
|
|
|
- Components.reserve(TotalComponents);
|
|
|
|
- for (unsigned i = 0; i < TotalComponents; ++i) {
|
|
|
|
- Expr *AssociatedExpr = Reader->Record.readSubExpr();
|
|
|
|
- auto *AssociatedDecl = Reader->Record.readDeclAs<ValueDecl>();
|
|
|
|
- Components.push_back(OMPClauseMappableExprCommon::MappableComponent(
|
|
|
|
- AssociatedExpr, AssociatedDecl));
|
|
|
|
- }
|
|
|
|
- C->setComponents(Components, ListSizes);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPFromClause(OMPFromClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- auto NumVars = C->varlist_size();
|
|
|
|
- auto UniqueDecls = C->getUniqueDeclarationsNum();
|
|
|
|
- auto TotalLists = C->getTotalComponentListNum();
|
|
|
|
- auto TotalComponents = C->getTotalComponentsNum();
|
|
|
|
-
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
-
|
|
|
|
- SmallVector<ValueDecl *, 16> Decls;
|
|
|
|
- Decls.reserve(UniqueDecls);
|
|
|
|
- for (unsigned i = 0; i < UniqueDecls; ++i)
|
|
|
|
- Decls.push_back(Reader->Record.readDeclAs<ValueDecl>());
|
|
|
|
- C->setUniqueDecls(Decls);
|
|
|
|
-
|
|
|
|
- SmallVector<unsigned, 16> ListsPerDecl;
|
|
|
|
- ListsPerDecl.reserve(UniqueDecls);
|
|
|
|
- for (unsigned i = 0; i < UniqueDecls; ++i)
|
|
|
|
- ListsPerDecl.push_back(Reader->Record.readInt());
|
|
|
|
- C->setDeclNumLists(ListsPerDecl);
|
|
|
|
-
|
|
|
|
- SmallVector<unsigned, 32> ListSizes;
|
|
|
|
- ListSizes.reserve(TotalLists);
|
|
|
|
- for (unsigned i = 0; i < TotalLists; ++i)
|
|
|
|
- ListSizes.push_back(Reader->Record.readInt());
|
|
|
|
- C->setComponentListSizes(ListSizes);
|
|
|
|
-
|
|
|
|
- SmallVector<OMPClauseMappableExprCommon::MappableComponent, 32> Components;
|
|
|
|
- Components.reserve(TotalComponents);
|
|
|
|
- for (unsigned i = 0; i < TotalComponents; ++i) {
|
|
|
|
- Expr *AssociatedExpr = Reader->Record.readSubExpr();
|
|
|
|
- auto *AssociatedDecl = Reader->Record.readDeclAs<ValueDecl>();
|
|
|
|
- Components.push_back(OMPClauseMappableExprCommon::MappableComponent(
|
|
|
|
- AssociatedExpr, AssociatedDecl));
|
|
|
|
- }
|
|
|
|
- C->setComponents(Components, ListSizes);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPUseDevicePtrClause(OMPUseDevicePtrClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- auto NumVars = C->varlist_size();
|
|
|
|
- auto UniqueDecls = C->getUniqueDeclarationsNum();
|
|
|
|
- auto TotalLists = C->getTotalComponentListNum();
|
|
|
|
- auto TotalComponents = C->getTotalComponentsNum();
|
|
|
|
-
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setPrivateCopies(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setInits(Vars);
|
|
|
|
-
|
|
|
|
- SmallVector<ValueDecl *, 16> Decls;
|
|
|
|
- Decls.reserve(UniqueDecls);
|
|
|
|
- for (unsigned i = 0; i < UniqueDecls; ++i)
|
|
|
|
- Decls.push_back(Reader->Record.readDeclAs<ValueDecl>());
|
|
|
|
- C->setUniqueDecls(Decls);
|
|
|
|
-
|
|
|
|
- SmallVector<unsigned, 16> ListsPerDecl;
|
|
|
|
- ListsPerDecl.reserve(UniqueDecls);
|
|
|
|
- for (unsigned i = 0; i < UniqueDecls; ++i)
|
|
|
|
- ListsPerDecl.push_back(Reader->Record.readInt());
|
|
|
|
- C->setDeclNumLists(ListsPerDecl);
|
|
|
|
-
|
|
|
|
- SmallVector<unsigned, 32> ListSizes;
|
|
|
|
- ListSizes.reserve(TotalLists);
|
|
|
|
- for (unsigned i = 0; i < TotalLists; ++i)
|
|
|
|
- ListSizes.push_back(Reader->Record.readInt());
|
|
|
|
- C->setComponentListSizes(ListSizes);
|
|
|
|
-
|
|
|
|
- SmallVector<OMPClauseMappableExprCommon::MappableComponent, 32> Components;
|
|
|
|
- Components.reserve(TotalComponents);
|
|
|
|
- for (unsigned i = 0; i < TotalComponents; ++i) {
|
|
|
|
- Expr *AssociatedExpr = Reader->Record.readSubExpr();
|
|
|
|
- auto *AssociatedDecl = Reader->Record.readDeclAs<ValueDecl>();
|
|
|
|
- Components.push_back(OMPClauseMappableExprCommon::MappableComponent(
|
|
|
|
- AssociatedExpr, AssociatedDecl));
|
|
|
|
- }
|
|
|
|
- C->setComponents(Components, ListSizes);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void OMPClauseReader::VisitOMPIsDevicePtrClause(OMPIsDevicePtrClause *C) {
|
|
|
|
- C->setLParenLoc(Reader->ReadSourceLocation());
|
|
|
|
- auto NumVars = C->varlist_size();
|
|
|
|
- auto UniqueDecls = C->getUniqueDeclarationsNum();
|
|
|
|
- auto TotalLists = C->getTotalComponentListNum();
|
|
|
|
- auto TotalComponents = C->getTotalComponentsNum();
|
|
|
|
-
|
|
|
|
- SmallVector<Expr *, 16> Vars;
|
|
|
|
- Vars.reserve(NumVars);
|
|
|
|
- for (unsigned i = 0; i != NumVars; ++i)
|
|
|
|
- Vars.push_back(Reader->Record.readSubExpr());
|
|
|
|
- C->setVarRefs(Vars);
|
|
|
|
- Vars.clear();
|
|
|
|
-
|
|
|
|
- SmallVector<ValueDecl *, 16> Decls;
|
|
|
|
- Decls.reserve(UniqueDecls);
|
|
|
|
- for (unsigned i = 0; i < UniqueDecls; ++i)
|
|
|
|
- Decls.push_back(Reader->Record.readDeclAs<ValueDecl>());
|
|
|
|
- C->setUniqueDecls(Decls);
|
|
|
|
-
|
|
|
|
- SmallVector<unsigned, 16> ListsPerDecl;
|
|
|
|
- ListsPerDecl.reserve(UniqueDecls);
|
|
|
|
- for (unsigned i = 0; i < UniqueDecls; ++i)
|
|
|
|
- ListsPerDecl.push_back(Reader->Record.readInt());
|
|
|
|
- C->setDeclNumLists(ListsPerDecl);
|
|
|
|
-
|
|
|
|
- SmallVector<unsigned, 32> ListSizes;
|
|
|
|
- ListSizes.reserve(TotalLists);
|
|
|
|
- for (unsigned i = 0; i < TotalLists; ++i)
|
|
|
|
- ListSizes.push_back(Reader->Record.readInt());
|
|
|
|
- C->setComponentListSizes(ListSizes);
|
|
|
|
-
|
|
|
|
- SmallVector<OMPClauseMappableExprCommon::MappableComponent, 32> Components;
|
|
|
|
- Components.reserve(TotalComponents);
|
|
|
|
- for (unsigned i = 0; i < TotalComponents; ++i) {
|
|
|
|
- Expr *AssociatedExpr = Reader->Record.readSubExpr();
|
|
|
|
- auto *AssociatedDecl = Reader->Record.readDeclAs<ValueDecl>();
|
|
|
|
- Components.push_back(OMPClauseMappableExprCommon::MappableComponent(
|
|
|
|
- AssociatedExpr, AssociatedDecl));
|
|
|
|
- }
|
|
|
|
- C->setComponents(Components, ListSizes);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
//===----------------------------------------------------------------------===//
|
|
// OpenMP Directives.
|
|
// OpenMP Directives.
|
|
//===----------------------------------------------------------------------===//
|
|
//===----------------------------------------------------------------------===//
|
|
@@ -2699,7 +1809,7 @@ void OMPClauseReader::VisitOMPIsDevicePtrClause(OMPIsDevicePtrClause *C) {
|
|
void ASTStmtReader::VisitOMPExecutableDirective(OMPExecutableDirective *E) {
|
|
void ASTStmtReader::VisitOMPExecutableDirective(OMPExecutableDirective *E) {
|
|
E->setLocStart(ReadSourceLocation());
|
|
E->setLocStart(ReadSourceLocation());
|
|
E->setLocEnd(ReadSourceLocation());
|
|
E->setLocEnd(ReadSourceLocation());
|
|
- OMPClauseReader ClauseReader(this, Record);
|
|
|
|
|
|
+ OMPClauseReader ClauseReader(Record);
|
|
SmallVector<OMPClause *, 5> Clauses;
|
|
SmallVector<OMPClause *, 5> Clauses;
|
|
for (unsigned i = 0; i < E->getNumClauses(); ++i)
|
|
for (unsigned i = 0; i < E->getNumClauses(); ++i)
|
|
Clauses.push_back(ClauseReader.readClause());
|
|
Clauses.push_back(ClauseReader.readClause());
|