Page MenuHomePhabricator

AlexeySotkin (Alexey Sotkin)
User

Projects

User does not belong to any projects.

User Details

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

Recent Activity

Mon, Feb 25

AlexeySotkin accepted D58504: [OpenCL][8.0.0 Release] Notes for OpenCL.
Mon, Feb 25, 4:19 AM · Restricted Project
AlexeySotkin updated subscribers of D58504: [OpenCL][8.0.0 Release] Notes for OpenCL.
Mon, Feb 25, 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
AlexeySotkin accepted D53809: Fix invalid address space generation for clk_event_t.
Nov 14 2018, 1:35 AM

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

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