Page MenuHomePhabricator

sdmitriev (Sergey Dmitriev)
User

Projects

User does not belong to any projects.

User Details

User Since
Dec 7 2016, 2:42 PM (123 w, 6 d)

Recent Activity

Mar 8 2019

sdmitriev added a comment to D56810: [Mem2Reg] Enable promotion for bitcastable load/store values.

We need this for the internal product which is based on LLVM and there are reasons why hoisting cannot be done in our case (this is actually a different topic).
But regarding the IR expectations, I do not think there are any restrictions for alloca placement. Consider the following example

Mar 8 2019, 11:32 AM · Restricted Project
sdmitriev added a comment to D56810: [Mem2Reg] Enable promotion for bitcastable load/store values.

Ok. As I said earlier we need to created allocas outside of the entry block, and hoisting allocas to the entry block as Eli suggested above would definitely solve the registerization problem because of SROA, but in our case these allocas cannot be hoisted therefore SROA just does not look at them. So calling PromoteMemToReg for such allocas seems to be the only way to force registerization for them. That is the reason why I am trying to enhance it to handle bitcasts even though this functionality already exists in SROA.

Mar 8 2019, 10:15 AM · Restricted Project

Mar 7 2019

sdmitriev added a comment to D56810: [Mem2Reg] Enable promotion for bitcastable load/store values.

*patch

Mar 7 2019, 9:34 PM · Restricted Project
Herald added a project to D56810: [Mem2Reg] Enable promotion for bitcastable load/store values: Restricted Project.

Does anyone have any comments on this match?

Mar 7 2019, 9:32 PM · Restricted Project

Feb 8 2019

sdmitriev committed rGafd612ece97c: [NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value. (authored by sdmitriev).
[NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value.
Feb 8 2019, 3:52 PM
sdmitriev committed rL353582: [NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value..
[NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value.
Feb 8 2019, 3:52 PM
sdmitriev closed D57957: [NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value..
Feb 8 2019, 3:52 PM · Restricted Project
sdmitriev added inline comments to D57957: [NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value..
Feb 8 2019, 11:54 AM · Restricted Project
sdmitriev updated the diff for D57957: [NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value..

Updated title.

Feb 8 2019, 11:54 AM · Restricted Project
sdmitriev updated the diff for D57957: [NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value..

[NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value.

Feb 8 2019, 11:45 AM · Restricted Project
sdmitriev created D57957: [NFC] Avoid passing blocks vector to the OutlineRegionInfo constructor by value..
Feb 8 2019, 9:10 AM · Restricted Project

Feb 7 2019

sdmitriev committed rG807960e6ef44: [CodeExtractor] Update function's assumption cache after extracting blocks from… (authored by sdmitriev).
[CodeExtractor] Update function's assumption cache after extracting blocks from…
Feb 7 2019, 10:56 PM
sdmitriev committed rL353500: [CodeExtractor] Update function's assumption cache after extracting blocks from….
[CodeExtractor] Update function's assumption cache after extracting blocks from…
Feb 7 2019, 10:55 PM
sdmitriev closed D57215: [CodeExtractor] Update function's assumption cache after extracting blocks from it.
Feb 7 2019, 10:55 PM · Restricted Project
sdmitriev added inline comments to D57215: [CodeExtractor] Update function's assumption cache after extracting blocks from it.
Feb 7 2019, 2:03 PM · Restricted Project
sdmitriev added inline comments to D57215: [CodeExtractor] Update function's assumption cache after extracting blocks from it.
Feb 7 2019, 12:06 PM · Restricted Project
sdmitriev updated the diff for D57215: [CodeExtractor] Update function's assumption cache after extracting blocks from it.

Revised changes to remove extracted llvm.assume calls from the old function's assumption cache instead of clearing it.

Feb 7 2019, 12:02 PM · Restricted Project

Feb 6 2019

sdmitriev updated the diff for D57215: [CodeExtractor] Update function's assumption cache after extracting blocks from it.

Removed unrelated change (lib/Transforms/IPO/PartialInlining.cpp, line 184) from the patch.

Feb 6 2019, 4:15 PM · Restricted Project
sdmitriev added inline comments to D57215: [CodeExtractor] Update function's assumption cache after extracting blocks from it.
Feb 6 2019, 3:45 PM · Restricted Project
sdmitriev added inline comments to D57215: [CodeExtractor] Update function's assumption cache after extracting blocks from it.
Feb 6 2019, 2:53 PM · Restricted Project
sdmitriev added reviewers for D57215: [CodeExtractor] Update function's assumption cache after extracting blocks from it: vsk, fhahn.
Feb 6 2019, 1:23 PM · Restricted Project

Jan 24 2019

sdmitriev created D57215: [CodeExtractor] Update function's assumption cache after extracting blocks from it.
Jan 24 2019, 6:27 PM · Restricted Project

Jan 17 2019

sdmitriev added a comment to D56810: [Mem2Reg] Enable promotion for bitcastable load/store values.

We use this in the internal product based on LLVM. I am not changing existing PromoteMemToReg functionality, just extending it to allow alloca use-def chain to have GEPs with zero indices and bitcasts between alloca and dependent loads/stores as long as the load/store type is bitcastable to the allocated type. This could be beneficial for the common case as well.

Jan 17 2019, 8:50 AM · Restricted Project

Jan 16 2019

sdmitriev added a comment to D56810: [Mem2Reg] Enable promotion for bitcastable load/store values.

I am changing PromoteMemToReg function which can be called from other places besides mem2reg pass, so this change is not limited to mem2reg pass only. Regarding SROA, it does not handle alloca instructions outside of function entry block. We need to create allocas outside of entry in some cases and the use of PromoteMemToReg() seems to be the only option for registerizing them.

Jan 16 2019, 3:50 PM · Restricted Project
sdmitriev added reviewers for D56811: [Mem2Reg] Enable promotion for bitcastable load/store values: davide, aqjune.
Jan 16 2019, 2:38 PM
sdmitriev added reviewers for D56810: [Mem2Reg] Enable promotion for bitcastable load/store values: davide, aqjune.
Jan 16 2019, 2:37 PM · Restricted Project
sdmitriev added a reviewer for D56811: [Mem2Reg] Enable promotion for bitcastable load/store values: chandlerc.
Jan 16 2019, 2:35 PM
sdmitriev added a reviewer for D56810: [Mem2Reg] Enable promotion for bitcastable load/store values: chandlerc.
Jan 16 2019, 2:35 PM · Restricted Project
sdmitriev added a comment to D56811: [Mem2Reg] Enable promotion for bitcastable load/store values.

This patch is a clang's part of this review https://reviews.llvm.org/D56810

Jan 16 2019, 2:23 PM
sdmitriev added a comment to D56810: [Mem2Reg] Enable promotion for bitcastable load/store values.

Associated patch for clang tests https://reviews.llvm.org/D56811

Jan 16 2019, 2:20 PM · Restricted Project
sdmitriev created D56811: [Mem2Reg] Enable promotion for bitcastable load/store values.
Jan 16 2019, 2:16 PM
sdmitriev created D56810: [Mem2Reg] Enable promotion for bitcastable load/store values.
Jan 16 2019, 2:13 PM · Restricted Project

Sep 4 2018

sdmitriev committed rOMP341399: [libomptarget] Remove `Devices` from `RTLInfoTy`.
[libomptarget] Remove `Devices` from `RTLInfoTy`
Sep 4 2018, 1:25 PM
sdmitriev committed rL341399: [libomptarget] Remove `Devices` from `RTLInfoTy`.
[libomptarget] Remove `Devices` from `RTLInfoTy`
Sep 4 2018, 1:25 PM
sdmitriev closed D51653: [libomptarget] Remove `Devices` from `RTLInfoTy`.
Sep 4 2018, 1:25 PM
sdmitriev added a comment to D51653: [libomptarget] Remove `Devices` from `RTLInfoTy`.

Ok.

Sep 4 2018, 1:16 PM
sdmitriev created D51653: [libomptarget] Remove `Devices` from `RTLInfoTy`.
Sep 4 2018, 1:01 PM
sdmitriev added a comment to D51623: [libomptarget] PR38704: Fix erase of ShadowPtrMap.

Ok, I will submit such patch.

Sep 4 2018, 10:48 AM
sdmitriev added a comment to D51623: [libomptarget] PR38704: Fix erase of ShadowPtrMap.

Not related to this patch, but I think there is one more potentially incorrect use of containers in RTLsTy::RegisterLib(). This function may increase size of the global vector Devices when it initializes a new RTL that has not been yet used (see rtl.cpp line 219). This may result in memory reallocation and thus all pointers to the Devices elements that are stored in RTLs (see rtl.cpp line 228) would become invalid. I am not sure if these pointers are really used by RTLs now, but if yes, than it is a problem. RTLsTy::RegisterLib may be called more than once and each call may potentially initialize new RTLs.

Sep 4 2018, 10:17 AM

Aug 3 2018

sdmitriev committed rL338916: [OpenMP] Encode offload target triples into comdat key for offload….
[OpenMP] Encode offload target triples into comdat key for offload…
Aug 3 2018, 1:20 PM
sdmitriev committed rC338916: [OpenMP] Encode offload target triples into comdat key for offload….
[OpenMP] Encode offload target triples into comdat key for offload…
Aug 3 2018, 1:20 PM
sdmitriev closed D50218: [OpenMP] Encode offload target triples into comdat key for offload initialization code.
Aug 3 2018, 1:20 PM
sdmitriev updated the diff for D50218: [OpenMP] Encode offload target triples into comdat key for offload initialization code.
Aug 3 2018, 1:09 PM
sdmitriev updated the diff for D50218: [OpenMP] Encode offload target triples into comdat key for offload initialization code.
Aug 3 2018, 11:15 AM
sdmitriev added inline comments to D50218: [OpenMP] Encode offload target triples into comdat key for offload initialization code.
Aug 3 2018, 10:52 AM
sdmitriev updated the diff for D50218: [OpenMP] Encode offload target triples into comdat key for offload initialization code.

Replaced std::sort with llvm::sort. Added a test for offload target registration code for two offload targets.

Aug 3 2018, 9:36 AM

Aug 2 2018

sdmitriev abandoned D49510: [OpenMP][Clang] Usability improvements for OpenMP offloading.

A simpler solution was proposed while discussing an RFC which I submitted a while ago per Alexey's request. It would lead to (almost) the same results but requires much smaller amount of changes.

Aug 2 2018, 8:28 PM
sdmitriev created D50218: [OpenMP] Encode offload target triples into comdat key for offload initialization code.
Aug 2 2018, 8:16 PM

Jul 18 2018

sdmitriev created D49510: [OpenMP][Clang] Usability improvements for OpenMP offloading.
Jul 18 2018, 2:34 PM

May 11 2018

sdmitriev committed rL332151: [CodeExtractor] Allow extracting blocks with exception handling.
[CodeExtractor] Allow extracting blocks with exception handling
May 11 2018, 3:53 PM
sdmitriev closed D45904: [CodeExtractor] Allow extracting blocks with exception handling.
May 11 2018, 3:53 PM

Apr 27 2018

sdmitriev updated the diff for D45904: [CodeExtractor] Allow extracting blocks with exception handling.
Apr 27 2018, 9:48 AM
sdmitriev added inline comments to D45904: [CodeExtractor] Allow extracting blocks with exception handling.
Apr 27 2018, 9:46 AM

Apr 21 2018

sdmitriev added a reviewer for D45904: [CodeExtractor] Allow extracting blocks with exception handling: rnk.
Apr 21 2018, 10:37 AM

Apr 20 2018

sdmitriev added a reviewer for D45904: [CodeExtractor] Allow extracting blocks with exception handling: andrew.w.kaylor.
Apr 20 2018, 2:16 PM
sdmitriev created D45904: [CodeExtractor] Allow extracting blocks with exception handling.
Apr 20 2018, 2:03 PM

Aug 14 2017

sdmitriev committed rL310841: [OpenMP] libomptarget: move debugging dumps under control of env var….
[OpenMP] libomptarget: move debugging dumps under control of env var…
Aug 14 2017, 8:12 AM
sdmitriev closed D33227: [OpenMP] libomptarget: move debugging dumps under control of environment variable OMP_TARGET_DEBUG by committing rL310841: [OpenMP] libomptarget: move debugging dumps under control of env var….
Aug 14 2017, 8:12 AM · Restricted Project

Jul 17 2017

sdmitriev added a comment to D33227: [OpenMP] libomptarget: move debugging dumps under control of environment variable OMP_TARGET_DEBUG.

If we reached an agreement on the environment variable name and there are no more comments for this change, can it be approved?

Jul 17 2017, 11:09 AM · Restricted Project

Jun 27 2017

sdmitriev added a comment to D33227: [OpenMP] libomptarget: move debugging dumps under control of environment variable OMP_TARGET_DEBUG.

I don't think the environment variable should be named "OMP_TARGET_DEBUG" as that would suggest it is something coming from the OpenMP specification, which I don't believe it is. I'd suggest just keeping the LIBOMPTARGET_DEBUG name at all levels.

Jun 27 2017, 11:17 AM · Restricted Project

Jun 23 2017

sdmitriev added a comment to D33227: [OpenMP] libomptarget: move debugging dumps under control of environment variable OMP_TARGET_DEBUG.

Just to share what I have locally. I have OFFLOAD_DEBUG=1 for the plugin side debug messages, and DEVICE_DEBUG=1 for the deviceRTL side messages.

So are you suggesting that each plugin has its own env variable to turn debug output on/off?

No. I am thinking one should be OK for all plugins.

For LIBOMPTARGET_DEBUG, will it control the device side of the debug message later on?

Jun 23 2017, 9:52 AM · Restricted Project

Jun 7 2017

sdmitriev updated the diff for D33227: [OpenMP] libomptarget: move debugging dumps under control of environment variable OMP_TARGET_DEBUG.

I have changed the name of environment variable which controls debugging dumps to LIBOMPTARGET_DEBUG.

Jun 7 2017, 10:33 AM · Restricted Project

Jun 5 2017

sdmitriev updated subscribers of D32562: [OpenMP] libomptarget: test correction for use with OpenMP 4.5.
Jun 5 2017, 11:05 PM

Jun 2 2017

sdmitriev added a comment to D33851: [OpenMP] libomptarget: eliminate compiler warnings at build.

I do not have commit access, so I cannot commit it myself. Can you please check it in?

Jun 2 2017, 2:47 PM
sdmitriev created D33851: [OpenMP] libomptarget: eliminate compiler warnings at build.
Jun 2 2017, 2:18 PM

May 31 2017

sdmitriev added a comment to D33227: [OpenMP] libomptarget: move debugging dumps under control of environment variable OMP_TARGET_DEBUG.

*inconsistent

May 31 2017, 2:32 PM · Restricted Project
sdmitriev added a comment to D33227: [OpenMP] libomptarget: move debugging dumps under control of environment variable OMP_TARGET_DEBUG.

I can change the name for this environment variable it as you suggested, but it will make it consistent with other environment variable's name that is already used by libomptarget - OMP_TARGET_OFFLOAD (look at openmp/libomptarget/src/omptarget.cpp, line 285).

May 31 2017, 2:31 PM · Restricted Project
sdmitriev added a comment to D33227: [OpenMP] libomptarget: move debugging dumps under control of environment variable OMP_TARGET_DEBUG.

Ping

May 31 2017, 2:13 PM · Restricted Project

May 30 2017

sdmitriev added a comment to D33254: [OpenMP][Driver] Put target binary for each offload target into a separate section.

I do not have commit access yet. Can you please check it in?

May 30 2017, 9:04 AM

May 26 2017

sdmitriev added a reviewer for D33254: [OpenMP][Driver] Put target binary for each offload target into a separate section: ABataev.
May 26 2017, 3:59 PM
sdmitriev added a comment to D33509: [OpenMP] Create COMDAT group for OpenMP offload registration code to avoid multiple copies.

I do not have commit access yet, so I cannot commit this patch myself. Can you please check it in for me?

May 26 2017, 3:58 PM

May 24 2017

sdmitriev created D33509: [OpenMP] Create COMDAT group for OpenMP offload registration code to avoid multiple copies.
May 24 2017, 11:08 AM
sdmitriev added a reviewer for D33254: [OpenMP][Driver] Put target binary for each offload target into a separate section: grokos.
May 24 2017, 10:15 AM

May 18 2017

sdmitriev added a comment to D33227: [OpenMP] libomptarget: move debugging dumps under control of environment variable OMP_TARGET_DEBUG.

Defining int DebugLevel in omptarget.cpp only would create a dependency between libomptarget.so and each plugin which I guess should be avoided. I assume we do not want to link plugins with libomptarget library.

May 18 2017, 8:17 AM · Restricted Project

May 16 2017

sdmitriev created D33254: [OpenMP][Driver] Put target binary for each offload target into a separate section.
May 16 2017, 1:28 PM

May 15 2017

sdmitriev created D33227: [OpenMP] libomptarget: move debugging dumps under control of environment variable OMP_TARGET_DEBUG.
May 15 2017, 7:44 PM · Restricted Project

Apr 27 2017

sdmitriev added a comment to D32562: [OpenMP] libomptarget: test correction for use with OpenMP 4.5.

I think I do not have commit access, so I cannot commit this patch myself.

Apr 27 2017, 9:01 AM

Apr 26 2017

sdmitriev created D32562: [OpenMP] libomptarget: test correction for use with OpenMP 4.5.
Apr 26 2017, 2:35 PM