Page MenuHomePhabricator

AlexeySotkin (Alexey Sotkin)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 4 2016, 8:20 AM (337 w, 5 d)

Recent Activity

May 18 2021

AlexeySotkin abandoned D36044: [OpenCL] -cl-ext option can overwrite OpenCL features imported from a module.
May 18 2021, 6:17 AM

Feb 25 2021

AlexeySotkin accepted D92244: [OpenCL] Prevent adding vendor extensions for all targets.

LGTM, Thanks.

Feb 25 2021, 12:24 AM · Restricted Project

Feb 17 2020

AlexeySotkin added a comment to D71460: [OpenCL] Fix support for cl_khr_mipmap_image_writes.

Is there any chance to get this commit cherry-picked to 10.x branch?

Feb 17 2020, 1:08 AM · Restricted Project

Feb 7 2020

AlexeySotkin added a comment to rGf780e15caf1b: [OpenCL] Fix support for cl_khr_mipmap_image_writes.

Is there any chance to get this commit cherry-picked to 10.x branch?

Feb 7 2020, 12:37 AM

Feb 5 2020

AlexeySotkin committed rGf780e15caf1b: [OpenCL] Fix support for cl_khr_mipmap_image_writes (authored by AlexeySotkin).
[OpenCL] Fix support for cl_khr_mipmap_image_writes
Feb 5 2020, 4:10 AM
AlexeySotkin closed D71460: [OpenCL] Fix support for cl_khr_mipmap_image_writes.
Feb 5 2020, 4:10 AM · Restricted Project

Jan 27 2020

AlexeySotkin added inline comments to D71460: [OpenCL] Fix support for cl_khr_mipmap_image_writes.
Jan 27 2020, 2:43 AM · Restricted Project
AlexeySotkin updated the diff for D71460: [OpenCL] Fix support for cl_khr_mipmap_image_writes.
Jan 27 2020, 2:43 AM · Restricted Project

Dec 19 2019

AlexeySotkin updated the diff for D71460: [OpenCL] Fix support for cl_khr_mipmap_image_writes.

Rename color to depth

Dec 19 2019, 12:59 AM · Restricted Project

Dec 18 2019

AlexeySotkin added inline comments to D71460: [OpenCL] Fix support for cl_khr_mipmap_image_writes.
Dec 18 2019, 3:42 AM · Restricted Project
AlexeySotkin added a comment to D71460: [OpenCL] Fix support for cl_khr_mipmap_image_writes.

What about get_image_num_mip_levels functions defined in the extension specification?

Edit: I mean, should the get_image_num_mip_levels(write_only img) function be only available if cl_khr_mipmap_image_writes extension is supported, or cl_khr_mipmap_image is enough?

Dec 18 2019, 3:18 AM · Restricted Project

Dec 13 2019

AlexeySotkin accepted D71272: [OpenCL] Pretty print __private addr space.
Dec 13 2019, 5:40 AM · Restricted Project
AlexeySotkin added inline comments to D71272: [OpenCL] Pretty print __private addr space.
Dec 13 2019, 5:40 AM · Restricted Project
AlexeySotkin updated the summary of D71460: [OpenCL] Fix support for cl_khr_mipmap_image_writes.
Dec 13 2019, 4:36 AM · Restricted Project
AlexeySotkin created D71460: [OpenCL] Fix support for cl_khr_mipmap_image_writes.
Dec 13 2019, 4:18 AM · Restricted Project
AlexeySotkin added inline comments to D71272: [OpenCL] Pretty print __private addr space.
Dec 13 2019, 12:16 AM · Restricted Project

May 30 2019

AlexeySotkin added inline comments to D60763: Prototype OpenCL BIFs using Tablegen.
May 30 2019, 1:50 AM · Restricted Project, Restricted Project

May 21 2019

AlexeySotkin added inline comments to D60763: Prototype OpenCL BIFs using Tablegen.
May 21 2019, 12:07 AM · Restricted Project, Restricted Project

May 13 2019

AlexeySotkin added a comment to D53023: Prototype OpenCL BIFs using Tablegen.

LGTM! @joey, any idea when it will be landed?

May 13 2019, 6:53 AM

Apr 10 2019

AlexeySotkin committed rG1b01f9728f9b: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of… (authored by AlexeySotkin).
[OpenCL] Re-fix invalid address space generation for clk_event_t arguments of…
Apr 10 2019, 11:19 PM
AlexeySotkin committed rC358151: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of….
[OpenCL] Re-fix invalid address space generation for clk_event_t arguments of…
Apr 10 2019, 11:19 PM
AlexeySotkin committed rL358151: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of….
[OpenCL] Re-fix invalid address space generation for clk_event_t arguments of…
Apr 10 2019, 11:19 PM
AlexeySotkin closed D59985: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of enqueue_kernel builtin function.
Apr 10 2019, 11:19 PM · Restricted Project, Restricted Project

Apr 8 2019

AlexeySotkin updated the diff for D59985: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of enqueue_kernel builtin function.

The patch has been updated. Now it checks if the argument isNullPointerConstant and emits null pointer directly in this case.

Apr 8 2019, 1:05 AM · Restricted Project, Restricted Project

Apr 4 2019

AlexeySotkin added a comment to D59985: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of enqueue_kernel builtin function.

Alternative way to fix it is to use isNullPointerConstant like we do in SemaOpenCLBuiltinEnqueueKernel. So in case we have a zero literal value we can emit ConstantPointerNull directly, without EmitScalarExpr .

Ok and if it's not 0 the code gets rejected?

It must be rejected by SemaOpenCLBuiltinEnqueueKernel and it is already done https://godbolt.org/z/MFN3VU

Ok, cool. Perhaps this is indeed a cleaner approach then?

Apr 4 2019, 3:54 AM · Restricted Project, Restricted Project
AlexeySotkin added a comment to D59985: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of enqueue_kernel builtin function.

Alternative way to fix it is to use isNullPointerConstant like we do in SemaOpenCLBuiltinEnqueueKernel. So in case we have a zero literal value we can emit ConstantPointerNull directly, without EmitScalarExpr .

Ok and if it's not 0 the code gets rejected?

Apr 4 2019, 3:36 AM · Restricted Project, Restricted Project

Apr 3 2019

AlexeySotkin added a comment to D59985: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of enqueue_kernel builtin function.

Alternative way to fix it is to use isNullPointerConstant like we do in SemaOpenCLBuiltinEnqueueKernel. So in case we have a zero literal value we can emit ConstantPointerNull directly, without EmitScalarExpr .

Apr 3 2019, 8:15 AM · Restricted Project, Restricted Project
AlexeySotkin added inline comments to D59985: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of enqueue_kernel builtin function.
Apr 3 2019, 6:15 AM · Restricted Project, Restricted Project
AlexeySotkin added inline comments to D59985: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of enqueue_kernel builtin function.
Apr 3 2019, 6:06 AM · Restricted Project, Restricted Project
AlexeySotkin added inline comments to D59985: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of enqueue_kernel builtin function.
Apr 3 2019, 3:15 AM · Restricted Project, Restricted Project

Mar 29 2019

AlexeySotkin added inline comments to D53809: Fix invalid address space generation for clk_event_t.
Mar 29 2019, 4:40 AM · Restricted Project
AlexeySotkin created D59985: [OpenCL] Re-fix invalid address space generation for clk_event_t arguments of enqueue_kernel builtin function.
Mar 29 2019, 3:13 AM · Restricted Project, Restricted Project

Feb 25 2019

AlexeySotkin accepted D58504: [OpenCL][8.0.0 Release] Notes for OpenCL.
Feb 25 2019, 4:19 AM · Restricted Project
AlexeySotkin updated subscribers of D58504: [OpenCL][8.0.0 Release] Notes for OpenCL.
Feb 25 2019, 3:46 AM · Restricted Project

Feb 21 2019

AlexeySotkin added inline comments to D58504: [OpenCL][8.0.0 Release] Notes for OpenCL.
Feb 21 2019, 7:57 AM · Restricted Project
AlexeySotkin added inline comments to D58504: [OpenCL][8.0.0 Release] Notes for OpenCL.
Feb 21 2019, 7:49 AM · Restricted Project

Feb 20 2019

AlexeySotkin added inline comments to D58388: [OpenCL] Simplify LLVM IR generated for OpenCL blocks.
Feb 20 2019, 7:01 AM · Restricted Project
AlexeySotkin updated the diff for D58388: [OpenCL] Simplify LLVM IR generated for OpenCL blocks.

Fix resolving of block invoke function in case of sequence of assignments.

Feb 20 2019, 6:57 AM · Restricted Project

Feb 19 2019

AlexeySotkin updated the diff for D58388: [OpenCL] Simplify LLVM IR generated for OpenCL blocks.

Fix ObjC lit tests failure

Feb 19 2019, 9:56 AM · Restricted Project
AlexeySotkin created D58388: [OpenCL] Simplify LLVM IR generated for OpenCL blocks.
Feb 19 2019, 8:35 AM · Restricted Project

Feb 15 2019

AlexeySotkin created D58277: [OpenCL] Change type of block pointer for OpenCL.
Feb 15 2019, 3:46 AM · Restricted Project, Restricted Project

Nov 14 2018

AlexeySotkin committed rL346838: [OpenCL] Fix invalid address space generation for clk_event_t.
[OpenCL] Fix invalid address space generation for clk_event_t
Nov 14 2018, 1:42 AM
AlexeySotkin committed rC346838: [OpenCL] Fix invalid address space generation for clk_event_t.
[OpenCL] Fix invalid address space generation for clk_event_t
Nov 14 2018, 1:42 AM
AlexeySotkin closed D53809: Fix invalid address space generation for clk_event_t.
Nov 14 2018, 1:42 AM · Restricted Project
AlexeySotkin accepted D53809: Fix invalid address space generation for clk_event_t.
Nov 14 2018, 1:35 AM · Restricted Project

Nov 2 2018

Herald added a reviewer for D51484: [OpenCL] Add support of cl_intel_device_side_avc_motion_estimation extension: shafik.
Nov 2 2018, 7:35 AM

Oct 23 2018

AlexeySotkin added a comment to D43783: [OpenCL] Remove block invoke function from emitted block literal struct.

Sorry for digging up an old commit...

Apparently this broke block arguments, e.g. the following test case:

int foo(int (^ bl)(void)) {
  return bl();
}

int get21() {
  return foo(^{return 21;});
}

int get42() {
  return foo(^{return 42;});
}

In particular, the VarDecl that getBlockExpr() sees doesn't have an initializer when the called block comes from an argument (causing clang to crash).

Sorry for the delay. I think block should not be allowed as function argument since this generally leads indirect function calls therefore requires support of function pointer. It will rely on optimizations to get rid of indirect function calls.

The idea was to allow blocks as function parameters because they are statically known at each function call. This can be resolved later at IR level instead of frontend. I am also not sure there can be other corner cases where it wouldn't work in Clang since we can't leverage analysis passes here. I feel this might be a risky thing to do in Clang. Currently it doesn't work for the examples provided and therefore breaking the compliance with the spec.

Oct 23 2018, 1:00 AM

Oct 19 2018

AlexeySotkin added a comment to D51484: [OpenCL] Add support of cl_intel_device_side_avc_motion_estimation extension.

Ping

Oct 19 2018, 12:36 AM

Sep 17 2018

AlexeySotkin added inline comments to D51484: [OpenCL] Add support of cl_intel_device_side_avc_motion_estimation extension.
Sep 17 2018, 9:44 AM

Sep 3 2018

AlexeySotkin committed rL341314: [Index] Update tests allowing double4 type to be "invalid".
[Index] Update tests allowing double4 type to be "invalid"
Sep 3 2018, 5:45 AM
AlexeySotkin committed rC341314: [Index] Update tests allowing double4 type to be "invalid".
[Index] Update tests allowing double4 type to be "invalid"
Sep 3 2018, 5:44 AM
AlexeySotkin committed rC341309: [OpenCL] Traverse vector types for ocl extensions support.
[OpenCL] Traverse vector types for ocl extensions support
Sep 3 2018, 4:46 AM
AlexeySotkin committed rL341309: [OpenCL] Traverse vector types for ocl extensions support.
[OpenCL] Traverse vector types for ocl extensions support
Sep 3 2018, 4:44 AM
AlexeySotkin closed D51296: [OpenCL] Traverse vector types for ocl extensions support.
Sep 3 2018, 4:44 AM

Aug 1 2018

AlexeySotkin added a comment to D49725: [OpenCL] Forbid size dependent types used as kernel arguments.

FYI: @asavonic, the email address you have associated with your commit id is AlexeySotkin@/etc/mailname which is getting stuck in the moderation queue as not being signed up to the mailing list. You may want to correct your svn information as I am not certain what our list software will think of that domain.

Aug 1 2018, 3:16 AM

Jul 31 2018

AlexeySotkin committed rC338432: [OpenCL] Forbid size dependent types used as kernel arguments.
[OpenCL] Forbid size dependent types used as kernel arguments
Jul 31 2018, 1:27 PM
AlexeySotkin committed rL338432: [OpenCL] Forbid size dependent types used as kernel arguments.
[OpenCL] Forbid size dependent types used as kernel arguments
Jul 31 2018, 1:27 PM
AlexeySotkin closed D49725: [OpenCL] Forbid size dependent types used as kernel arguments.
Jul 31 2018, 1:27 PM
AlexeySotkin committed rL338427: [OpenCL] Check for invalid kernel arguments in array types.
[OpenCL] Check for invalid kernel arguments in array types
Jul 31 2018, 12:47 PM
AlexeySotkin committed rC338427: [OpenCL] Check for invalid kernel arguments in array types.
[OpenCL] Check for invalid kernel arguments in array types
Jul 31 2018, 12:47 PM
AlexeySotkin closed D49723: [OpenCL] Check for invalid kernel arguments in array types.
Jul 31 2018, 12:47 PM · Restricted Project

Apr 25 2018

AlexeySotkin added a comment to D46015: [OpenCL] Add separate read_only and write_only pipe IR types.

There should not be need for bitcast. Could give an example ? Thanks.

If I have a write_only pipe as the argument to get_pipe_max_packets(), and this uses a single __get_pipe_num_packets() function taking a read_only pipe, we will automatically get a bitcast:

%20 = call i32 bitcast (i32 (%opencl.pipe_ro_t*, i32, i32)* @__get_pipe_max_packets to i32 (%opencl.pipe_wo_t*, i32, i32)*)(%opencl.pipe_wo_t* %19, i32 4, i32 4)

Sorry, but I don't quite understand what does get_pipe_max_packets(), uses __get_pipe_num_packets() mean. Could you clarify? Possibly OpenCL C source example could help.

I mean that without these two separate versions, the call to __get_pipe_num_packets() that is emitted can include a bitcast.

For example:

void foo(read_only pipe int r, write_only pipe int w) {
  get_pipe_num_packets(w);
  get_pipe_num_packets(r);
}

get_pipe_num_packets(w) is seen first, causing i32 @__get_pipe_num_packets(%opencl.pipe_wo_t*, i32, i32) to be implicitly declared.

When the call to __get_pipe_num_packets() is emitted, this will be with an autogenerated bitcast from the type of the implicit declaration, i.e. i32 (%opencl.pipe_wo_t*, i32, i32)* to the type in the emitted expression, i.e. i32 (%opencl.pipe_ro_t*, i32, i32)*.

Here is the relevant section of IR:

%0 = load %opencl.pipe_wo_t*, %opencl.pipe_wo_t** %w.addr, align 8
%1 = call i32 @__get_pipe_num_packets(%opencl.pipe_wo_t* %0, i32 4, i32 4)
%2 = load %opencl.pipe_ro_t*, %opencl.pipe_ro_t** %r.addr, align 8
%3 = call i32 bitcast (i32 (%opencl.pipe_wo_t*, i32, i32)* @__get_pipe_num_packets to i32 (%opencl.pipe_ro_t*, i32, i32)*)(%opencl.pipe_ro_t* %2, i32 4, i32 4)

If we swap the two uses of get_pipe_num_packets() in the example above, then the type of the implicit declaration will be i32 (%opencl.pipe_ro_t*, i32, i32)* and bitcasts will instead be automatically generated when using get_pipe_num_packets() with a write_only pipe. It seems especially unfortunate that the type of the implicit declaration varies depending on the access qualifier of the first use.

Apr 25 2018, 12:30 PM
AlexeySotkin added a comment to D46015: [OpenCL] Add separate read_only and write_only pipe IR types.

There should not be need for bitcast. Could give an example ? Thanks.

If I have a write_only pipe as the argument to get_pipe_max_packets(), and this uses a single __get_pipe_num_packets() function taking a read_only pipe, we will automatically get a bitcast:

%20 = call i32 bitcast (i32 (%opencl.pipe_ro_t*, i32, i32)* @__get_pipe_max_packets to i32 (%opencl.pipe_wo_t*, i32, i32)*)(%opencl.pipe_wo_t* %19, i32 4, i32 4)
Apr 25 2018, 8:59 AM
AlexeySotkin added a comment to D46015: [OpenCL] Add separate read_only and write_only pipe IR types.

There should not be need for bitcast. Could give an example ? Thanks.

Apr 25 2018, 8:21 AM

Apr 24 2018

AlexeySotkin added inline comments to D46015: [OpenCL] Add separate read_only and write_only pipe IR types.
Apr 24 2018, 3:33 PM
AlexeySotkin added a comment to D46015: [OpenCL] Add separate read_only and write_only pipe IR types.

It is not clear why we need two versions of get_pipe_num_packets and get_pipe_max_packets builtins. There is only one instruction per builtin in the SPIR-V spec. I think splitting the IR type is enough for translation to SPIR-V purposes.

Apr 24 2018, 3:31 PM

Apr 20 2018

AlexeySotkin committed rC330404: [OpenCL] Add 'denorms-are-zero' function attribute.
[OpenCL] Add 'denorms-are-zero' function attribute
Apr 20 2018, 1:12 AM
AlexeySotkin committed rL330404: [OpenCL] Add 'denorms-are-zero' function attribute.
[OpenCL] Add 'denorms-are-zero' function attribute
Apr 20 2018, 1:11 AM
AlexeySotkin closed D45808: [OpenCL] Add 'denorms-are-zero' function attribute.
Apr 20 2018, 1:11 AM

Mar 2 2018

AlexeySotkin committed rL326566: Add possibility to specify output stream for CompilerInstance.
Add possibility to specify output stream for CompilerInstance
Mar 2 2018, 4:22 AM
AlexeySotkin committed rC326566: Add possibility to specify output stream for CompilerInstance.
Add possibility to specify output stream for CompilerInstance
Mar 2 2018, 4:22 AM
AlexeySotkin closed D43809: Add possibility to specify output stream for CompilerInstance.
Mar 2 2018, 4:22 AM

Feb 22 2018

AlexeySotkin committed rC325771: [OpenCL] Add '-cl-uniform-work-group-size' compile option.
[OpenCL] Add '-cl-uniform-work-group-size' compile option
Feb 22 2018, 3:56 AM
AlexeySotkin committed rL325771: [OpenCL] Add '-cl-uniform-work-group-size' compile option.
[OpenCL] Add '-cl-uniform-work-group-size' compile option
Feb 22 2018, 3:56 AM
AlexeySotkin closed D43570: [OpenCL] Add '-cl-uniform-work-group-size' compile option.
Feb 22 2018, 3:56 AM

Nov 27 2017

AlexeySotkin committed rL319011: [OpenCL] Add extensions cl_intel_subgroups and cl_intel_subgroups_short.
[OpenCL] Add extensions cl_intel_subgroups and cl_intel_subgroups_short
Nov 27 2017, 1:14 AM
AlexeySotkin closed D39936: [OpenCL] Add extensions cl_intel_subgroups and cl_intel_subgroups_short.
Nov 27 2017, 1:14 AM

Nov 23 2017

AlexeySotkin added a comment to D39936: [OpenCL] Add extensions cl_intel_subgroups and cl_intel_subgroups_short.
Nov 23 2017, 3:27 AM

Nov 20 2017

AlexeySotkin updated the diff for D39936: [OpenCL] Add extensions cl_intel_subgroups and cl_intel_subgroups_short.

Replacing #define macros with explicit declarations

Nov 20 2017, 11:04 PM

Nov 10 2017

AlexeySotkin created D39936: [OpenCL] Add extensions cl_intel_subgroups and cl_intel_subgroups_short.
Nov 10 2017, 11:29 PM

Jul 28 2017

AlexeySotkin added reviewers for D36044: [OpenCL] -cl-ext option can overwrite OpenCL features imported from a module: yaxunl, Anastasia, bader.
Jul 28 2017, 10:48 PM
AlexeySotkin updated subscribers of D36044: [OpenCL] -cl-ext option can overwrite OpenCL features imported from a module.
Jul 28 2017, 10:46 PM
AlexeySotkin updated the diff for D36044: [OpenCL] -cl-ext option can overwrite OpenCL features imported from a module.

Added tests

Jul 28 2017, 10:44 PM
AlexeySotkin created D36044: [OpenCL] -cl-ext option can overwrite OpenCL features imported from a module.
Jul 28 2017, 10:44 PM

Jul 26 2017

AlexeySotkin committed rL309155: [OpenCL] Fix access qualifiers metadata for kernel arguments with typedef.
[OpenCL] Fix access qualifiers metadata for kernel arguments with typedef
Jul 26 2017, 11:50 AM
AlexeySotkin closed D35420: [OpenCL] Fix access qualifiers metadata for kernel arguments with typedef by committing rL309155: [OpenCL] Fix access qualifiers metadata for kernel arguments with typedef.
Jul 26 2017, 11:50 AM
AlexeySotkin updated the diff for D35420: [OpenCL] Fix access qualifiers metadata for kernel arguments with typedef.

Rebasing on tip of trank

Jul 26 2017, 11:32 AM

Jul 18 2017

AlexeySotkin updated the diff for D35420: [OpenCL] Fix access qualifiers metadata for kernel arguments with typedef.

Changing case in the variable name

Jul 18 2017, 3:26 AM

Jul 14 2017

AlexeySotkin added reviewers for D35420: [OpenCL] Fix access qualifiers metadata for kernel arguments with typedef: yaxunl, Anastasia, bader.
Jul 14 2017, 9:01 AM
AlexeySotkin created D35420: [OpenCL] Fix access qualifiers metadata for kernel arguments with typedef.
Jul 14 2017, 8:59 AM

Oct 27 2016

AlexeySotkin closed D25305: [OpenCL] Setting constant address space for array initializers.
Oct 27 2016, 11:20 PM

Oct 26 2016

AlexeySotkin added inline comments to D25305: [OpenCL] Setting constant address space for array initializers.
Oct 26 2016, 8:02 AM
AlexeySotkin updated the diff for D25305: [OpenCL] Setting constant address space for array initializers.

Setting UnnamedAddr to Global

Oct 26 2016, 8:01 AM

Oct 25 2016

AlexeySotkin added inline comments to D25305: [OpenCL] Setting constant address space for array initializers.
Oct 25 2016, 7:48 AM

Oct 24 2016

AlexeySotkin added inline comments to D25305: [OpenCL] Setting constant address space for array initializers.
Oct 24 2016, 1:51 AM

Oct 14 2016

AlexeySotkin added a comment to D25305: [OpenCL] Setting constant address space for array initializers.

Now there should be both :)

Oct 14 2016, 8:31 AM
AlexeySotkin updated the diff for D25305: [OpenCL] Setting constant address space for array initializers.

Squashing commits

Oct 14 2016, 8:28 AM

Oct 13 2016

AlexeySotkin updated the diff for D25305: [OpenCL] Setting constant address space for array initializers.

Adding test checking address space of array initializer

Oct 13 2016, 2:19 AM

Oct 6 2016

AlexeySotkin updated subscribers of D25305: [OpenCL] Setting constant address space for array initializers.
Oct 6 2016, 5:46 AM
AlexeySotkin retitled D25305: [OpenCL] Setting constant address space for array initializers from to [OpenCL] Setting constant address space for array initializers.
Oct 6 2016, 12:54 AM