Skip to content

Commit f98b027

Browse files
committed
[SYCL] Remove FPGA features from SYCL FE
This removes the following attributes: [[intel::max_work_group_size]] [[intel::max_global_work_dim]] [[intel::no_global_work_offset]] [[intel::num_simd_work_items]] [[intel::doublepump]] [[intel::singlepump]] [[intel::fpga_memory]] [[intel::fpga_register]] [[intel::bankwidth]] [[intel::numbanks]] [[intel::private_copies]] [[intel::merge]] [[intel::max_replicates]] [[intel::simple_dual_port]] [[intel::bank_bits]] [[intel::force_pow2_depth]] [[intel::use_stall_enable_clusters]] [[intel::scheduler_target_fmax_mhz]] [[intel::initiation_interval]] [[intel::max_concurrency]] [[intel::loop_coalesce]] [[intel::disable_loop_pipelining]] [[intel::loop_count[_min|_max_avg]]] [[intel::max_interleaving]] [[intel::speculated_iterations]] [[intel::max_reinvocation_delay]] [[intel::enable_loop_pipelining]] [[intel::loop_fuse]] [[intel::loop_fuse_independent]] __attribute__((register_num(n))) __attribute__((pipe(mode))) __attribute__((io_pipe_id)))
1 parent b703d41 commit f98b027

File tree

79 files changed

+359
-12148
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+359
-12148
lines changed

clang/include/clang/Basic/Attr.td

Lines changed: 0 additions & 318 deletions
Original file line numberDiff line numberDiff line change
@@ -1823,17 +1823,6 @@ def SYCLSimd : InheritableAttr {
18231823
let SimpleHandler = 1;
18241824
}
18251825

1826-
// Available in SYCL explicit SIMD extension. Binds a file scope private
1827-
// variable to a specific register.
1828-
def SYCLRegisterNum : InheritableAttr {
1829-
let Spellings = [GNU<"register_num">, Declspec<"register_num">];
1830-
let Args = [UnsignedArgument<"Number">];
1831-
let Subjects = SubjectList<[GlobalVar]>;
1832-
// This attribute is applied to file-scope variables and must be compilable
1833-
// for the host device as well
1834-
let Documentation = [SYCLRegisterNumDocs];
1835-
}
1836-
18371826
// Used by FE to mark SYCL kernel pointer parameters which correspond to the
18381827
// original lambda's captured accessors. FE turns the attribute to some metadata
18391828
// required by the device back-end.
@@ -1935,54 +1924,6 @@ def SYCLIntelKernelArgsRestrict : InheritableAttr {
19351924
let SupportsNonconformingLambdaSyntax = 1;
19361925
}
19371926

1938-
def SYCLIntelNumSimdWorkItems : InheritableAttr {
1939-
let Spellings = [CXX11<"intel", "num_simd_work_items">];
1940-
let Args = [ExprArgument<"Value">];
1941-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
1942-
let Subjects = SubjectList<[Function], ErrorDiag>;
1943-
let Documentation = [SYCLIntelNumSimdWorkItemsAttrDocs];
1944-
let SupportsNonconformingLambdaSyntax = 1;
1945-
}
1946-
1947-
def SYCLIntelUseStallEnableClusters : InheritableAttr {
1948-
let Spellings = [CXX11<"intel","use_stall_enable_clusters">];
1949-
let LangOpts = [SilentlyIgnoreSYCLIsHost, SYCLIsDevice];
1950-
let Subjects = SubjectList<[Function], ErrorDiag>;
1951-
let Documentation = [SYCLIntelUseStallEnableClustersAttrDocs];
1952-
let SupportsNonconformingLambdaSyntax = 1;
1953-
}
1954-
1955-
def SYCLIntelSchedulerTargetFmaxMhz : InheritableAttr {
1956-
let Spellings = [CXX11<"intel", "scheduler_target_fmax_mhz">];
1957-
let Args = [ExprArgument<"Value">];
1958-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
1959-
let Subjects = SubjectList<[Function], ErrorDiag>;
1960-
let Documentation = [SYCLIntelSchedulerTargetFmaxMhzAttrDocs];
1961-
let SupportsNonconformingLambdaSyntax = 1;
1962-
}
1963-
1964-
def SYCLIntelMaxWorkGroupSize : InheritableAttr {
1965-
let Spellings = [CXX11<"intel", "max_work_group_size">];
1966-
let Args = [ExprArgument<"XDim">,
1967-
ExprArgument<"YDim">,
1968-
ExprArgument<"ZDim">];
1969-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
1970-
let Subjects = SubjectList<[Function], ErrorDiag>;
1971-
let AdditionalMembers = [{
1972-
unsigned getXDimVal() const {
1973-
return cast<ConstantExpr>(getXDim())->getResultAsAPSInt().getExtValue();
1974-
}
1975-
unsigned getYDimVal() const {
1976-
return cast<ConstantExpr>(getYDim())->getResultAsAPSInt().getExtValue();
1977-
}
1978-
unsigned getZDimVal() const {
1979-
return cast<ConstantExpr>(getZDim())->getResultAsAPSInt().getExtValue();
1980-
}
1981-
}];
1982-
let Documentation = [SYCLIntelMaxWorkGroupSizeAttrDocs];
1983-
let SupportsNonconformingLambdaSyntax = 1;
1984-
}
1985-
19861927
def SYCLIntelMinWorkGroupsPerComputeUnit : InheritableAttr {
19871928
let Spellings = [CXX11<"intel", "min_work_groups_per_cu">];
19881929
let Args = [ExprArgument<"Value">];
@@ -1999,15 +1940,6 @@ def SYCLIntelMaxWorkGroupsPerMultiprocessor : InheritableAttr {
19991940
let Documentation = [SYCLIntelMaxWorkGroupsPerMultiprocessorDocs];
20001941
}
20011942

2002-
def SYCLIntelMaxGlobalWorkDim : InheritableAttr {
2003-
let Spellings = [CXX11<"intel", "max_global_work_dim">];
2004-
let Args = [ExprArgument<"Value">];
2005-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
2006-
let Subjects = SubjectList<[Function], ErrorDiag>;
2007-
let Documentation = [SYCLIntelMaxGlobalWorkDimAttrDocs];
2008-
let SupportsNonconformingLambdaSyntax = 1;
2009-
}
2010-
20111943
def SYCLDeviceGlobal: InheritableAttr {
20121944
let Spellings = [CXX11<"__sycl_detail__", "device_global">];
20131945
let Subjects = SubjectList<[CXXRecord], ErrorDiag>;
@@ -2026,27 +1958,6 @@ def SYCLGlobalVariableAllowed : InheritableAttr {
20261958
let SimpleHandler = 1;
20271959
}
20281960

2029-
def SYCLIntelNoGlobalWorkOffset : InheritableAttr {
2030-
let Spellings = [CXX11<"intel", "no_global_work_offset">];
2031-
let Args = [ExprArgument<"Value", /*optional*/1>];
2032-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
2033-
let Subjects = SubjectList<[Function], ErrorDiag>;
2034-
let Documentation = [SYCLIntelNoGlobalWorkOffsetAttrDocs];
2035-
let SupportsNonconformingLambdaSyntax = 1;
2036-
}
2037-
2038-
def SYCLIntelLoopFuse : InheritableAttr {
2039-
let Spellings = [CXX11<"intel", "loop_fuse">,
2040-
CXX11<"intel", "loop_fuse_independent">];
2041-
let Args = [ExprArgument<"Value", /*optional=*/ 1>];
2042-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
2043-
let Subjects = SubjectList<[Function], ErrorDiag>;
2044-
let Accessors = [Accessor<"isIndependent",
2045-
[CXX11<"intel", "loop_fuse_independent">]>];
2046-
let Documentation = [SYCLIntelLoopFuseDocs];
2047-
let SupportsNonconformingLambdaSyntax = 1;
2048-
}
2049-
20501961
class SYCLAddIRAttrMemberCodeHolder<code Code> {
20511962
code MemberCode = Code;
20521963
}
@@ -2984,94 +2895,6 @@ def SYCLIntelIVDep : StmtAttr {
29842895
let Documentation = [SYCLIntelIVDepAttrDocs];
29852896
}
29862897

2987-
def SYCLIntelInitiationInterval : DeclOrStmtAttr {
2988-
let Spellings = [CXX11<"intel", "ii">,
2989-
CXX11<"intel", "initiation_interval">];
2990-
let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt, Function],
2991-
ErrorDiag,
2992-
"'for', 'while', 'do' statements, and functions">;
2993-
let Args = [ExprArgument<"NExpr">];
2994-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
2995-
let Documentation = [SYCLIntelInitiationIntervalAttrDocs];
2996-
let SupportsNonconformingLambdaSyntax = 1;
2997-
}
2998-
2999-
def SYCLIntelMaxConcurrency : DeclOrStmtAttr {
3000-
let Spellings = [CXX11<"intel", "max_concurrency">];
3001-
let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt, Function],
3002-
ErrorDiag,
3003-
"'for', 'while', 'do' statements, and functions">;
3004-
let Args = [ExprArgument<"NExpr">];
3005-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3006-
let Documentation = [SYCLIntelMaxConcurrencyAttrDocs];
3007-
let SupportsNonconformingLambdaSyntax = 1;
3008-
}
3009-
3010-
def SYCLIntelLoopCoalesce : StmtAttr {
3011-
let Spellings = [CXX11<"intel", "loop_coalesce">];
3012-
let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt],
3013-
ErrorDiag, "'for', 'while', and 'do' statements">;
3014-
let Args = [ExprArgument<"NExpr", /*opt*/1>];
3015-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3016-
let Documentation = [SYCLIntelLoopCoalesceAttrDocs];
3017-
}
3018-
3019-
def SYCLIntelDisableLoopPipelining : DeclOrStmtAttr {
3020-
let Spellings = [CXX11<"intel", "disable_loop_pipelining">];
3021-
let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt, Function],
3022-
ErrorDiag,
3023-
"'for', 'while', 'do' statements, and functions">;
3024-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3025-
let Documentation = [SYCLIntelDisableLoopPipeliningAttrDocs];
3026-
let SupportsNonconformingLambdaSyntax = 1;
3027-
let SimpleHandler = 1;
3028-
}
3029-
def : MutualExclusions<[SYCLIntelInitiationInterval,
3030-
SYCLIntelDisableLoopPipelining]>;
3031-
def : MutualExclusions<[SYCLIntelIVDep,
3032-
SYCLIntelDisableLoopPipelining]>;
3033-
def : MutualExclusions<[SYCLIntelMaxConcurrency,
3034-
SYCLIntelDisableLoopPipelining]>;
3035-
3036-
def SYCLIntelLoopCount : StmtAttr {
3037-
let Spellings = [CXX11<"intel", "loop_count_min">,
3038-
CXX11<"intel", "loop_count_max">,
3039-
CXX11<"intel", "loop_count_avg">,
3040-
CXX11<"intel", "loop_count">];
3041-
let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt],
3042-
ErrorDiag, "'for', 'while', and 'do' statements">;
3043-
let Accessors = [Accessor<"isMin", [CXX11<"intel", "loop_count_min">]>,
3044-
Accessor<"isMax", [CXX11<"intel", "loop_count_max">]>,
3045-
Accessor<"isAvg", [CXX11<"intel", "loop_count_avg">]>,
3046-
Accessor<"isCount", [CXX11<"intel", "loop_count">]>];
3047-
let Args = [ExprArgument<"NTripCount">];
3048-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3049-
let Documentation = [SYCLIntelLoopCountAttrDocs];
3050-
}
3051-
3052-
def : MutualExclusions<[SYCLIntelMaxConcurrency,
3053-
SYCLIntelDisableLoopPipelining]>;
3054-
3055-
def SYCLIntelMaxInterleaving : StmtAttr {
3056-
let Spellings = [CXX11<"intel", "max_interleaving">];
3057-
let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt],
3058-
ErrorDiag, "'for', 'while', and 'do' statements">;
3059-
let Args = [ExprArgument<"NExpr">];
3060-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3061-
let Documentation = [SYCLIntelMaxInterleavingAttrDocs];
3062-
}
3063-
3064-
def SYCLIntelSpeculatedIterations : StmtAttr {
3065-
let Spellings = [CXX11<"intel", "speculated_iterations">];
3066-
let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt],
3067-
ErrorDiag, "'for', 'while', and 'do' statements">;
3068-
let Args = [ExprArgument<"NExpr">];
3069-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3070-
let Documentation = [SYCLIntelSpeculatedIterationsAttrDocs];
3071-
}
3072-
def : MutualExclusions<[SYCLIntelDisableLoopPipelining,
3073-
SYCLIntelSpeculatedIterations]>;
3074-
30752898
def SYCLIntelNofusion : StmtAttr {
30762899
let Spellings = [CXX11<"intel","nofusion">];
30772900
let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt],
@@ -3080,148 +2903,7 @@ def SYCLIntelNofusion : StmtAttr {
30802903
let Documentation = [SYCLIntelNofusionAttrDocs];
30812904
}
30822905

3083-
def SYCLIntelMaxReinvocationDelay : StmtAttr {
3084-
let Spellings = [CXX11<"intel", "max_reinvocation_delay">];
3085-
let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt],
3086-
ErrorDiag, "'for', 'while', and 'do' statements">;
3087-
let Args = [ExprArgument<"NExpr">];
3088-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3089-
let Documentation = [SYCLIntelMaxReinvocationDelayAttrDocs];
3090-
}
3091-
def : MutualExclusions<[SYCLIntelDisableLoopPipelining,
3092-
SYCLIntelMaxReinvocationDelay]>;
3093-
3094-
def SYCLIntelEnableLoopPipelining : StmtAttr {
3095-
let Spellings = [CXX11<"intel", "enable_loop_pipelining">];
3096-
let Subjects = SubjectList<[ForStmt, CXXForRangeStmt, WhileStmt, DoStmt],
3097-
ErrorDiag, "'for', 'while', and 'do' statements">;
3098-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3099-
let Documentation = [SYCLIntelEnableLoopPipeliningAttrDocs];
3100-
}
3101-
3102-
def : MutualExclusions<[SYCLIntelDisableLoopPipelining,
3103-
SYCLIntelEnableLoopPipelining]>;
3104-
3105-
def SYCLIntelDoublePump : Attr {
3106-
let Spellings = [CXX11<"intel", "doublepump">];
3107-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3108-
let Documentation = [SYCLIntelDoublePumpAttrDocs];
3109-
}
3110-
3111-
def SYCLIntelSinglePump : Attr {
3112-
let Spellings = [CXX11<"intel", "singlepump">];
3113-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3114-
let Documentation = [SYCLIntelSinglePumpAttrDocs];
3115-
}
3116-
3117-
def SYCLIntelMemory : Attr {
3118-
let Spellings = [CXX11<"intel", "fpga_memory">];
3119-
let Args = [EnumArgument<"Kind", "MemoryKind", /*is_string=*/false,
3120-
["MLAB", "BLOCK_RAM", ""],
3121-
["MLAB", "BlockRAM", "Default"], 1>];
3122-
let AdditionalMembers = [{
3123-
static void generateValidStrings(SmallString<256> &Str) {
3124-
auto Last = BlockRAM;
3125-
for (int I = 0; I <= Last; ++I) {
3126-
Str += ConvertMemoryKindToStr(static_cast<MemoryKind>(I));
3127-
if (I != Last) Str += " ";
3128-
}
3129-
}
3130-
}];
3131-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3132-
let Documentation = [SYCLIntelMemoryAttrDocs];
3133-
}
3134-
3135-
def SYCLIntelRegister : Attr {
3136-
let Spellings = [CXX11<"intel", "fpga_register">];
3137-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3138-
let Documentation = [SYCLIntelRegisterAttrDocs];
3139-
}
3140-
def : MutualExclusions<[SYCLIntelDoublePump, SYCLIntelSinglePump,
3141-
SYCLIntelRegister]>;
3142-
3143-
// One integral argument.
3144-
def SYCLIntelBankWidth : InheritableAttr {
3145-
let Spellings = [CXX11<"intel", "bankwidth">];
3146-
let Args = [ExprArgument<"Value">];
3147-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3148-
let Documentation = [SYCLIntelBankWidthAttrDocs];
3149-
}
3150-
def : MutualExclusions<[SYCLIntelRegister, SYCLIntelBankWidth]>;
3151-
3152-
def SYCLIntelNumBanks : InheritableAttr {
3153-
let Spellings = [CXX11<"intel", "numbanks">];
3154-
let Args = [ExprArgument<"Value">];
3155-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3156-
let Documentation = [SYCLIntelNumBanksAttrDocs];
3157-
}
3158-
3159-
def SYCLIntelPrivateCopies : InheritableAttr {
3160-
let Spellings = [CXX11<"intel", "private_copies">];
3161-
let Args = [ExprArgument<"Value">];
3162-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3163-
let Documentation = [SYCLIntelPrivateCopiesAttrDocs];
3164-
}
3165-
def : MutualExclusions<[SYCLIntelRegister, SYCLIntelPrivateCopies]>;
3166-
3167-
// Two string arguments.
3168-
def SYCLIntelMerge : Attr {
3169-
let Spellings = [CXX11<"intel", "merge">];
3170-
let Args = [StringArgument<"Name">, StringArgument<"Direction">];
3171-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3172-
let Documentation = [SYCLIntelMergeAttrDocs];
3173-
}
3174-
def : MutualExclusions<[SYCLIntelRegister, SYCLIntelMerge]>;
3175-
3176-
def SYCLIntelMaxReplicates : InheritableAttr {
3177-
let Spellings = [CXX11<"intel", "max_replicates">];
3178-
let Args = [ExprArgument<"Value">];
3179-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3180-
let Documentation = [SYCLIntelMaxReplicatesAttrDocs];
3181-
}
3182-
def : MutualExclusions<[SYCLIntelRegister, SYCLIntelMaxReplicates]>;
3183-
3184-
def SYCLIntelSimpleDualPort : Attr {
3185-
let Spellings = [CXX11<"intel", "simple_dual_port">];
3186-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3187-
let Documentation = [SYCLIntelSimpleDualPortAttrDocs];
3188-
}
3189-
def : MutualExclusions<[SYCLIntelRegister, SYCLIntelSimpleDualPort]>;
3190-
3191-
def SYCLIntelPipe : TypeAttr {
3192-
let Spellings = [GNU<"pipe">];
3193-
let Args = [StringArgument<"Mode">];
3194-
let LangOpts = [SYCLIsDevice];
3195-
let Documentation = [SYCLIntelPipeDocs];
3196-
}
3197-
3198-
def SYCLIntelPipeIO : InheritableAttr {
3199-
let Spellings = [GNU<"io_pipe_id">];
3200-
let Args = [ExprArgument<"ID">];
3201-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3202-
let Subjects = SubjectList<[Var]>;
3203-
let Documentation = [SYCLIntelPipeIOAttrDocs];
3204-
}
3205-
32062906
// Variadic integral arguments.
3207-
def SYCLIntelBankBits : Attr {
3208-
let Spellings = [CXX11<"intel", "bank_bits">];
3209-
let Args = [VariadicExprArgument<"Args">];
3210-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3211-
let Documentation = [SYCLIntelBankBitsDocs];
3212-
}
3213-
def : MutualExclusions<[SYCLIntelRegister, SYCLIntelBankBits]>;
3214-
def : MutualExclusions<[SYCLIntelRegister, SYCLIntelNumBanks]>;
3215-
3216-
def SYCLIntelForcePow2Depth : InheritableAttr {
3217-
let Spellings = [CXX11<"intel", "force_pow2_depth">];
3218-
let Args = [ExprArgument<"Value">];
3219-
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
3220-
let Documentation = [SYCLIntelForcePow2DepthAttrDocs];
3221-
}
3222-
def : MutualExclusions<[SYCLIntelRegister, SYCLIntelForcePow2Depth]>;
3223-
def : MutualExclusions<[SYCLIntelRegister, SYCLIntelMemory]>;
3224-
32252907
def Naked : InheritableAttr {
32262908
let Spellings = [GCC<"naked">, Declspec<"naked">];
32272909
let Subjects = SubjectList<[Function]>;

0 commit comments

Comments
 (0)