clang 22.0.0git
CIRGenDeclOpenMP.cpp
Go to the documentation of this file.
1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This contains code to emit Decl nodes as CIR code.
10//
11//===----------------------------------------------------------------------===//
12
13#include "CIRGenFunction.h"
15
16using namespace clang;
17using namespace clang::CIRGen;
18
20 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
21 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
22 // if this decl requires we differentiate those, we probably need to split
23 // this function into multiples.
24 errorNYI(d->getSourceRange(), "OpenMP OMPThreadPrivateDecl");
25}
26
28 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
29 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
30 // if this decl requires we differentiate those, we probably need to split
31 // this function into multiples.
32 getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPThreadPrivateDecl");
33}
34
36 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
37 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
38 // if this decl requires we differentiate those, we probably need to split
39 // this function into multiples.
40 errorNYI(d->getSourceRange(), "OpenMP OMPGroupPrivateDecl");
41}
42
44 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
45 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
46 // if this decl requires we differentiate those, we probably need to split
47 // this function into multiples.
48 getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPGroupPrivateDecl");
49}
50
52 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
53 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
54 // if this decl requires we differentiate those, we probably need to split
55 // this function into multiples.
56 errorNYI(d->getSourceRange(), "OpenMP OMPCapturedExpr");
57}
58
60 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
61 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
62 // if this decl requires we differentiate those, we probably need to split
63 // this function into multiples.
64 getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPCapturedExpr");
65}
66
68 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
69 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
70 // if this decl requires we differentiate those, we probably need to split
71 // this function into multiples.
72 errorNYI(d->getSourceRange(), "OpenMP OMPAllocateDecl");
73}
74
76 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
77 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
78 // if this decl requires we differentiate those, we probably need to split
79 // this function into multiples.
80 getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPAllocateDecl");
81}
82
84 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
85 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
86 // if this decl requires we differentiate those, we probably need to split
87 // this function into multiples.
88 errorNYI(d->getSourceRange(), "OpenMP OMPDeclareReduction");
89}
90
92 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
93 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
94 // if this decl requires we differentiate those, we probably need to split
95 // this function into multiples.
96 getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPDeclareReduction");
97}
98
100 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
101 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
102 // if this decl requires we differentiate those, we probably need to split
103 // this function into multiples.
104 errorNYI(d->getSourceRange(), "OpenMP OMPDeclareMapper");
105}
106
108 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
109 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
110 // if this decl requires we differentiate those, we probably need to split
111 // this function into multiples.
112 getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPDeclareMapper");
113}
114
116 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
117 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
118 // if this decl requires we differentiate those, we probably need to split
119 // this function into multiples.
120 errorNYI(d->getSourceRange(), "OpenMP OMPRequiresDecl");
121}
122
124 // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and
125 // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so
126 // if this decl requires we differentiate those, we probably need to split
127 // this function into multiples.
128 getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPRequiresDecl");
129}
This file defines OpenMP nodes for declarative directives.
void emitOMPRequiresDecl(const OMPRequiresDecl &d)
void emitOMPDeclareReduction(const OMPDeclareReductionDecl &d)
void emitOMPAllocateDecl(const OMPAllocateDecl &d)
void emitOMPDeclareMapper(const OMPDeclareMapperDecl &d)
void emitOMPThreadPrivateDecl(const OMPThreadPrivateDecl &d)
void emitOMPGroupPrivateDecl(const OMPGroupPrivateDecl &d)
void emitOMPCapturedExpr(const OMPCapturedExprDecl &d)
DiagnosticBuilder errorNYI(SourceLocation, llvm::StringRef)
Helpers to emit "not yet implemented" error diagnostics.
void emitOMPDeclareMapper(const OMPDeclareMapperDecl *d)
void emitOMPCapturedExpr(const OMPCapturedExprDecl *d)
void emitOMPRequiresDecl(const OMPRequiresDecl *d)
void emitOMPAllocateDecl(const OMPAllocateDecl *d)
void emitOMPDeclareReduction(const OMPDeclareReductionDecl *d)
void emitOMPThreadPrivateDecl(const OMPThreadPrivateDecl *d)
void emitOMPGroupPrivateDecl(const OMPGroupPrivateDecl *d)
virtual SourceRange getSourceRange() const LLVM_READONLY
Source range that this declaration covers.
Definition DeclBase.h:427
This represents 'pragma omp allocate ...' directive.
Definition DeclOpenMP.h:536
Pseudo declaration for capturing expressions.
Definition DeclOpenMP.h:445
SourceRange getSourceRange() const override LLVM_READONLY
Source range that this declaration covers.
This represents 'pragma omp declare mapper ...' directive.
Definition DeclOpenMP.h:349
This represents 'pragma omp declare reduction ...' directive.
Definition DeclOpenMP.h:239
This represents 'pragma omp groupprivate ...' directive.
Definition DeclOpenMP.h:173
This represents 'pragma omp requires...' directive.
Definition DeclOpenMP.h:479
This represents 'pragma omp threadprivate ...' directive.
Definition DeclOpenMP.h:110
The JSON file list parser is used to communicate input to InstallAPI.