Page MenuHomePhabricator

bader (Alexey Bader)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 23 2014, 2:13 AM (352 w, 5 d)

Recent Activity

Wed, Jan 20

bader added a comment to D89909: [SYCL] Implement SYCL address space attributes handling.

Ping.

Wed, Jan 20, 2:06 AM · Restricted Project, Restricted Project

Wed, Jan 13

bader updated the diff for D89909: [SYCL] Implement SYCL address space attributes handling.

Re-base patch and fix lit test failures.

Wed, Jan 13, 10:29 AM · Restricted Project, Restricted Project
bader added a comment to D89909: [SYCL] Implement SYCL address space attributes handling.

If you prefer to continue this route then you should just document your dialect sematic somewhere publicly accessible and avoid aliasing to OpenCL, or target address spaces. So it would become a proper language dialect implementation.

Wed, Jan 13, 10:25 AM · Restricted Project, Restricted Project

Dec 19 2020

bader accepted D93540: [clang] Use enum for LangOptions::SYCLVersion instead of unsigned.

@erichkeane, @mdtoguchi, we should upstream support for SYCL-2020 version in addition to SYCL-2017.

Dec 19 2020, 7:23 AM · Restricted Project

Dec 12 2020

bader committed rGa500a4358789: [CodeGen][AMDGPU] Fix ICE for static initializer IR generation (authored by bader).
[CodeGen][AMDGPU] Fix ICE for static initializer IR generation
Dec 12 2020, 12:27 PM
bader closed D92782: [CodeGen][AMDGPU] Fix ICE for static initializer IR generation.
Dec 12 2020, 12:27 PM · Restricted Project

Dec 10 2020

bader committed rG3631e080c4e8: [Doc] Update branch name in Phabricator documentation (authored by bader).
[Doc] Update branch name in Phabricator documentation
Dec 10 2020, 11:25 AM
bader closed D93020: [Doc] Update branch name in Phabricator documentation.
Dec 10 2020, 11:25 AM · Restricted Project
bader added a reviewer for D93020: [Doc] Update branch name in Phabricator documentation: mehdi_amini.
Dec 10 2020, 3:25 AM · Restricted Project
bader requested review of D93020: [Doc] Update branch name in Phabricator documentation.
Dec 10 2020, 3:18 AM · Restricted Project

Dec 9 2020

bader committed rGbe9b4bbdfc22: [MCJIT] Add cmake variables to customize ittapi git location and revision. (authored by bader).
[MCJIT] Add cmake variables to customize ittapi git location and revision.
Dec 9 2020, 10:24 AM
bader closed D91935: [MCJIT] Add cmake variables to customize ittapi git location and revision..
Dec 9 2020, 10:24 AM · Restricted Project
bader added a comment to D91935: [MCJIT] Add cmake variables to customize ittapi git location and revision..

In my opinion , it would be better to to build against an installed version of the library, rather than fetching the git source. But I don't have any objections to this specific patch, because it is updating something that is already in tree.

Dec 9 2020, 9:00 AM · Restricted Project
bader added a comment to D89909: [SYCL] Implement SYCL address space attributes handling.

It was mentioned that the changes in the type system with address spaces is undesirable for SYCL because you indend to parse existing C++ code as-is. This contradicts the intended semantic of address spaces where the whole point of it is to modify the standard types and therefore a compilation of C++ with the standard semantic is only guaranteed when the attribute is not used at all.

Right, but I don't think it's related to the address space attributes. It was mentioned in the context of re-using OpenCL *mode* for SYCL device compilation, which modifies types which does use address space attribute explicitly. "Existing C++ code" doesn't use address space attributes and our solution does differentiate explicitly annotated type. The difference with OpenCL mode is that SYCL doesn't change types by modifying "default" address space attribute and allows conversion from/to "default" address space. As I mentioned in RFC, according to my understanding this patch doesn't contradict Embedded C requirements regarding address space attribute usage. I think the spec allows an implementation to define conversion rules between address spaces and doesn't imply type change based on the declaration scope - it's OpenCL specific behavior.

Ok, if you plan to follow the Embedded C semantic (which your current patch confirms) then you should just reuse the existing target address spaces and extend the implementation with the ability to specify the relation among address spaces. The patch that you have mentioned earlier https://reviews.llvm.org/D62574 is providing this logic already and it looks good aside from testing. I would suggest to discuss with @ebevhan the timeline for committing it as the testing could be done using SYCL implementation. Alternatively, you could consider reusing the relevant parts of the patch if @ebevhan has no objections to that.

Dec 9 2020, 5:54 AM · Restricted Project, Restricted Project
bader added a comment to D91935: [MCJIT] Add cmake variables to customize ittapi git location and revision..

@tstellar, are you okay with the change?
Please, let us know if you have any additional questions.

Dec 9 2020, 3:08 AM · Restricted Project

Dec 8 2020

bader updated the diff for D92782: [CodeGen][AMDGPU] Fix ICE for static initializer IR generation.

Fix clang-format issues.

Dec 8 2020, 4:57 AM · Restricted Project

Dec 7 2020

bader updated the diff for D89909: [SYCL] Implement SYCL address space attributes handling.

Move CodeGen crash fix to a separate review request: https://reviews.llvm.org/D92782

Dec 7 2020, 1:16 PM · Restricted Project, Restricted Project
bader added inline comments to D89909: [SYCL] Implement SYCL address space attributes handling.
Dec 7 2020, 12:41 PM · Restricted Project, Restricted Project
bader requested review of D92782: [CodeGen][AMDGPU] Fix ICE for static initializer IR generation.
Dec 7 2020, 12:19 PM · Restricted Project

Dec 3 2020

bader added inline comments to D89909: [SYCL] Implement SYCL address space attributes handling.
Dec 3 2020, 1:55 PM · Restricted Project, Restricted Project
bader updated the diff for D89909: [SYCL] Implement SYCL address space attributes handling.

Apply code review comment from @rjmccall

Dec 3 2020, 1:41 PM · Restricted Project, Restricted Project

Nov 30 2020

bader added a comment to D89909: [SYCL] Implement SYCL address space attributes handling.

I didn't sense any agreement or any sort of a conclusion on the RFC. Moreover, I didn't feel at all that the existing address space attribute was a good fit. I was suggesting to add a different attribute that isn't an address space attribute from Embedded C. I don't understand what you gain from the existing address space attribute at the moment.

Nov 30 2020, 12:16 PM · Restricted Project, Restricted Project

Nov 24 2020

bader added a comment to D91935: [MCJIT] Add cmake variables to customize ittapi git location and revision..

Can you explain more about what llorg is and why this change is needed?

Nov 24 2020, 10:58 AM · Restricted Project
bader accepted D91935: [MCJIT] Add cmake variables to customize ittapi git location and revision..

@etyurin, let me know when it's ready for commit.

Nov 24 2020, 10:40 AM · Restricted Project
bader added a comment to D91935: [MCJIT] Add cmake variables to customize ittapi git location and revision..

Hi @etyurin ,
I do not have commit access - could you please land it?

Nov 24 2020, 3:57 AM · Restricted Project
bader requested changes to D91935: [MCJIT] Add cmake variables to customize ittapi git location and revision..

I also suggest using CMake's ExternalProject_Add command to checkout sources instead of running a set of execute_process commands.

Nov 24 2020, 3:56 AM · Restricted Project

Nov 18 2020

bader added a comment to D89909: [SYCL] Implement SYCL address space attributes handling.

Did anyone conclude there that the language address spaces should be added for SYCL? I can't see any of this. In fact I don't even think there was any conclusion on the RFC. You should first make your design clear and agreed before going ahead with the implementation. I personally still think that address space AST attribute is not the right path for SYCL. And I haven't seen any evidence that it is the best solution to what you are trying to achieve.

Nov 18 2020, 8:49 AM · Restricted Project, Restricted Project
bader added inline comments to D89909: [SYCL] Implement SYCL address space attributes handling.
Nov 18 2020, 5:19 AM · Restricted Project, Restricted Project

Nov 13 2020

bader updated the diff for D89909: [SYCL] Implement SYCL address space attributes handling.

Upload full patch after removing sycl_constant address space attribute support.

Nov 13 2020, 8:29 AM · Restricted Project, Restricted Project
bader updated the diff for D89909: [SYCL] Implement SYCL address space attributes handling.

Remove support for sycl_constant address space attribute.

Nov 13 2020, 8:27 AM · Restricted Project, Restricted Project
bader added inline comments to D89909: [SYCL] Implement SYCL address space attributes handling.
Nov 13 2020, 5:49 AM · Restricted Project, Restricted Project

Nov 11 2020

bader updated subscribers of D89909: [SYCL] Implement SYCL address space attributes handling.

In the RFC it has been discussed to either use target address spaces or perhaps to introduce a new attribute to reflect a semantic needed for SYCL, but it seems to me in this change you are building on top of the existing language address space attribute with new entries for SYCL.

http://lists.llvm.org/pipermail/cfe-dev/2020-August/066632.html

Nov 11 2020, 6:44 AM · Restricted Project, Restricted Project

Oct 26 2020

bader added a reviewer for D89909: [SYCL] Implement SYCL address space attributes handling: erichkeane.
Oct 26 2020, 4:31 AM · Restricted Project, Restricted Project

Oct 21 2020

bader added a comment to D80932: [SYCL] Make default address space a superset of OpenCL address spaces..

Alternative approach with SYCL specific semantic attributes - https://reviews.llvm.org/D89909.

Oct 21 2020, 1:35 PM · Restricted Project
bader requested review of D89909: [SYCL] Implement SYCL address space attributes handling.
Oct 21 2020, 1:34 PM · Restricted Project, Restricted Project

Sep 29 2020

bader committed rG9263931fcccd: [SYCL] Assume SYCL device functions are convergent (authored by bader).
[SYCL] Assume SYCL device functions are convergent
Sep 29 2020, 5:24 AM
bader closed D87282: [SYCL] Assume SYCL device functions are convergent.
Sep 29 2020, 5:24 AM · Restricted Project
bader updated the diff for D87282: [SYCL] Assume SYCL device functions are convergent.

Applied Ronan's suggestion.

Sep 29 2020, 4:31 AM · Restricted Project

Sep 28 2020

bader added a comment to D88424: [clang][codegen] Remove the insertion of `correctly-rounded-divide-sqrt-fp-math` fn-attr..

You might need add [OpenCL] tag to the commit message.

Sep 28 2020, 10:15 AM · Restricted Project
bader accepted D88424: [clang][codegen] Remove the insertion of `correctly-rounded-divide-sqrt-fp-math` fn-attr..
Sep 28 2020, 10:14 AM · Restricted Project
bader added reviewers for D87282: [SYCL] Assume SYCL device functions are convergent: Naghasan, keryell.
Sep 28 2020, 10:04 AM · Restricted Project
bader accepted D88303: [clang][codegen] Remove the insertion of `correctly-rounded-divide-sqrt-fp-math` fn-attr..

Thanks!

Sep 28 2020, 8:36 AM · Restricted Project
bader added a comment to D88303: [clang][codegen] Remove the insertion of `correctly-rounded-divide-sqrt-fp-math` fn-attr..

I'm okay with this change in general. One note though.

Sep 28 2020, 2:22 AM · Restricted Project

Sep 8 2020

bader requested review of D87282: [SYCL] Assume SYCL device functions are convergent.
Sep 8 2020, 5:55 AM · Restricted Project

Jul 29 2020

bader committed rG8d27be8dbaff: [OpenCL] Add global_device and global_host address spaces (authored by bader).
[OpenCL] Add global_device and global_host address spaces
Jul 29 2020, 7:25 AM
bader closed D82174: [OpenCL] Add global_device and global_host address spaces.
Jul 29 2020, 7:25 AM · Restricted Project

Jun 26 2020

bader added a comment to D80932: [SYCL] Make default address space a superset of OpenCL address spaces..

@Anastasia, if we make this change specific to SYCL mode, will it address your concerns?

I can't answer this question for the reasons I have explained above.

Sorry, I'm not sure that I get your concern correctly, so let me clarify: is it allowing conversion between pointers w/ and w/o address space annotation in non-SYCL mode or using OpenCL address space attributes in SYCL mode?

Just to help you to understand the proposed design, I created the full patch for address space handling in SYCL: https://github.com/bader/llvm/pull/18. There are few CodeGen tests validating LLVM IR for SPIR target. Fee free to ask any questions on this PR.

Thanks! This is good but it is only an implementation of the design. Deducing the design from an implementation is time-consuming and not sure it is even feasible. I don't want to waste our time to provide you detailed feedback based on my interpretation of your design and invalid assumptions. I don't want to bind you to any particular format and we don't have any strict requirement for this in LLVM either, but I would encourage you to take a look at some of RFC threads sent to cfe-dev that explain new design concepts. Perhaps, they can help you to understand what information can be provided as a starting point to new design discussions.

Particularly I would suggest covering these two points:

  • SYCL specifies address spaces as classes and it is not very obvious how did you come from libraries classes to modifications in Clang? I believe there are a number of design choices that you could make. One might think that you can just implement address space classes using existing Clang functionality. But if it is not sufficient it is important to understand what modifications are required and why.
  • Other aspects that are important to highlight whether your design has any limitations. For example, I don't quite understand your need for SPIR*SYCLDeviceTargetInfo. Is there anything in your design that limits compilation to one particular target?

Overall, I see that there are a lot of changes in CodeGen that are related to the language semantic. I believe that CodeGen is supposed to be dialing primarily with target-specific logic and I don't know if you should change them to query target specific details instead. Also most of your CodeGen changes are not related to OpenCL so I would make sure to loop @rjmccall in this thread.

Jun 26 2020, 5:24 AM · Restricted Project

Jun 17 2020

bader committed rG0bdcd95bf20f: [SYCL][OpenMP] Implement thread-local storage restriction (authored by Fznamznon).
[SYCL][OpenMP] Implement thread-local storage restriction
Jun 17 2020, 4:49 AM
bader closed D81641: [SYCL][OpenMP] Implement thread-local storage restriction.
Jun 17 2020, 4:49 AM · Restricted Project
bader committed rG93cd4115799c: [NFC] Run clang-format on clang/test/OpenMP/nvptx_target_codegen.cpp (authored by bader).
[NFC] Run clang-format on clang/test/OpenMP/nvptx_target_codegen.cpp
Jun 17 2020, 3:13 AM
bader added a comment to D81641: [SYCL][OpenMP] Implement thread-local storage restriction.

Seems that test/OpenMP/nvptx_target_codegen.cpp is completely not formatted. If I apply suggestion from pre-merge checks, this will look like a big unrelated to this patch change and it will contradict with the whole file style.

Jun 17 2020, 3:12 AM · Restricted Project

Jun 9 2020

bader added a comment to D80932: [SYCL] Make default address space a superset of OpenCL address spaces..

@Anastasia, if we make this change specific to SYCL mode, will it address your concerns?

I can't answer this question for the reasons I have explained above.

Jun 9 2020, 1:14 PM · Restricted Project

Jun 5 2020

bader added a comment to D80932: [SYCL] Make default address space a superset of OpenCL address spaces..

I think my biggest problem is that I don't understand how you can just run C++ libraries on OpenCL devices. If we were able to compile plain C++ for OpenCL devices would we not just do it? But OpenCL devices have certain constraints. Also aren't libraries typically customized for performance depending on the range of HW they are being run on? I see the modifications are inevitable.

Jun 5 2020, 1:29 PM · Restricted Project

Jun 3 2020

bader added a comment to D80932: [SYCL] Make default address space a superset of OpenCL address spaces..
Jun 3 2020, 7:38 AM · Restricted Project

Jun 1 2020

bader created D80932: [SYCL] Make default address space a superset of OpenCL address spaces..
Jun 1 2020, 8:33 AM · Restricted Project

May 30 2020

bader committed rGbd85b7d66887: [OpenMP][SYCL] Do not crash on attempt to diagnose unsupported type use (authored by Fznamznon).
[OpenMP][SYCL] Do not crash on attempt to diagnose unsupported type use
May 30 2020, 3:09 AM
bader closed D80829: [OpenMP][SYCL] Do not crash on attempt to diagnose unsupported type use.
May 30 2020, 3:09 AM · Restricted Project

May 29 2020

bader committed rGcf6cc662eeee: [OpenMP][SYCL] Improve diagnosing of unsupported types usage (authored by Fznamznon).
[OpenMP][SYCL] Improve diagnosing of unsupported types usage
May 29 2020, 8:08 AM
bader closed D74387: [OpenMP][SYCL] Improve diagnosing of unsupported types usage.
May 29 2020, 8:08 AM · Restricted Project

May 22 2020

bader committed rGe95ee300c053: [SYCL] Prohibit arithmetic operations for incompatible pointers (authored by bader).
[SYCL] Prohibit arithmetic operations for incompatible pointers
May 22 2020, 4:11 AM
bader closed D80317: [SYCL] Prohibit arithmetic operations for incompatible pointers.
May 22 2020, 4:11 AM · Restricted Project

May 21 2020

bader updated the diff for D80317: [SYCL] Prohibit arithmetic operations for incompatible pointers.

Fix formatting in clang/test/Sema/address_spaces.c

May 21 2020, 12:59 PM · Restricted Project
bader added inline comments to D80317: [SYCL] Prohibit arithmetic operations for incompatible pointers.
May 21 2020, 11:21 AM · Restricted Project
bader updated the diff for D80317: [SYCL] Prohibit arithmetic operations for incompatible pointers.
  • Added C test case with address_space attribute.
  • Move isAddressSpaceOverlapping from PointerType to QualType.
  • Move C++ test case to clang/test/SemaCXX
May 21 2020, 11:21 AM · Restricted Project
bader added a comment to D80317: [SYCL] Prohibit arithmetic operations for incompatible pointers.

Thanks for the review.
I've enabled the diagnostics for all the modes.
I also applied the refactoring suggested by @rjmccall. Hopefully I understand it correctly.

May 21 2020, 8:36 AM · Restricted Project
bader updated the diff for D80317: [SYCL] Prohibit arithmetic operations for incompatible pointers.

Enable diagnostics for non-OpenCL modes and applied refactoring proposed by John.

May 21 2020, 6:26 AM · Restricted Project

May 20 2020

bader created D80317: [SYCL] Prohibit arithmetic operations for incompatible pointers.
May 20 2020, 1:11 PM · Restricted Project
bader added inline comments to D80317: [SYCL] Prohibit arithmetic operations for incompatible pointers.
May 20 2020, 1:11 PM · Restricted Project

Apr 2 2020

bader added a comment to D77220: [SYCL] Enable Open CL types required for implementing the SYCL headers..

@bader : Is this what you meant? Feel free to add any reviewers you want for this. Note it is still dependent on D71016.

Apr 2 2020, 9:12 AM
bader added reviewers for D77220: [SYCL] Enable Open CL types required for implementing the SYCL headers.: Anastasia, keryell, Naghasan.
Apr 2 2020, 9:12 AM

Mar 24 2020

bader accepted D76620: [SYCL] Implement __builtin_unique_stable_name..

LGTM. Thanks!

Mar 24 2020, 8:02 AM · Restricted Project

Mar 12 2020

bader added a comment to D75685: Add MS Mangling for OpenCL Pipe types, add mangling test..

LGTM. Thanks!

Mar 12 2020, 7:03 AM · Restricted Project

Mar 7 2020

bader committed rG118b057f1268: [SYCL] Driver option to select SYCL version (authored by Ruyk).
[SYCL] Driver option to select SYCL version
Mar 7 2020, 11:23 AM

Mar 1 2020

bader added a comment to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.

This landed here: https://github.com/llvm/llvm-project/commit/bd97704eaaaab5a95ecb048ce343c1a4be5d94e5

It broke tests on mac: http://45.33.8.238/mac/9011/step_7.txt

Please take a look, and if it takes a while please revert while you investigate.

@thakis, thank for letting me know. I've reverted it at 740ed617f7d4d16e7883636c5eff994f8be7eba4. Sorry for inconvenience.

Mar 1 2020, 7:34 AM · Restricted Project

Feb 27 2020

bader committed rG740ed617f7d4: Revert "[SYCL] Driver option to select SYCL version" (authored by bader).
Revert "[SYCL] Driver option to select SYCL version"
Feb 27 2020, 9:52 AM
bader added a reverting change for rGbd97704eaaaa: [SYCL] Driver option to select SYCL version: rG740ed617f7d4: Revert "[SYCL] Driver option to select SYCL version".
Feb 27 2020, 9:52 AM
bader committed rGbd97704eaaaa: [SYCL] Driver option to select SYCL version (authored by Ruyk).
[SYCL] Driver option to select SYCL version
Feb 27 2020, 9:51 AM
bader closed D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.
Feb 27 2020, 9:51 AM · Restricted Project
bader added a comment to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.

This landed here: https://github.com/llvm/llvm-project/commit/bd97704eaaaab5a95ecb048ce343c1a4be5d94e5

It broke tests on mac: http://45.33.8.238/mac/9011/step_7.txt

Please take a look, and if it takes a while please revert while you investigate.

Feb 27 2020, 8:36 AM · Restricted Project

Feb 22 2020

bader updated the diff for D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.

Any other comments?

Feb 22 2020, 3:00 AM · Restricted Project

Feb 20 2020

bader added inline comments to D70172: [CUDA][HIP][OpenMP] Emit deferred diagnostics by a post-parsing AST travese.
Feb 20 2020, 9:06 AM · Restricted Project

Feb 19 2020

bader added inline comments to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.
Feb 19 2020, 4:07 AM · Restricted Project
bader updated the diff for D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.

Rebase to ToT and address comments from Ronan.

Feb 19 2020, 4:07 AM · Restricted Project

Feb 18 2020

bader updated the diff for D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.

Address comments from Victor and Alexey.

Feb 18 2020, 11:02 AM · Restricted Project
bader added inline comments to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.
Feb 18 2020, 2:05 AM · Restricted Project

Feb 17 2020

bader added a comment to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.

Ping.

Feb 17 2020, 11:16 AM · Restricted Project

Feb 11 2020

bader added inline comments to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.
Feb 11 2020, 11:10 AM · Restricted Project
bader updated the summary of D74387: [OpenMP][SYCL] Improve diagnosing of unsupported types usage.
Feb 11 2020, 8:54 AM · Restricted Project
bader added inline comments to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.
Feb 11 2020, 8:44 AM · Restricted Project
bader added inline comments to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.
Feb 11 2020, 8:29 AM · Restricted Project
bader added inline comments to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.
Feb 11 2020, 7:14 AM · Restricted Project
bader updated the diff for D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.

Applied review commits from Alexey.

Feb 11 2020, 7:05 AM · Restricted Project

Feb 7 2020

bader added inline comments to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.
Feb 7 2020, 8:27 AM · Restricted Project
bader added inline comments to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.
Feb 7 2020, 8:09 AM · Restricted Project
bader updated the diff for D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.

Applied code review comments.

Feb 7 2020, 8:09 AM · Restricted Project

Feb 6 2020

bader updated the diff for D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.

Ignore -sycl-std if it used in non-SYCL mode.

Feb 6 2020, 3:13 PM · Restricted Project
bader added inline comments to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.
Feb 6 2020, 8:59 AM · Restricted Project
bader added inline comments to D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.
Feb 6 2020, 8:32 AM · Restricted Project
bader updated the diff for D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.

Applied Alexey's comments.

Feb 6 2020, 8:06 AM · Restricted Project
bader updated the diff for D72857: [SYCL] Driver option to enable SYCL mode and select SYCL version.

Applied suggestions from Alexey and Ruyman and rebased on ToT.

Feb 6 2020, 2:43 AM · Restricted Project