@@ -1012,75 +1012,54 @@ void LoopInfoStack::push(BasicBlock *Header, clang::ASTContext &Ctx,
1012
1012
// emitted
1013
1013
// For attribute nofusion:
1014
1014
// 'llvm.loop.fusion.disable' metadata will be emitted
1015
- for (const auto *Attr : Attrs) {
1016
- const SYCLIntelFPGAIVDepAttr *IntelFPGAIVDep =
1017
- dyn_cast<SYCLIntelFPGAIVDepAttr>(Attr);
1018
- const SYCLIntelFPGAIIAttr *IntelFPGAII =
1019
- dyn_cast<SYCLIntelFPGAIIAttr>(Attr);
1020
- const SYCLIntelFPGAMaxConcurrencyAttr *IntelFPGAMaxConcurrency =
1021
- dyn_cast<SYCLIntelFPGAMaxConcurrencyAttr>(Attr);
1022
- const SYCLIntelFPGALoopCoalesceAttr *IntelFPGALoopCoalesce =
1023
- dyn_cast<SYCLIntelFPGALoopCoalesceAttr>(Attr);
1024
- const SYCLIntelFPGADisableLoopPipeliningAttr
1025
- *IntelFPGADisableLoopPipelining =
1026
- dyn_cast<SYCLIntelFPGADisableLoopPipeliningAttr>(Attr);
1027
- const SYCLIntelFPGAMaxInterleavingAttr *IntelFPGAMaxInterleaving =
1028
- dyn_cast<SYCLIntelFPGAMaxInterleavingAttr>(Attr);
1029
- const SYCLIntelFPGASpeculatedIterationsAttr *IntelFPGASpeculatedIterations =
1030
- dyn_cast<SYCLIntelFPGASpeculatedIterationsAttr>(Attr);
1031
- const SYCLIntelFPGANofusionAttr *IntelFPGANofusion =
1032
- dyn_cast<SYCLIntelFPGANofusionAttr>(Attr);
1033
-
1034
- if (!IntelFPGAIVDep && !IntelFPGAII && !IntelFPGAMaxConcurrency &&
1035
- !IntelFPGALoopCoalesce && !IntelFPGADisableLoopPipelining &&
1036
- !IntelFPGAMaxInterleaving && !IntelFPGASpeculatedIterations &&
1037
- !IntelFPGANofusion)
1038
- continue ;
1039
-
1040
- if (IntelFPGAIVDep)
1015
+ for (const auto *A : Attrs) {
1016
+ if (const auto *IntelFPGAIVDep = dyn_cast<SYCLIntelFPGAIVDepAttr>(A))
1041
1017
addSYCLIVDepInfo (Header->getContext (), IntelFPGAIVDep->getSafelenValue (),
1042
1018
IntelFPGAIVDep->getArrayDecl ());
1043
1019
1044
- if (IntelFPGAII)
1020
+ if (const auto * IntelFPGAII = dyn_cast<SYCLIntelFPGAIIAttr>(A) )
1045
1021
setSYCLIInterval (IntelFPGAII->getIntervalExpr ()
1046
1022
->getIntegerConstantExpr (Ctx)
1047
1023
->getSExtValue ());
1048
1024
1049
- if (IntelFPGAMaxConcurrency) {
1025
+ if (const auto *IntelFPGAMaxConcurrency =
1026
+ dyn_cast<SYCLIntelFPGAMaxConcurrencyAttr>(A)) {
1050
1027
setSYCLMaxConcurrencyEnable ();
1051
1028
setSYCLMaxConcurrencyNThreads (IntelFPGAMaxConcurrency->getNThreadsExpr ()
1052
1029
->getIntegerConstantExpr (Ctx)
1053
1030
->getSExtValue ());
1054
1031
}
1055
1032
1056
- if (IntelFPGALoopCoalesce) {
1033
+ if (const auto *IntelFPGALoopCoalesce =
1034
+ dyn_cast<SYCLIntelFPGALoopCoalesceAttr>(A)) {
1057
1035
if (auto *LCE = IntelFPGALoopCoalesce->getNExpr ())
1058
1036
setSYCLLoopCoalesceNLevels (
1059
1037
LCE->getIntegerConstantExpr (Ctx)->getSExtValue ());
1060
1038
else
1061
1039
setSYCLLoopCoalesceEnable ();
1062
1040
}
1063
1041
1064
- if (IntelFPGADisableLoopPipelining) {
1042
+ if (isa<SYCLIntelFPGADisableLoopPipeliningAttr>(A))
1065
1043
setSYCLLoopPipeliningDisable ();
1066
- }
1067
1044
1068
- if (IntelFPGAMaxInterleaving) {
1045
+ if (const auto *IntelFPGAMaxInterleaving =
1046
+ dyn_cast<SYCLIntelFPGAMaxInterleavingAttr>(A)) {
1069
1047
setSYCLMaxInterleavingEnable ();
1070
1048
setSYCLMaxInterleavingNInvocations (IntelFPGAMaxInterleaving->getNExpr ()
1071
1049
->getIntegerConstantExpr (Ctx)
1072
1050
->getSExtValue ());
1073
1051
}
1074
1052
1075
- if (IntelFPGASpeculatedIterations) {
1053
+ if (const auto *IntelFPGASpeculatedIterations =
1054
+ dyn_cast<SYCLIntelFPGASpeculatedIterationsAttr>(A)) {
1076
1055
setSYCLSpeculatedIterationsEnable ();
1077
1056
setSYCLSpeculatedIterationsNIterations (
1078
1057
IntelFPGASpeculatedIterations->getNExpr ()
1079
1058
->getIntegerConstantExpr (Ctx)
1080
1059
->getSExtValue ());
1081
1060
}
1082
1061
1083
- if (IntelFPGANofusion )
1062
+ if (isa<SYCLIntelFPGANofusionAttr>(A) )
1084
1063
setSYCLNofusionEnable ();
1085
1064
}
1086
1065
0 commit comments