| //===----------------------------------------------------------------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This contains code to emit Decl nodes as CIR code. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "CIRGenFunction.h" |
| #include "clang/AST/DeclOpenMP.h" |
| |
| using namespace clang; |
| using namespace clang::CIRGen; |
| |
| void CIRGenModule::emitOMPThreadPrivateDecl(const OMPThreadPrivateDecl *d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| errorNYI(d->getSourceRange(), "OpenMP OMPThreadPrivateDecl"); |
| } |
| |
| void CIRGenFunction::emitOMPThreadPrivateDecl(const OMPThreadPrivateDecl &d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPThreadPrivateDecl"); |
| } |
| |
| void CIRGenModule::emitOMPGroupPrivateDecl(const OMPGroupPrivateDecl *d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| errorNYI(d->getSourceRange(), "OpenMP OMPGroupPrivateDecl"); |
| } |
| |
| void CIRGenFunction::emitOMPGroupPrivateDecl(const OMPGroupPrivateDecl &d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPGroupPrivateDecl"); |
| } |
| |
| void CIRGenModule::emitOMPCapturedExpr(const OMPCapturedExprDecl *d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| errorNYI(d->getSourceRange(), "OpenMP OMPCapturedExpr"); |
| } |
| |
| void CIRGenFunction::emitOMPCapturedExpr(const OMPCapturedExprDecl &d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPCapturedExpr"); |
| } |
| |
| void CIRGenModule::emitOMPAllocateDecl(const OMPAllocateDecl *d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| errorNYI(d->getSourceRange(), "OpenMP OMPAllocateDecl"); |
| } |
| |
| void CIRGenFunction::emitOMPAllocateDecl(const OMPAllocateDecl &d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPAllocateDecl"); |
| } |
| |
| void CIRGenModule::emitOMPDeclareReduction(const OMPDeclareReductionDecl *d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| errorNYI(d->getSourceRange(), "OpenMP OMPDeclareReduction"); |
| } |
| |
| void CIRGenFunction::emitOMPDeclareReduction(const OMPDeclareReductionDecl &d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPDeclareReduction"); |
| } |
| |
| void CIRGenModule::emitOMPDeclareMapper(const OMPDeclareMapperDecl *d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| errorNYI(d->getSourceRange(), "OpenMP OMPDeclareMapper"); |
| } |
| |
| void CIRGenFunction::emitOMPDeclareMapper(const OMPDeclareMapperDecl &d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPDeclareMapper"); |
| } |
| |
| void CIRGenModule::emitOMPRequiresDecl(const OMPRequiresDecl *d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| errorNYI(d->getSourceRange(), "OpenMP OMPRequiresDecl"); |
| } |
| |
| void CIRGenFunction::emitOMPRequiresDecl(const OMPRequiresDecl &d) { |
| // TODO(OpenMP): We don't properly differentiate between 'emitDecl' and |
| // 'emitGlobal' and 'emitTopLevelDecl' in CIRGenDecl.cpp/CIRGenModule.cpp, so |
| // if this decl requires we differentiate those, we probably need to split |
| // this function into multiples. |
| getCIRGenModule().errorNYI(d.getSourceRange(), "OpenMP OMPRequiresDecl"); |
| } |