Page MenuHomePhabricator

AndreyChurbanov (Andrey Churbanov)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 16 2015, 7:54 AM (322 w, 9 h)

Recent Activity

Today

AndreyChurbanov updated the diff for D103648: [OpenMP] libomp: fix dynamic loop dispatcher.

Some comments removed.

Thu, Jun 17, 12:10 PM · Restricted Project

Yesterday

AndreyChurbanov committed rG610fea65e296: [OpenMP] libomp: fixed implementation of OMP 5.1 inoutset task dependence type (authored by AndreyChurbanov).
[OpenMP] libomp: fixed implementation of OMP 5.1 inoutset task dependence type
Wed, Jun 16, 4:49 AM
AndreyChurbanov closed D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.
Wed, Jun 16, 4:48 AM · Restricted Project, Restricted Project

Tue, Jun 15

AndreyChurbanov accepted D104303: [OpenMP] Remove unused variables from libomp code.

LGTM

Tue, Jun 15, 10:53 AM · Restricted Project

Mon, Jun 14

AndreyChurbanov reopened D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.
Mon, Jun 14, 3:35 PM · Restricted Project, Restricted Project
AndreyChurbanov updated the diff for D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.

Fixed backwards compatibility problem introduced by previous version of the patch.
That is restored the size of task dependence flag to 8 bits in clang, and instead changed the size of the flag in the library from 32 to 8 bits.
Fixed two tests so that they set all 8 bits of the flag.

Mon, Jun 14, 3:35 PM · Restricted Project, Restricted Project

Thu, Jun 10

AndreyChurbanov added inline comments to D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.
Thu, Jun 10, 7:21 AM · Restricted Project, Restricted Project

Wed, Jun 9

AndreyChurbanov added a reverting change for rGa1f550e05254: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type: rG9ce2e5e7003d: Revert "[OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type".
Wed, Jun 9, 7:39 AM
AndreyChurbanov committed rG9ce2e5e7003d: Revert "[OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type" (authored by AndreyChurbanov).
Revert "[OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type"
Wed, Jun 9, 7:39 AM
AndreyChurbanov added a reverting change for D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type: rG9ce2e5e7003d: Revert "[OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type".
Wed, Jun 9, 7:39 AM · Restricted Project, Restricted Project
AndreyChurbanov accepted D103625: [OpenMP] Lazily assign root affinity.

LGTM

Wed, Jun 9, 6:13 AM · Restricted Project
AndreyChurbanov accepted D103647: [OpenMP] Add GOMP 5.0 version symbols to API.

LGTM. One nit: probably clang-format suggestions can be applied.

Wed, Jun 9, 6:06 AM · Restricted Project
AndreyChurbanov accepted D103637: [OpenMP] Fix affinity determine capable algorithm on Linux.

LGTM

Wed, Jun 9, 5:37 AM · Restricted Project

Mon, Jun 7

AndreyChurbanov updated the diff for D103648: [OpenMP] libomp: fix dynamic loop dispatcher.

Enable one more test fixed by this patch.

Mon, Jun 7, 12:11 PM · Restricted Project
AndreyChurbanov committed rGa1f550e05254: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type (authored by AndreyChurbanov).
[OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type
Mon, Jun 7, 11:43 AM
AndreyChurbanov closed D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.
Mon, Jun 7, 11:43 AM · Restricted Project, Restricted Project

Thu, Jun 3

AndreyChurbanov requested review of D103648: [OpenMP] libomp: fix dynamic loop dispatcher.
Thu, Jun 3, 2:23 PM · Restricted Project

Tue, Jun 1

AndreyChurbanov accepted D102883: [OpenMP] Define named constants for interop's foreign runtime ID.

LGTM

Tue, Jun 1, 10:13 AM · Restricted Project

Mon, May 31

AndreyChurbanov added inline comments to D102883: [OpenMP] Define named constants for interop's foreign runtime ID.
Mon, May 31, 1:35 PM · Restricted Project

Mon, May 24

AndreyChurbanov accepted D102955: [OpenMP] Fix crashing critical section with hint clause.

LGTM

Mon, May 24, 1:23 PM · Restricted Project

Fri, May 21

AndreyChurbanov committed rGaa6e7e8da8f5: [OpenMP] libomp: move warnings to after library initialization (authored by AndreyChurbanov).
[OpenMP] libomp: move warnings to after library initialization
Fri, May 21, 1:48 PM
AndreyChurbanov closed D102676: [OpenMP] libomp: move warnings to after library initialization.
Fri, May 21, 1:47 PM · Restricted Project
AndreyChurbanov accepted D102865: [OpenMP] Add L2-Tile equivalence for KNL.

LGTM

Fri, May 21, 8:25 AM · Restricted Project

Wed, May 19

AndreyChurbanov requested changes to D86419: fix omp post-generation event statement error on windows.

Hi,
So is the standalone Windows build not failing anymore?

Sorry, I've accepted the patch prematurely I think.
With this patch build is fixed for cmake generators "Visual Studio...", but is broken for e.g. "Unix Makefiles" (I guess this is regardless of whether the build is standalone).
I've accepted the patch when I tried to build clang and standalone libomp using "Visual Studio 16 2019" cmake generator. But "Unix Makefiles" generator still does not work.
Searching for ConfigurationName I found the page https://cmake.org/cmake/help/latest/variable/CMAKE_CFG_INTDIR.html that suggests to use CMAKE_CFG_INTDIR.
And indeed the CMAKE_CFG_INTDIR has the value "$(ConfigurationName)" for "Visual Studio 16 2019" generator and the value "." for "Unix Makefiles" generator, thus the build works for both generators if I replaced $(ConfigurationName) with ${CMAKE_CFG_INTDIR} in your patch.
Could you please check if this replacement works for you?

Wed, May 19, 5:25 PM · Restricted Project

May 18 2021

AndreyChurbanov added inline comments to D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.
May 18 2021, 3:00 PM · Restricted Project, Restricted Project
AndreyChurbanov requested review of D102676: [OpenMP] libomp: move warnings to after library initialization.
May 18 2021, 2:30 AM · Restricted Project
AndreyChurbanov added inline comments to D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.
May 18 2021, 1:25 AM · Restricted Project, Restricted Project
AndreyChurbanov updated the diff for D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.

rebased

May 18 2021, 1:21 AM · Restricted Project, Restricted Project

May 17 2021

AndreyChurbanov accepted D86419: fix omp post-generation event statement error on windows.

LGTM

May 17 2021, 2:08 PM · Restricted Project
AndreyChurbanov accepted D102584: [OpenMP] Fixed Bug 49356.

LGTM, with one nit: alias kmp_int64 is never used in the test now, so the declaration can be removed.

May 17 2021, 3:56 AM · Restricted Project

May 13 2021

AndreyChurbanov updated the diff for D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.

Fixed one more codegen test.

May 13 2021, 9:14 AM · Restricted Project, Restricted Project

May 12 2021

AndreyChurbanov updated the diff for D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.

Addressed review comments.
Fixed tests.

May 12 2021, 1:30 PM · Restricted Project, Restricted Project

May 11 2021

AndreyChurbanov committed rG4fb0aaf03381: [OpenMP] Changes to enable MSVC ARM64 build of libomp (authored by pulidocr).
[OpenMP] Changes to enable MSVC ARM64 build of libomp
May 11 2021, 1:04 PM
AndreyChurbanov closed D101173: [OpenMP] Changes to enable MSVC ARM64 build of libomp.
May 11 2021, 1:04 PM · Restricted Project

May 9 2021

AndreyChurbanov added a comment to D101173: [OpenMP] Changes to enable MSVC ARM64 build of libomp.

Thanks. Do I need to worry about that one clang-tidy message, or do anything else before committing?

May 9 2021, 2:18 PM · Restricted Project

May 7 2021

AndreyChurbanov accepted D101173: [OpenMP] Changes to enable MSVC ARM64 build of libomp.

LGTM, though I cannot test Aarch64 functionality.

May 7 2021, 1:01 PM · Restricted Project

May 5 2021

AndreyChurbanov added a comment to D101882: [OpenMP] Fix hidden helper + affinity assignment.

I cannot reproduce the regression with this patch. On 48 core (96 hyperthreads) machine with settings

GOMP_CPU_AFFINITY=0-95
OMP_NUM_THREADS=96

I got the following results:

May 5 2021, 1:33 PM · Restricted Project

May 4 2021

AndreyChurbanov added a comment to D96893: [OpenMP] libomp minor cleanup.

I temporarily disabled assertion until the bug with dependences is fixed.

Did you look at my observations, I documented in https://bugs.llvm.org/show_bug.cgi?id=49723 . I did not completely understand, in which case the behavior could be triggered. If you agree, I'll change to heap allocation of the dep node.

May 4 2021, 9:08 AM · Restricted Project
AndreyChurbanov added a comment to D96893: [OpenMP] libomp minor cleanup.

Hi @AndreyChurbanov I'm seeing a test failure (openmp/runtime/test/ompt/tasks/task_if0-depend.c) with this change under a -DCMAKE_BUILD_TYPE=debug build setup with our internal branch based off of the newly added KMP_DEBUG_ASSERT(n >= 0);. This doesn't seem to reproduce directly under trunk but looking into it I think the bug is optimization dependent but still present.

I added print code to the value of n before the assert and on 9fac8496eae809c288096037d7a3f5a1a3d04c7a I get the following values when running the test:
-DCMAKE_BUILD_TYPE=debug
n: 3
n: 1
n: 32763
n: 0
-DCMAKE_BUILD_TYPE=release
n: 3
n: 1
n: -1
n: 0

So on the debug build it passes because 32763>0 but that number only makes sense as an underflow given the test is only spawning 2 threads. In release mode the test passes because the assert is debug only but the -1 makes more sense as a real value. In our testing we get the -1 in the debug build which causes the assert to fire. Let me know if you need more information and also if my analysis here is correct. Thanks!

May 4 2021, 4:48 AM · Restricted Project

Mar 15 2021

AndreyChurbanov accepted D98209: [OpenMP] Fix incorrect KMP_STRLEN() macro on Windows.

LGTM

Mar 15 2021, 11:58 AM · Restricted Project

Mar 9 2021

AndreyChurbanov updated the diff for D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.

Changed the size of task dependences flags from 8 bit to 32 bit, so that runtime does not get garbage data in unused bits of the structure, and can use flags as an integer where it is more convenient than looking at particular bits.

Mar 9 2021, 2:13 PM · Restricted Project, Restricted Project
AndreyChurbanov requested changes to D91002: [OpenMP] Fix asm for arm64-darwin.
Mar 9 2021, 8:09 AM · Restricted Project
AndreyChurbanov committed rGaaf16b80dd4c: [OpenMP] libomp: eliminate pause from atomic CAS loops (authored by AndreyChurbanov).
[OpenMP] libomp: eliminate pause from atomic CAS loops
Mar 9 2021, 7:30 AM
AndreyChurbanov closed D97079: [OpenMP] libomp: eliminate pause from atomic CAS loops.
Mar 9 2021, 7:30 AM · Restricted Project

Mar 8 2021

AndreyChurbanov added a comment to D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.

I've found a problem with this patch: cannot treat task dependence flags as an integer because it seems clang defines it as 1 byte. Current specification has 6 kinds of task dependences, so I think we'd better define the struct as 4 bytes just in case. I'll fix the patch for now.

Mar 8 2021, 3:06 PM · Restricted Project, Restricted Project
AndreyChurbanov committed rGe4492b6f31ff: [OpenMP] NFC: temporarily disable assertion until the bug with dependences is… (authored by AndreyChurbanov).
[OpenMP] NFC: temporarily disable assertion until the bug with dependences is…
Mar 8 2021, 11:19 AM

Mar 1 2021

AndreyChurbanov added a comment to D97079: [OpenMP] libomp: eliminate pause from atomic CAS loops.

I think this is architecture specific.

If a CAS failed spuriously, then immediately retry is good. If it failed because another core wrote to the cache line, then we have established that said cache line is somewhat contended, in which case pause() may let the other threads progress faster.

If one thread succeeded then ALL other threads competing on the cache line would fail. So they will not progress faster executing pause instruction. Only gain can be for succeeding thread, that means it executes nothing but atomic in a loop, and that is not a real code example...

Mar 1 2021, 10:27 AM · Restricted Project

Feb 27 2021

AndreyChurbanov accepted D96747: [OpenMP] Fix potential integer overflow in dynamic schedule code.

LGTM

Feb 27 2021, 11:38 AM · Restricted Project

Feb 25 2021

AndreyChurbanov committed rG1df6e58e55a3: [OpenMP] libomp minor cleanup (authored by AndreyChurbanov).
[OpenMP] libomp minor cleanup
Feb 25 2021, 1:46 PM
AndreyChurbanov closed D96893: [OpenMP] libomp minor cleanup.
Feb 25 2021, 1:45 PM · Restricted Project
AndreyChurbanov committed rG493210117785: [OpenMP] libomp: fix ittnotify stack stitching for teams construct (authored by AndreyChurbanov).
[OpenMP] libomp: fix ittnotify stack stitching for teams construct
Feb 25 2021, 1:24 PM
AndreyChurbanov closed D96562: [OpenMP] libomp: fix ittnotify stack stitching for teams construct.
Feb 25 2021, 1:24 PM · Restricted Project

Feb 20 2021

AndreyChurbanov committed rG1611e5473c5e: [OpenMP] libomp: cleanup some resource leaks (authored by AndreyChurbanov).
[OpenMP] libomp: cleanup some resource leaks
Feb 20 2021, 12:28 PM
AndreyChurbanov closed D96892: [OpenMP] libomp: cleanup some resource leaks.
Feb 20 2021, 12:28 PM · Restricted Project
AndreyChurbanov accepted D97088: [OpenMP][NFC] clang-format the whole openmp project.

LGTM

Feb 20 2021, 9:44 AM · Restricted Project

Feb 19 2021

AndreyChurbanov requested review of D97085: [OpenMP] libomp: implement OpenMP 5.1 inoutset task dependence type.
Feb 19 2021, 1:46 PM · Restricted Project, Restricted Project
AndreyChurbanov requested review of D97079: [OpenMP] libomp: eliminate pause from atomic CAS loops.
Feb 19 2021, 12:21 PM · Restricted Project

Feb 18 2021

AndreyChurbanov added a comment to rGcf1ddae7e3ef: [OpenMP][NFC] replaced 'dependencies' with 'dependences' in comments and debug….

Dependencies is a far more common spelling for this.

Feb 18 2021, 12:00 AM

Feb 17 2021

AndreyChurbanov committed rGdab5d6c2ebcc: [OpenMP] fix race condition in test (authored by AndreyChurbanov).
[OpenMP] fix race condition in test
Feb 17 2021, 3:28 PM
AndreyChurbanov committed rGcf1ddae7e3ef: [OpenMP][NFC] replaced 'dependencies' with 'dependences' in comments and debug… (authored by AndreyChurbanov).
[OpenMP][NFC] replaced 'dependencies' with 'dependences' in comments and debug…
Feb 17 2021, 1:39 PM
AndreyChurbanov requested review of D96893: [OpenMP] libomp minor cleanup.
Feb 17 2021, 1:16 PM · Restricted Project
AndreyChurbanov requested review of D96892: [OpenMP] libomp: cleanup some resource leaks.
Feb 17 2021, 1:05 PM · Restricted Project

Feb 16 2021

AndreyChurbanov accepted D96426: [OpenMP] Help static loop code avoid over/underflow.

LGTM

Feb 16 2021, 6:11 AM · Restricted Project

Feb 12 2021

AndreyChurbanov added inline comments to D95820: [OpenMP] Add bounds to num_teams clause (OpenMP 5.1).
Feb 12 2021, 6:02 PM · Restricted Project
AndreyChurbanov committed rG5631842d1810: [OpenMP] NFC: fix test removing the target construct (authored by AndreyChurbanov).
[OpenMP] NFC: fix test removing the target construct
Feb 12 2021, 5:50 PM
AndreyChurbanov added inline comments to D95820: [OpenMP] Add bounds to num_teams clause (OpenMP 5.1).
Feb 12 2021, 5:23 PM · Restricted Project
AndreyChurbanov committed rG091e8daa24de: [OpenMP] fix test adding mapping of shared variables (authored by AndreyChurbanov).
[OpenMP] fix test adding mapping of shared variables
Feb 12 2021, 5:14 PM
AndreyChurbanov added inline comments to D95820: [OpenMP] Add bounds to num_teams clause (OpenMP 5.1).
Feb 12 2021, 4:58 PM · Restricted Project
AndreyChurbanov accepted D96585: [OpenMP] Silence more warning flags.

LGTM

Feb 12 2021, 9:18 AM · Restricted Project
AndreyChurbanov accepted D96584: [OpenMP] Avoid warnings about unused static functions on windows.

LGTM

Feb 12 2021, 9:06 AM · Restricted Project
AndreyChurbanov accepted D96581: [OpenMP] Only use #pragma comment(lib, ...) in MSVC build configurations.

LGTM

Feb 12 2021, 8:36 AM · Restricted Project
AndreyChurbanov accepted D96580: [OpenMP] Fix the check for libpsapi for i386.

LGTM

Feb 12 2021, 8:33 AM · Restricted Project

Feb 11 2021

AndreyChurbanov requested review of D96562: [OpenMP] libomp: fix ittnotify stack stitching for teams construct.
Feb 11 2021, 4:27 PM · Restricted Project
AndreyChurbanov committed rG838dcdb5fc42: [OpenMP] libomp: minor changes to improve library performance (authored by AndreyChurbanov).
[OpenMP] libomp: minor changes to improve library performance
Feb 11 2021, 1:44 PM
AndreyChurbanov closed D95816: [OpenMP] libomp: minor changes to improve library performance.
Feb 11 2021, 1:43 PM · Restricted Project
AndreyChurbanov added inline comments to D95816: [OpenMP] libomp: minor changes to improve library performance.
Feb 11 2021, 1:07 PM · Restricted Project
AndreyChurbanov accepted D96182: [OpenMP] Enable omp_get_num_devices() on Windows.

LGTM

Feb 11 2021, 12:24 PM · Restricted Project

Feb 10 2021

AndreyChurbanov accepted D95820: [OpenMP] Add bounds to num_teams clause (OpenMP 5.1).

LGTM

Feb 10 2021, 11:15 AM · Restricted Project

Feb 9 2021

AndreyChurbanov updated the diff for D95816: [OpenMP] libomp: minor changes to improve library performance.

Tried to address comments:
Restored the check in __kmp_itt_taskwait_object() just in case it could be used somewhere else in future.
Wrapped repeated code fragments into macros to reduce code duplication.

Feb 9 2021, 1:48 PM · Restricted Project
AndreyChurbanov added a comment to D96182: [OpenMP] Enable omp_get_num_devices() on Windows.

If I add GetProcAddress result conversion to (void *) I get linker error if built by clang or gcc. E.g. for clang:

Feb 9 2021, 1:04 PM · Restricted Project

Feb 7 2021

AndreyChurbanov added a comment to D95816: [OpenMP] libomp: minor changes to improve library performance.

Is it necessary to manually inline __kmp_itt_taskwait_object three times? The rest of the changes look good to me.

Feb 7 2021, 1:58 PM · Restricted Project
AndreyChurbanov updated the diff for D95816: [OpenMP] libomp: minor changes to improve library performance.

Removed "if (UNLIKELY(itt_sync_create_ptr))" from kmp_itt_taskwait_object(), just to clarify previous change its usage.

Feb 7 2021, 1:28 PM · Restricted Project
AndreyChurbanov abandoned D95819: [OpenMP] libomp cleanup: move fast allocation routines to kmp_tasking.cpp.

I don't know if this is the right direction. Placing code based on call profiles seems to break the idea of modularity. I mean, ___kmp_fast_allocate is now a "tasking" thing?
I didn't see a reply yet, what about LTO for the runtime?

Feb 7 2021, 12:59 PM · Restricted Project

Feb 4 2021

AndreyChurbanov added inline comments to D95820: [OpenMP] Add bounds to num_teams clause (OpenMP 5.1).
Feb 4 2021, 6:07 AM · Restricted Project

Feb 2 2021

AndreyChurbanov accepted D95818: [OpenMP] Fix sign comparison warnings from GCC.

LGTM

Feb 2 2021, 2:55 AM · Restricted Project

Feb 1 2021

AndreyChurbanov requested review of D95819: [OpenMP] libomp cleanup: move fast allocation routines to kmp_tasking.cpp.
Feb 1 2021, 2:14 PM · Restricted Project
AndreyChurbanov requested review of D95816: [OpenMP] libomp: minor changes to improve library performance.
Feb 1 2021, 1:25 PM · Restricted Project
AndreyChurbanov committed rGd7b12004bd7d: [OpenMP] libomp: implement nteams-var and teams-thread-limit-var ICVs (authored by AndreyChurbanov).
[OpenMP] libomp: implement nteams-var and teams-thread-limit-var ICVs
Feb 1 2021, 11:55 AM
AndreyChurbanov closed D95003: [OpenMP] libomp: implement OpenMP 5.1 nteams-var and teams-thread-limit-var ICVs.
Feb 1 2021, 11:54 AM · Restricted Project

Jan 29 2021

AndreyChurbanov committed rG7f5ad0e07162: [OpenMP] libomp: fix build by cl with vs2019 (authored by AndreyChurbanov).
[OpenMP] libomp: fix build by cl with vs2019
Jan 29 2021, 2:17 AM
AndreyChurbanov closed D95627: [OpenMP] libomp: fix Windows build by vs2019.
Jan 29 2021, 2:17 AM · Restricted Project

Jan 28 2021

AndreyChurbanov committed rGac70a53653d4: [OpenMP] NFC: disabled two flakey tests as the bug in libomp not fixed yet (authored by AndreyChurbanov).
[OpenMP] NFC: disabled two flakey tests as the bug in libomp not fixed yet
Jan 28 2021, 1:55 PM
AndreyChurbanov added inline comments to D95627: [OpenMP] libomp: fix Windows build by vs2019.
Jan 28 2021, 8:56 AM · Restricted Project
AndreyChurbanov requested review of D95627: [OpenMP] libomp: fix Windows build by vs2019.
Jan 28 2021, 8:46 AM · Restricted Project

Jan 27 2021

AndreyChurbanov committed rG498c4b6fc45a: [OpenMP] libomp: fix build by clang-cl with vs2019 (authored by AndreyChurbanov).
[OpenMP] libomp: fix build by clang-cl with vs2019
Jan 27 2021, 1:19 AM
AndreyChurbanov closed D95485: [OpenMP] libomp: fix clang-cl build for vs2019.
Jan 27 2021, 1:19 AM · Restricted Project

Jan 26 2021

AndreyChurbanov requested review of D95485: [OpenMP] libomp: fix clang-cl build for vs2019.
Jan 26 2021, 2:58 PM · Restricted Project

Jan 25 2021

AndreyChurbanov added a comment to D95371: [OpenMP] Use C++ to link libomp.so when LLVM libraries are included.

That's right. Regardless that the code is written in C++ the intention is to not have any dependency on C++ runtime. The libomp.so should work fine with C applications as well as with Fortran codes those often cannot link C++ runtime.

Right. With profile support we got C++ dependences. So if you disable the profile support you can remove the dependence. What if we set the linker language to CXX if the profile support is enabled? Is that a problem?

Jan 25 2021, 11:55 AM · Restricted Project
AndreyChurbanov added a comment to D95371: [OpenMP] Use C++ to link libomp.so when LLVM libraries are included.

Tagging Shilei as this is cmake

Google suggests 'LINKER_LANGUAGE' is how cmake decides whether to invoke 'gcc' or 'g++' to build a library, as an indirect way of asking to link in libstdc++ or similar.

So my guess is that the llvm support library has link time dependencies on c++, so when linking support we also need to link a c++ runtime, and CMake chose 'LINKER_LANGUAGE' as the name to indicate that.

Does that match your understanding of the problem? If so, agreed with the fix.

I think your guess is right. libomp.so is probably intended to be a C library (need to add @AndreyChurbanov here as he is the real expert). Not sure whether it's good to potentially break the rule.

That's right. Regardless that the code is written in C++ the intention is to not have any dependency on C++ runtime. The libomp.so should work fine with C applications as well as with Fortran codes those often cannot link C++ runtime.
And all exported from libomp.so symbols supposed to be C symbols.

Jan 25 2021, 10:39 AM · Restricted Project

Jan 24 2021

AndreyChurbanov added a comment to D95318: [OpenMP][NFC] Format all files in OpenMP.

I am afraid such action may be needed regularly, unless we freeze the clang-format version and write it in the documentation.
Because each version of clang-format may produce different result of formatting, unfortunately.
At least that was the case couple of years ago.

Jan 24 2021, 2:40 PM · Restricted Project