@@ -791,17 +791,17 @@ template <typename T> using bind_param_t = typename bind_param<T>::type;
791
791
class KernelObjVisitor {
792
792
Sema &SemaRef;
793
793
794
- template <typename ParentTy, typename ... Handlers >
794
+ template <typename ParentTy, typename ... HandlerTys >
795
795
void VisitUnionImpl (const CXXRecordDecl *Owner, ParentTy &Parent,
796
- const CXXRecordDecl *Wrapper, Handlers &... handlers ) {
796
+ const CXXRecordDecl *Wrapper, HandlerTys &... Handlers ) {
797
797
(void )std::initializer_list<int >{
798
- (handlers .enterUnion (Owner, Parent), 0 )...};
799
- VisitRecordHelper (Wrapper, Wrapper->fields (), handlers ...);
798
+ (Handlers .enterUnion (Owner, Parent), 0 )...};
799
+ VisitRecordHelper (Wrapper, Wrapper->fields (), Handlers ...);
800
800
(void )std::initializer_list<int >{
801
- (handlers .leaveUnion (Owner, Parent), 0 )...};
801
+ (Handlers .leaveUnion (Owner, Parent), 0 )...};
802
802
}
803
803
804
- // These enable handler execution only when previous handlers succeed.
804
+ // These enable handler execution only when previous Handlers succeed.
805
805
template <typename ... Tn>
806
806
bool handleField (FieldDecl *FD, QualType FDTy, Tn &&... tn) {
807
807
bool result = true ;
@@ -819,104 +819,104 @@ class KernelObjVisitor {
819
819
#define KF_FOR_EACH (FUNC, Item, Qt ) \
820
820
handleField ( \
821
821
Item, Qt, \
822
- std::bind (static_cast <bool (std::decay_t <decltype (handlers )>::*)( \
822
+ std::bind (static_cast <bool (std::decay_t <decltype (Handlers )>::*)( \
823
823
bind_param_t <decltype (Item)>, QualType)>( \
824
- &std::decay_t <decltype (handlers )>::FUNC), \
825
- std::ref(handlers ), _1, _2)...)
824
+ &std::decay_t <decltype (Handlers )>::FUNC), \
825
+ std::ref(Handlers ), _1, _2)...)
826
826
827
827
// The following simpler definition works with gcc 8.x and later.
828
828
// #define KF_FOR_EACH(FUNC) \
829
829
// handleField(Field, FieldTy, ([&](FieldDecl *FD, QualType FDTy) { \
830
- // return handlers .f(FD, FDTy); \
830
+ // return Handlers .f(FD, FDTy); \
831
831
// })...)
832
832
833
833
// Parent contains the FieldDecl or CXXBaseSpecifier that was used to enter
834
834
// the Wrapper structure that we're currently visiting. Owner is the parent
835
835
// type (which doesn't exist in cases where it is a FieldDecl in the
836
836
// 'root'), and Wrapper is the current struct being unwrapped.
837
- template <typename ParentTy, typename... Handlers >
838
- void VisitRecord (const CXXRecordDecl *Owner, ParentTy &Parent,
837
+ template <typename ParentTy, typename... HandlerTys >
838
+ void visitRecord (const CXXRecordDecl *Owner, ParentTy &Parent,
839
839
const CXXRecordDecl *Wrapper, QualType RecordTy,
840
- Handlers &... handlers ) {
840
+ HandlerTys &... Handlers ) {
841
841
(void )std::initializer_list<int >{
842
- (handlers .enterStruct (Owner, Parent, RecordTy), 0 )...};
843
- VisitRecordHelper (Wrapper, Wrapper->bases (), handlers ...);
844
- VisitRecordHelper (Wrapper, Wrapper->fields (), handlers ...);
842
+ (Handlers .enterStruct (Owner, Parent, RecordTy), 0 )...};
843
+ VisitRecordHelper (Wrapper, Wrapper->bases (), Handlers ...);
844
+ VisitRecordHelper (Wrapper, Wrapper->fields (), Handlers ...);
845
845
(void )std::initializer_list<int >{
846
- (handlers .leaveStruct (Owner, Parent, RecordTy), 0 )...};
846
+ (Handlers .leaveStruct (Owner, Parent, RecordTy), 0 )...};
847
847
}
848
848
849
- template <typename ParentTy, typename ... Handlers >
849
+ template <typename ParentTy, typename ... HandlerTys >
850
850
void VisitUnion (const CXXRecordDecl *Owner, ParentTy &Parent,
851
- const CXXRecordDecl *Wrapper, Handlers &... handlers );
851
+ const CXXRecordDecl *Wrapper, HandlerTys &... Handlers );
852
852
853
- template <typename ... Handlers >
853
+ template <typename ... HandlerTys >
854
854
void VisitRecordHelper (const CXXRecordDecl *Owner,
855
855
clang::CXXRecordDecl::base_class_const_range Range,
856
- Handlers &... handlers ) {
856
+ HandlerTys &... Handlers ) {
857
857
for (const auto &Base : Range) {
858
858
QualType BaseTy = Base.getType ();
859
859
// Handle accessor class as base
860
860
if (Util::isSyclAccessorType (BaseTy)) {
861
861
(void )std::initializer_list<int >{
862
- (handlers .handleSyclAccessorType (Owner, Base, BaseTy), 0 )...};
862
+ (Handlers .handleSyclAccessorType (Owner, Base, BaseTy), 0 )...};
863
863
} else if (Util::isSyclStreamType (BaseTy)) {
864
864
// Handle stream class as base
865
865
(void )std::initializer_list<int >{
866
- (handlers .handleSyclStreamType (Owner, Base, BaseTy), 0 )...};
866
+ (Handlers .handleSyclStreamType (Owner, Base, BaseTy), 0 )...};
867
867
} else
868
868
// For all other bases, visit the record
869
- VisitRecord (Owner, Base, BaseTy->getAsCXXRecordDecl (), BaseTy,
870
- handlers ...);
869
+ visitRecord (Owner, Base, BaseTy->getAsCXXRecordDecl (), BaseTy,
870
+ Handlers ...);
871
871
}
872
872
}
873
873
874
- template <typename ... Handlers >
874
+ template <typename ... HandlerTys >
875
875
void VisitRecordHelper (const CXXRecordDecl *Owner,
876
876
RecordDecl::field_range Range,
877
- Handlers &... handlers ) {
878
- VisitRecordFields (Owner, handlers ...);
877
+ HandlerTys &... Handlers ) {
878
+ VisitRecordFields (Owner, Handlers ...);
879
879
}
880
880
881
881
// FIXME: Can this be refactored/handled some other way?
882
- template <typename ParentTy, typename ... Handlers >
883
- void VisitStreamRecord (const CXXRecordDecl *Owner, ParentTy &Parent,
882
+ template <typename ParentTy, typename ... HandlerTys >
883
+ void visitStreamRecord (const CXXRecordDecl *Owner, ParentTy &Parent,
884
884
CXXRecordDecl *Wrapper, QualType RecordTy,
885
- Handlers &... handlers ) {
885
+ HandlerTys &... Handlers ) {
886
886
(void )std::initializer_list<int >{
887
- (handlers .enterStream (Owner, Parent, RecordTy), 0 )...};
887
+ (Handlers .enterStream (Owner, Parent, RecordTy), 0 )...};
888
888
for (const auto &Field : Wrapper->fields ()) {
889
889
QualType FieldTy = Field->getType ();
890
890
// Required to initialize accessors inside streams.
891
891
if (Util::isSyclAccessorType (FieldTy))
892
892
KF_FOR_EACH (handleSyclAccessorType, Field, FieldTy);
893
893
}
894
894
(void )std::initializer_list<int >{
895
- (handlers .leaveStream (Owner, Parent, RecordTy), 0 )...};
895
+ (Handlers .leaveStream (Owner, Parent, RecordTy), 0 )...};
896
896
}
897
897
898
- template <typename ... Handlers >
898
+ template <typename ... HandlerTys >
899
899
void visitArrayElementImpl (const CXXRecordDecl *Owner, FieldDecl *ArrayField,
900
900
QualType ElementTy, uint64_t Index,
901
- Handlers &... handlers ) {
901
+ HandlerTys &... Handlers ) {
902
902
(void )std::initializer_list<int >{
903
- (handlers .nextElement (ElementTy, Index), 0 )...};
904
- visitField (Owner, ArrayField, ElementTy, handlers ...);
903
+ (Handlers .nextElement (ElementTy, Index), 0 )...};
904
+ visitField (Owner, ArrayField, ElementTy, Handlers ...);
905
905
}
906
906
907
- template <typename ... Handlers >
907
+ template <typename ... HandlerTys >
908
908
void visitFirstArrayElement (const CXXRecordDecl *Owner, FieldDecl *ArrayField,
909
- QualType ElementTy, Handlers &... handlers ) {
910
- visitArrayElementImpl (Owner, ArrayField, ElementTy, 0 , handlers ...);
909
+ QualType ElementTy, HandlerTys &... Handlers ) {
910
+ visitArrayElementImpl (Owner, ArrayField, ElementTy, 0 , Handlers ...);
911
911
}
912
- template <typename ... Handlers >
912
+ template <typename ... HandlerTys >
913
913
void visitNthArrayElement (const CXXRecordDecl *Owner, FieldDecl *ArrayField,
914
914
QualType ElementTy, uint64_t Index,
915
- Handlers &... handlers );
915
+ HandlerTys &... Handlers );
916
916
917
- template <typename ... Handlers >
917
+ template <typename ... HandlerTys >
918
918
void visitArray (const CXXRecordDecl *Owner, FieldDecl *Field,
919
- QualType ArrayTy, Handlers &... handlers ) {
919
+ QualType ArrayTy, HandlerTys &... Handlers ) {
920
920
// Array workflow is:
921
921
// handleArrayType
922
922
// enterArray
@@ -937,19 +937,19 @@ class KernelObjVisitor {
937
937
assert (ElemCount > 0 && " SYCL prohibits 0 sized arrays" );
938
938
939
939
(void )std::initializer_list<int >{
940
- (handlers .enterArray (Field, ArrayTy, ET), 0 )...};
940
+ (Handlers .enterArray (Field, ArrayTy, ET), 0 )...};
941
941
942
- visitFirstArrayElement (Owner, Field, ET, handlers ...);
942
+ visitFirstArrayElement (Owner, Field, ET, Handlers ...);
943
943
for (uint64_t Index = 1 ; Index < ElemCount; ++Index)
944
- visitNthArrayElement (Owner, Field, ET, Index, handlers ...);
944
+ visitNthArrayElement (Owner, Field, ET, Index, Handlers ...);
945
945
946
946
(void )std::initializer_list<int >{
947
- (handlers .leaveArray (Field, ArrayTy, ET), 0 )...};
947
+ (Handlers .leaveArray (Field, ArrayTy, ET), 0 )...};
948
948
}
949
949
950
- template <typename ... Handlers >
950
+ template <typename ... HandlerTys >
951
951
void visitField (const CXXRecordDecl *Owner, FieldDecl *Field,
952
- QualType FieldTy, Handlers &... handlers ) {
952
+ QualType FieldTy, HandlerTys &... Handlers ) {
953
953
if (Util::isSyclAccessorType (FieldTy))
954
954
KF_FOR_EACH (handleSyclAccessorType, Field, FieldTy);
955
955
else if (Util::isSyclSamplerType (FieldTy))
@@ -962,23 +962,23 @@ class KernelObjVisitor {
962
962
CXXRecordDecl *RD = FieldTy->getAsCXXRecordDecl ();
963
963
// Handle accessors in stream class.
964
964
KF_FOR_EACH (handleSyclStreamType, Field, FieldTy);
965
- VisitStreamRecord (Owner, Field, RD, FieldTy, handlers ...);
965
+ visitStreamRecord (Owner, Field, RD, FieldTy, Handlers ...);
966
966
} else if (FieldTy->isStructureOrClassType ()) {
967
967
if (KF_FOR_EACH (handleStructType, Field, FieldTy)) {
968
968
CXXRecordDecl *RD = FieldTy->getAsCXXRecordDecl ();
969
- VisitRecord (Owner, Field, RD, FieldTy, handlers ...);
969
+ visitRecord (Owner, Field, RD, FieldTy, Handlers ...);
970
970
}
971
971
} else if (FieldTy->isUnionType ()) {
972
972
if (KF_FOR_EACH (handleUnionType, Field, FieldTy)) {
973
973
CXXRecordDecl *RD = FieldTy->getAsCXXRecordDecl ();
974
- VisitUnion (Owner, Field, RD, handlers ...);
974
+ VisitUnion (Owner, Field, RD, Handlers ...);
975
975
}
976
976
} else if (FieldTy->isReferenceType ())
977
977
KF_FOR_EACH (handleReferenceType, Field, FieldTy);
978
978
else if (FieldTy->isPointerType ())
979
979
KF_FOR_EACH (handlePointerType, Field, FieldTy);
980
980
else if (FieldTy->isArrayType ())
981
- visitArray (Owner, Field, FieldTy, handlers ...);
981
+ visitArray (Owner, Field, FieldTy, Handlers ...);
982
982
else if (FieldTy->isScalarType () || FieldTy->isVectorType ())
983
983
KF_FOR_EACH (handleScalarType, Field, FieldTy);
984
984
else
@@ -988,18 +988,18 @@ class KernelObjVisitor {
988
988
public:
989
989
KernelObjVisitor (Sema &S) : SemaRef(S) {}
990
990
991
- template <typename ... Handlers >
991
+ template <typename ... HandlerTys >
992
992
void VisitRecordBases (const CXXRecordDecl *KernelFunctor,
993
- Handlers &... handlers ) {
994
- VisitRecordHelper (KernelFunctor, KernelFunctor->bases (), handlers ...);
993
+ HandlerTys &... Handlers ) {
994
+ VisitRecordHelper (KernelFunctor, KernelFunctor->bases (), Handlers ...);
995
995
}
996
996
997
997
// A visitor function that dispatches to functions as defined in
998
998
// SyclKernelFieldHandler for the purposes of kernel generation.
999
- template <typename ... Handlers >
1000
- void VisitRecordFields (const CXXRecordDecl *Owner, Handlers &... handlers ) {
999
+ template <typename ... HandlerTys >
1000
+ void VisitRecordFields (const CXXRecordDecl *Owner, HandlerTys &... Handlers ) {
1001
1001
for (const auto Field : Owner->fields ())
1002
- visitField (Owner, Field, Field->getType (), handlers ...);
1002
+ visitField (Owner, Field, Field->getType (), Handlers ...);
1003
1003
}
1004
1004
#undef KF_FOR_EACH
1005
1005
};
@@ -1761,7 +1761,7 @@ class SyclKernelBodyCreator : public SyclKernelFieldHandler {
1761
1761
CXXRecordDecl *WrapperStruct = ParamType->getAsCXXRecordDecl ();
1762
1762
// Pointer field wrapped inside __wrapper_class
1763
1763
FieldDecl *Pointer = *(WrapperStruct->field_begin ());
1764
- DRE = BuildMemberExpr (DRE, Pointer);
1764
+ DRE = buildMemberExpr (DRE, Pointer);
1765
1765
ParamType = Pointer->getType ();
1766
1766
}
1767
1767
@@ -1829,7 +1829,7 @@ class SyclKernelBodyCreator : public SyclKernelFieldHandler {
1829
1829
addFieldInit (FD, Ty, ParamRef);
1830
1830
}
1831
1831
1832
- MemberExpr *BuildMemberExpr (Expr *Base, ValueDecl *Member) {
1832
+ MemberExpr *buildMemberExpr (Expr *Base, ValueDecl *Member) {
1833
1833
DeclAccessPair MemberDAP = DeclAccessPair::make (Member, AS_none);
1834
1834
MemberExpr *Result = SemaRef.BuildMemberExpr (
1835
1835
Base, /* IsArrow */ false , SourceLocation (), NestedNameSpecifierLoc (),
@@ -1842,7 +1842,7 @@ class SyclKernelBodyCreator : public SyclKernelFieldHandler {
1842
1842
1843
1843
void addFieldMemberExpr (FieldDecl *FD, QualType Ty) {
1844
1844
if (!isArrayElement (FD, Ty))
1845
- MemberExprBases.push_back (BuildMemberExpr (MemberExprBases.back (), FD));
1845
+ MemberExprBases.push_back (buildMemberExpr (MemberExprBases.back (), FD));
1846
1846
}
1847
1847
1848
1848
void removeFieldMemberExpr (const FieldDecl *FD, QualType Ty) {
@@ -1866,7 +1866,7 @@ class SyclKernelBodyCreator : public SyclKernelFieldHandler {
1866
1866
VK_LValue, SourceLocation ());
1867
1867
}
1868
1868
1869
- MemberExpr *MethodME = BuildMemberExpr (MemberExprBases.back (), Method);
1869
+ MemberExpr *MethodME = buildMemberExpr (MemberExprBases.back (), Method);
1870
1870
1871
1871
QualType ResultTy = Method->getReturnType ();
1872
1872
ExprValueKind VK = Expr::getValueKindForType (ResultTy);
0 commit comments