@@ -337,7 +337,6 @@ def SYCL : LangOpt<"SYCL">;
337
337
def SYCLIsDevice : LangOpt<"SYCLIsDevice">;
338
338
def SYCLIsHost : LangOpt<"SYCLIsHost">;
339
339
def SilentlyIgnoreSYCLIsHost : LangOpt<"SYCLIsHost", "", 1>;
340
- def SYCLExplicitSIMD : LangOpt<"SYCLExplicitSIMD">;
341
340
def COnly : LangOpt<"", "!LangOpts.CPlusPlus">;
342
341
def CPlusPlus : LangOpt<"CPlusPlus">;
343
342
def OpenCL : LangOpt<"OpenCL">;
@@ -1195,7 +1194,6 @@ def SYCLSimd : InheritableAttr {
1195
1194
let Spellings = [GNU<"sycl_explicit_simd">,
1196
1195
CXX11<"intel", "sycl_explicit_simd">];
1197
1196
let Subjects = SubjectList<[Function, GlobalVar]>;
1198
- let LangOpts = [SYCLExplicitSIMD];
1199
1197
let Documentation = [SYCLSimdDocs];
1200
1198
let SupportsNonconformingLambdaSyntax = 1;
1201
1199
}
@@ -1208,7 +1206,6 @@ def SYCLRegisterNum : InheritableAttr {
1208
1206
let Subjects = SubjectList<[GlobalVar]>;
1209
1207
// This attribute is applied to file-scope variables and must be compilable
1210
1208
// for the host device as well
1211
- let LangOpts = [SYCLExplicitSIMD];
1212
1209
let Documentation = [SYCLRegisterNumDocs];
1213
1210
}
1214
1211
@@ -1221,7 +1218,6 @@ def SYCLSimdAccessorPtr : InheritableAttr {
1221
1218
// No spelling, as this attribute can't be created in the source code.
1222
1219
let Spellings = [];
1223
1220
let Subjects = SubjectList<[ParmVar]>;
1224
- let LangOpts = [SYCLExplicitSIMD];
1225
1221
let Documentation = [Undocumented];
1226
1222
}
1227
1223
@@ -1878,24 +1874,27 @@ def SYCLIntelFPGAIVDep : StmtAttr {
1878
1874
let Documentation = [SYCLIntelFPGAIVDepAttrDocs];
1879
1875
}
1880
1876
1881
- def SYCLIntelFPGAInitiationInterval : StmtAttr {
1877
+ def SYCLIntelFPGAInitiationInterval : DeclOrStmtAttr {
1882
1878
let Spellings = [CXX11<"intelfpga","ii">,
1883
1879
CXX11<"intel","ii">,
1884
1880
CXX11<"intel", "initiation_interval">];
1885
- let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt],
1886
- ErrorDiag, "'for', 'while', and 'do' statements">;
1881
+ let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt, Function],
1882
+ ErrorDiag,
1883
+ "'for', 'while', 'do' statements, and functions">;
1887
1884
let Args = [ExprArgument<"IntervalExpr", /*opt*/1>];
1888
1885
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
1889
1886
let HasCustomTypeTransform = 1;
1890
1887
let Documentation = [SYCLIntelFPGAInitiationIntervalAttrDocs];
1888
+ let SupportsNonconformingLambdaSyntax = 1;
1891
1889
}
1892
1890
1893
- def SYCLIntelFPGAMaxConcurrency : StmtAttr {
1891
+ def SYCLIntelFPGAMaxConcurrency : DeclOrStmtAttr {
1894
1892
let Spellings = [CXX11<"intelfpga","max_concurrency">,
1895
1893
CXX11<"intel","max_concurrency">];
1896
- let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt],
1897
- ErrorDiag, "'for', 'while', and 'do' statements">;
1898
- let Args = [ExprArgument<"NThreadsExpr", /*opt*/1>];
1894
+ let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt, Function],
1895
+ ErrorDiag,
1896
+ "'for', 'while', 'do' statements, and functions">;
1897
+ let Args = [ExprArgument<"NThreadsExpr">];
1899
1898
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
1900
1899
let HasCustomTypeTransform = 1;
1901
1900
let Documentation = [SYCLIntelFPGAMaxConcurrencyAttrDocs];
@@ -1912,14 +1911,16 @@ def SYCLIntelFPGALoopCoalesce : StmtAttr {
1912
1911
let Documentation = [SYCLIntelFPGALoopCoalesceAttrDocs];
1913
1912
}
1914
1913
1915
- def SYCLIntelFPGADisableLoopPipelining : StmtAttr {
1914
+ def SYCLIntelFPGADisableLoopPipelining : DeclOrStmtAttr {
1916
1915
let Spellings = [CXX11<"intelfpga","disable_loop_pipelining">,
1917
1916
CXX11<"intel","disable_loop_pipelining">];
1918
- let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt],
1919
- ErrorDiag, "'for', 'while', and 'do' statements">;
1917
+ let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt, Function],
1918
+ ErrorDiag,
1919
+ "'for', 'while', 'do' statements, and functions">;
1920
1920
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
1921
1921
let HasCustomTypeTransform = 1;
1922
1922
let Documentation = [SYCLIntelFPGADisableLoopPipeliningAttrDocs];
1923
+ let SupportsNonconformingLambdaSyntax = 1;
1923
1924
}
1924
1925
1925
1926
def SYCLIntelFPGAMaxInterleaving : StmtAttr {
@@ -2119,22 +2120,14 @@ def IntelFPGABankBits : Attr {
2119
2120
let Documentation = [IntelFPGABankBitsDocs];
2120
2121
}
2121
2122
2122
- def IntelFPGAForcePow2Depth : Attr {
2123
+ def IntelFPGAForcePow2Depth : InheritableAttr {
2123
2124
let Spellings = [CXX11<"intelfpga","force_pow2_depth">,
2124
2125
CXX11<"intel","force_pow2_depth">];
2125
2126
let Args = [ExprArgument<"Value">];
2126
2127
let Subjects = SubjectList<[IntelFPGAConstVar, IntelFPGALocalStaticSlaveMemVar,
2127
2128
Field], ErrorDiag>;
2128
2129
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
2129
2130
let Documentation = [IntelFPGAForcePow2DepthAttrDocs];
2130
- let AdditionalMembers = [{
2131
- static unsigned getMinValue() {
2132
- return 0;
2133
- }
2134
- static unsigned getMaxValue() {
2135
- return 1;
2136
- }
2137
- }];
2138
2131
}
2139
2132
2140
2133
def Naked : InheritableAttr {
0 commit comments