Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SYCL] Adding support for 'sycl_special_class' attribute. #3892

Merged
merged 117 commits into from
Oct 21, 2021
Merged
Show file tree
Hide file tree
Changes from 114 commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
846e694
[SYCL] Implement sycl_special_class attribute
Fznamznon Jul 10, 2020
5e679f8
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jun 5, 2021
bdb1ff5
Fix build issues
zahiraam Jun 7, 2021
203edd6
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jun 7, 2021
dc74a5e
Fixing build errors
zahiraam Jun 7, 2021
65ac140
Indent
zahiraam Jun 7, 2021
6586846
Indent
zahiraam Jun 7, 2021
a3c118b
Fixed build errors
zahiraam Jun 8, 2021
30c5a03
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jun 8, 2021
3999939
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jun 9, 2021
c3f8757
Fix LIT tests
zahiraam Jun 11, 2021
ab4c68e
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jun 11, 2021
58db6b5
Fixed build errors
zahiraam Jun 15, 2021
c009836
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jun 15, 2021
05b0af8
Fixed build errors
zahiraam Jun 16, 2021
425bb97
Fixed build errors
zahiraam Jun 18, 2021
890e4b0
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jun 18, 2021
89b49c8
Respond to review comments
zahiraam Jun 21, 2021
b897a02
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jun 21, 2021
159b484
Respond to review comments
zahiraam Jun 21, 2021
fe1450e
Removed the enum argument from the attribute definition
zahiraam Jun 22, 2021
f7d9f31
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jun 22, 2021
9c59465
Formatting
zahiraam Jun 22, 2021
f4cfd63
Fix LIT test pragma-attribute-supported-attributes-list
zahiraam Jun 22, 2021
b1b708e
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jun 23, 2021
ad5c50f
Respond to review comments
zahiraam Jun 23, 2021
8771fb3
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jun 23, 2021
94b56df
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jul 7, 2021
68fb2b5
Making special classes type agnostic
zahiraam Jul 26, 2021
204cccb
fix conflicts
zahiraam Jul 27, 2021
59e5f0b
fix conflicts
zahiraam Jul 27, 2021
eb7997d
Fix format
zahiraam Jul 27, 2021
c34f5f2
Remove argument attribute from macro SYCL_SPECIAL_CLASS
zahiraam Jul 28, 2021
ed896c6
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Jul 28, 2021
5b95a01
Apply suggestions from code review to fix pre-commit tests.
bader Aug 1, 2021
8922d48
[SYCL][ROCm] Fix building libclc for AMD (#4199)
npmiller Jul 28, 2021
d439bfe
[SYCL] Fix some Doxygen build warnings (#4170)
vmaksimo Jul 28, 2021
c37c9bb
[SYCL] Add splitting module capabilities when compiling for NVPTX and…
Naghasan Jul 29, 2021
2842545
[SYCL] Restore the correct initialization for _statically_coalesce_va…
dm-vodopyanov Jul 29, 2021
87b5473
[opencl-aot] Add option to control output of verbose log (#4179)
linkren Jul 29, 2021
4b3fdde
[Doc] Update SYCL CUDA documentation (#4214)
Naghasan Jul 30, 2021
f7b1782
[SYCL][LIBCLC] Add support for non-uniform [I/F]Mul op in ptx-nvidiac…
jchlanda Jul 30, 2021
170b344
[SYCL][LIBCLC] Add subgroup builtins for AMDGCN (#4208)
jchlanda Jul 30, 2021
5862f84
[SYCL] Construct context from first device in unit tests (#4142)
npmiller Jul 30, 2021
e7352f2
[SYCL] Expansion of the class CG to CommandGroup (#4216)
denis-kabanov Jul 30, 2021
23ff551
[SYCL] Fix true missing on Windows (#4211)
Jul 30, 2021
c1b1a74
[SYCL][LIBCLC] Add sqrt for doubles for amdgcn-amdhsa (#4223)
npmiller Aug 1, 2021
96f7cb5
[Driver][SYCL] Enable adding of default device triple (#4175)
mdtoguchi Aug 1, 2021
aa8d164
[Driver][SYCL] Adjust header inclusion for source + generated footer …
mdtoguchi Aug 2, 2021
7275b34
[SYCL] Update windows driver version (#4215)
NikitaRudenkoIntel Aug 2, 2021
f308a4e
[SYCL] Fix initialization of interoperability memory objects (#4205)
sergey-semenov Aug 2, 2021
5950cd0
[SYCL] Replace filename default argument of code_location to nullptr …
Aug 2, 2021
6a3589b
[SYCL][Doc] Update ROCM section of GetStartedGuide (#4229)
rolandschulz Aug 2, 2021
71e85cf
Respond to review comments
zahiraam Aug 2, 2021
c2602c6
Remove driver changes
zahiraam Aug 2, 2021
8db682d
Remove non-related changes
zahiraam Aug 2, 2021
9aa5193
Fix SyclOptReport::handleSpecialType
zahiraam Aug 2, 2021
81e7a4f
Fix indentation
zahiraam Aug 2, 2021
4bd54d7
Remove unrelated changes
zahiraam Aug 2, 2021
e886e79
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Aug 5, 2021
631e1f3
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Aug 6, 2021
b912ab3
Fix for ESIMD failures
zahiraam Aug 8, 2021
261def5
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Aug 8, 2021
92375e4
Fix indentation
zahiraam Aug 8, 2021
f6efdec
Fix conflics
zahiraam Aug 10, 2021
999fea8
Fix conflics
zahiraam Aug 11, 2021
9fee895
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Aug 11, 2021
1da2b10
Fix conflics
zahiraam Aug 11, 2021
f5e7918
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Aug 16, 2021
5e4cdbc
Removed checkSyclAccessorType
zahiraam Aug 18, 2021
c2a28d8
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Aug 25, 2021
3be4eef
OptReport is now taking the type of the class
zahiraam Aug 25, 2021
f0f382f
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Sep 7, 2021
bdd04d7
Corrected the assert comments, fixed the string generated in the opt …
zahiraam Sep 7, 2021
e12eec1
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Sep 8, 2021
bf22398
Addressed Elizabeth's review comments
zahiraam Sep 8, 2021
364fb99
Fixed comment referring to 'sample'
zahiraam Sep 8, 2021
62ea8ce
Merge branch 'pr_2091' of https://github.com/zahiraam/llvm-1 into pr_…
zahiraam Sep 8, 2021
e4d66fc
Remove unrelated change
zahiraam Sep 8, 2021
e97af83
Deleted CodeGenSYCL/special-classes.cpp
zahiraam Sep 8, 2021
281e337
Remove unrelated change
zahiraam Sep 8, 2021
497b6ac
Remove unrelated change
zahiraam Sep 8, 2021
ddf8394
Remove unrelated change
zahiraam Sep 8, 2021
1896639
Remove unrelated change
zahiraam Sep 8, 2021
24c6f3a
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Sep 9, 2021
2efd65d
Remove unrelated change
zahiraam Sep 9, 2021
cac1b20
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Sep 9, 2021
ecbb2be
Remove unrelated change
zahiraam Sep 9, 2021
2116ca5
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Sep 10, 2021
7b734e0
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Sep 14, 2021
72c2b17
Removed the __init_esimd method
zahiraam Sep 14, 2021
b8e840c
Leaving the removal of __init_esimd method for another patch
zahiraam Sep 15, 2021
98463ad
Refactor code to handle accesors' parameters.
zahiraam Sep 15, 2021
7130ef4
Fix comments.
zahiraam Sep 15, 2021
c397857
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Sep 16, 2021
30c3ca8
Addressed review comments
zahiraam Sep 16, 2021
9696f11
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Sep 21, 2021
730de70
Put back the init_esimd and responded to review. The init_esimd chang…
zahiraam Sep 22, 2021
f0e7cd9
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Sep 22, 2021
b0297aa
Indentation
zahiraam Sep 23, 2021
a2595b9
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Sep 23, 2021
ae23b63
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Oct 4, 2021
4383f9f
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Oct 5, 2021
179abad
Fix LIT failures
zahiraam Oct 5, 2021
b8dd5cf
Fix format
zahiraam Oct 5, 2021
b0356ce
Fix format
zahiraam Oct 5, 2021
4457a96
Removing the property-list handing from (fake) FE header
zahiraam Oct 5, 2021
50a09ce
Merge remote-tracking branch 'remote/sycl' into pr_2091
zahiraam Oct 12, 2021
d7a5105
Making explicit the test for accessor kind and leave init_esimd as is…
zahiraam Oct 13, 2021
e0c44d3
Respond to review commentse
zahiraam Oct 14, 2021
a736a7f
Respond to review comment
zahiraam Oct 14, 2021
71e8d97
Respond to review comment
zahiraam Oct 14, 2021
949aead
Fix formatting
zahiraam Oct 14, 2021
462ff09
Fix formatting
zahiraam Oct 14, 2021
d170717
Removed clang-format directives and fixed indentation
zahiraam Oct 15, 2021
80cb0d6
Fix indentation
zahiraam Oct 15, 2021
1aa856c
Fix indentation
zahiraam Oct 15, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions clang/include/clang/Basic/Attr.td
Original file line number Diff line number Diff line change
Expand Up @@ -1232,6 +1232,13 @@ def SYCLKernel : InheritableAttr {
let Documentation = [SYCLKernelDocs];
}

def SYCLSpecialClass: InheritableAttr {
let Spellings = [Clang<"sycl_special_class">];
AaronBallman marked this conversation as resolved.
Show resolved Hide resolved
let Subjects = SubjectList<[CXXRecord]>;
let LangOpts = [SYCLIsDevice, SilentlyIgnoreSYCLIsHost];
let Documentation = [SYCLSpecialClassDocs];
}

// Marks functions which must not be vectorized via horizontal SIMT widening,
// e.g. because the function is already vectorized. Used to mark SYCL
// explicit SIMD kernels and functions.
Expand Down
20 changes: 20 additions & 0 deletions clang/include/clang/Basic/AttrDocs.td
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,26 @@ The SYCL kernel in the previous code sample meets these expectations.
}];
}

def SYCLSpecialClassDocs : Documentation {
let Category = DocCatStmt;
let Content = [{
The ``__attribute__((sycl_special_class))`` attribute is used in SYCL
headers to indicate that a class or a struct needs additional handling when
it is passed from host to device. Please note that this is an attribute that is
used for internal implementation and not intended to be used by external users.
It is used for ``accessor``, ``sampler`` , or ``stream`` classes.
The types that own this attribute are excluded from device-copyable and other
type-legalization steps.

.. code-block:: c++
class __attribute__((sycl_special_class)) accessor {

private:
void __init() {}
};
}];
}

def SYCLSimdDocs : Documentation {
let Category = DocCatFunction;
let Content = [{
Expand Down
3 changes: 3 additions & 0 deletions clang/lib/Sema/SemaDeclAttr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9782,6 +9782,9 @@ static void ProcessDeclAttribute(Sema &S, Scope *scope, Decl *D,
case ParsedAttr::AT_SYCLSimd:
handleSimpleAttribute<SYCLSimdAttr>(S, D, AL);
break;
case ParsedAttr::AT_SYCLSpecialClass:
handleSimpleAttribute<SYCLSpecialClassAttr>(S, D, AL);
break;
case ParsedAttr::AT_SYCLDevice:
handleSYCLDeviceAttr(S, D, AL);
break;
Expand Down
Loading