@@ -751,6 +751,20 @@ bool ClauseProcessor::processDepend(
751
751
});
752
752
}
753
753
754
+ bool ClauseProcessor::processHasDeviceAddr (
755
+ llvm::SmallVectorImpl<mlir::Value> &operands,
756
+ llvm::SmallVectorImpl<mlir::Type> &isDeviceTypes,
757
+ llvm::SmallVectorImpl<mlir::Location> &isDeviceLocs,
758
+ llvm::SmallVectorImpl<const Fortran::semantics::Symbol *> &isDeviceSymbols)
759
+ const {
760
+ return findRepeatableClause<omp::clause::HasDeviceAddr>(
761
+ [&](const omp::clause::HasDeviceAddr &devAddrClause,
762
+ const Fortran::parser::CharBlock &) {
763
+ addUseDeviceClause (converter, devAddrClause.v , operands, isDeviceTypes,
764
+ isDeviceLocs, isDeviceSymbols);
765
+ });
766
+ }
767
+
754
768
bool ClauseProcessor::processIf (
755
769
omp::clause::If::DirectiveNameModifier directiveName,
756
770
mlir::Value &result) const {
@@ -771,6 +785,20 @@ bool ClauseProcessor::processIf(
771
785
return found;
772
786
}
773
787
788
+ bool ClauseProcessor::processIsDevicePtr (
789
+ llvm::SmallVectorImpl<mlir::Value> &operands,
790
+ llvm::SmallVectorImpl<mlir::Type> &isDeviceTypes,
791
+ llvm::SmallVectorImpl<mlir::Location> &isDeviceLocs,
792
+ llvm::SmallVectorImpl<const Fortran::semantics::Symbol *> &isDeviceSymbols)
793
+ const {
794
+ return findRepeatableClause<omp::clause::IsDevicePtr>(
795
+ [&](const omp::clause::IsDevicePtr &devPtrClause,
796
+ const Fortran::parser::CharBlock &) {
797
+ addUseDeviceClause (converter, devPtrClause.v , operands, isDeviceTypes,
798
+ isDeviceLocs, isDeviceSymbols);
799
+ });
800
+ }
801
+
774
802
bool ClauseProcessor::processLink (
775
803
llvm::SmallVectorImpl<DeclareTargetCapturePair> &result) const {
776
804
return findRepeatableClause<omp::clause::Link>(
@@ -994,34 +1022,6 @@ bool ClauseProcessor::processUseDevicePtr(
994
1022
});
995
1023
}
996
1024
997
- bool ClauseProcessor::processIsDevicePtr (
998
- llvm::SmallVectorImpl<mlir::Value> &operands,
999
- llvm::SmallVectorImpl<mlir::Type> &isDeviceTypes,
1000
- llvm::SmallVectorImpl<mlir::Location> &isDeviceLocs,
1001
- llvm::SmallVectorImpl<const Fortran::semantics::Symbol *> &isDeviceSymbols)
1002
- const {
1003
- return findRepeatableClause<omp::clause::IsDevicePtr>(
1004
- [&](const omp::clause::IsDevicePtr &devPtrClause,
1005
- const Fortran::parser::CharBlock &) {
1006
- addUseDeviceClause (converter, devPtrClause.v , operands, isDeviceTypes,
1007
- isDeviceLocs, isDeviceSymbols);
1008
- });
1009
- }
1010
-
1011
- bool ClauseProcessor::processHasDeviceAddr (
1012
- llvm::SmallVectorImpl<mlir::Value> &operands,
1013
- llvm::SmallVectorImpl<mlir::Type> &isDeviceTypes,
1014
- llvm::SmallVectorImpl<mlir::Location> &isDeviceLocs,
1015
- llvm::SmallVectorImpl<const Fortran::semantics::Symbol *> &isDeviceSymbols)
1016
- const {
1017
- return findRepeatableClause<omp::clause::HasDeviceAddr>(
1018
- [&](const omp::clause::HasDeviceAddr &devAddrClause,
1019
- const Fortran::parser::CharBlock &) {
1020
- addUseDeviceClause (converter, devAddrClause.v , operands, isDeviceTypes,
1021
- isDeviceLocs, isDeviceSymbols);
1022
- });
1023
- }
1024
-
1025
1025
} // namespace omp
1026
1026
} // namespace lower
1027
1027
} // namespace Fortran
0 commit comments