Page MenuHomePhabricator
Feed Advanced Search

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

Jan 22 2021

AndreyChurbanov committed rGedbcc17b7a0b: [OpenMP] libomp: properly initialize buckets in __kmp_dephash_extend (authored by jschuchart).
[OpenMP] libomp: properly initialize buckets in __kmp_dephash_extend
Jan 22 2021, 9:31 AM
AndreyChurbanov closed D95167: [OpenMP] properly initialize buckets in __kmp_dephash_extend.
Jan 22 2021, 9:31 AM · Restricted Project
AndreyChurbanov added a comment to D95170: [OpenMP] Fix misleading warning for OMP_PLACES.

In my quick test, env KMP_SETTINGS=1 OMP_PROC_BIND=spread ./a.out reports OMP_PLACES='cores'. I could not find the code path that sets places to cores in this case, but I think it would be more consistent to have consistent setting in the unset and the invalid case.

Is there a reason to choose threads?

Internally here at Intel we did have it at threads at one point, then somehow it got changed, and this was just to change it back to threads. It would be more consistent to have it default to OMP_PLACES=cores because of the case you mentioned and KMP_AFFINITY defaults to core granularity as well. @AndreyChurbanov , are you ok with keeping it as OMP_PLACES="cores" and just changing the warning message to cores instead?

Jan 22 2021, 8:43 AM · Restricted Project

Jan 21 2021

AndreyChurbanov accepted D95167: [OpenMP] properly initialize buckets in __kmp_dephash_extend.

LGTM

Jan 21 2021, 1:26 PM · Restricted Project

Jan 19 2021

AndreyChurbanov requested review of D95003: [OpenMP] libomp: implement OpenMP 5.1 nteams-var and teams-thread-limit-var ICVs.
Jan 19 2021, 2:21 PM · Restricted Project
AndreyChurbanov accepted D94848: [OpenMP] Fix atomic entries for captured logical operation.

LGTM

Jan 19 2021, 5:46 AM · Restricted Project
AndreyChurbanov committed rGa60bc55c6936: [OpenMP] libomp: cleanup parsing of OMP_ALLOCATOR env variable. (authored by AndreyChurbanov).
[OpenMP] libomp: cleanup parsing of OMP_ALLOCATOR env variable.
Jan 19 2021, 5:22 AM
AndreyChurbanov closed D94932: [OpenMP] libomp: cleanup parsing of OMP_ALLOCATOR env variable.
Jan 19 2021, 5:22 AM · Restricted Project

Jan 18 2021

AndreyChurbanov requested review of D94932: [OpenMP] libomp: cleanup parsing of OMP_ALLOCATOR env variable.
Jan 18 2021, 2:04 PM · Restricted Project
AndreyChurbanov committed rGaa3a59e0c69e: [OpenMP][NFC] Fix test (authored by AndreyChurbanov).
[OpenMP][NFC] Fix test
Jan 18 2021, 1:06 PM

Jan 12 2021

AndreyChurbanov accepted D94353: [OpenMP] Use persistent memory for omp_large_cap_mem.

LGTM

Jan 12 2021, 3:17 PM · Restricted Project
AndreyChurbanov accepted D94277: [OpenMP] Update allocator trait key/value definitions.

LGTM

Jan 12 2021, 3:11 PM · Restricted Project

Jan 6 2021

AndreyChurbanov accepted D94042: [OpenMP] Use c_int/c_size_t in Fortran target memory routine interface.

LGTM

Jan 6 2021, 2:09 PM · Restricted Project

Dec 30 2020

AndreyChurbanov accepted D93505: [OpenMP] Add definition/interface for target memory routines.

LGTM

Dec 30 2020, 2:40 PM · Restricted Project
AndreyChurbanov committed rG6b316febb438: [OpenMP] libomp: Handle implicit conversion warnings (authored by tlwilmar).
[OpenMP] libomp: Handle implicit conversion warnings
Dec 30 2020, 1:41 PM
AndreyChurbanov closed D92942: Handle implicit conversion warnings.
Dec 30 2020, 1:40 PM · Restricted Project
AndreyChurbanov accepted D92942: Handle implicit conversion warnings.

LGTM

Dec 30 2020, 1:35 PM · Restricted Project

Dec 15 2020

AndreyChurbanov added a comment to D71989: [OpenMP][IRBuilder][WIP] Prototype `omp task` support.

The required changes in addition to the diff have been discussed with @AndreyChurbanov in the comments above.

Dec 15 2020, 1:48 PM · Restricted Project, Restricted Project
AndreyChurbanov accepted D93230: [OpenMP] Initialize runtime in the forked child process.

LGTM

Dec 15 2020, 5:05 AM · Restricted Project

Dec 9 2020

AndreyChurbanov added a comment to D91002: [OpenMP] Fix asm for arm64-darwin.

I tested with make check-openmp and make check-clang on an AArch64 linux machine and both versions (D91002,D88252) pass.
If you were asking for a different kind of testing then please let me know.

Dec 9 2020, 6:54 AM · Restricted Project
AndreyChurbanov accepted D92352: Add strict mode in num_tasks and grainsize.

LGTM

Dec 9 2020, 6:49 AM · Restricted Project
AndreyChurbanov accepted D92660: [OpenMP] Fix too long name for shm segment on macOS.

LGTM

Dec 9 2020, 5:50 AM · Restricted Project
AndreyChurbanov accepted D92615: [OpenMP] Use RTM lock for OMP lock with synchronization hint.

LGTM

Dec 9 2020, 5:49 AM · Restricted Project

Dec 7 2020

AndreyChurbanov committed rGfff1abc406d5: [OpenMP] NFC: comment adjusted (authored by AndreyChurbanov).
[OpenMP] NFC: comment adjusted
Dec 7 2020, 8:51 AM
AndreyChurbanov added a comment to D90962: [OpenMP] Fix possible NULL dereferences.

LGTM, I left a nit inlined but feel free to ignore.

...
Argh, ... OK, so the situation we are in is that the frontends are not in agreement. One thing we should avoid is to mix the comments in the runtime as well, will just cause more confusion. I'd argue we can let the frontends do what they think is right and in the runtime just say "this is a number that is either the line end or column". We always treat it the same, given that we don't interpret it anyway. Tools need to be aware of the frontend to avoid confusion. WDYT? (This would mean an action item to make sure all comments (maybe also variable names) reflect the duality.)

Dec 7 2020, 8:19 AM · Restricted Project
AndreyChurbanov committed rG22558c8501ea: [OpenMP] libomp: Fix possible NULL dereferences (authored by AndreyChurbanov).
[OpenMP] libomp: Fix possible NULL dereferences
Dec 7 2020, 8:09 AM
AndreyChurbanov closed D90962: [OpenMP] Fix possible NULL dereferences.
Dec 7 2020, 8:09 AM · Restricted Project
AndreyChurbanov accepted D92587: [OpenMP] Fix norespect affinity bug for Windows.

LGTM

Dec 7 2020, 6:24 AM · Restricted Project

Dec 1 2020

AndreyChurbanov committed rG6bf84871e938: [OpenMP] libomp: add UNLIKELY hints to rarely executed branches (authored by AndreyChurbanov).
[OpenMP] libomp: add UNLIKELY hints to rarely executed branches
Dec 1 2020, 5:54 AM
AndreyChurbanov closed D92322: [OpenMP] libomp: add UNLIKELY hints to rarely executed branches.
Dec 1 2020, 5:53 AM · Restricted Project

Nov 30 2020

AndreyChurbanov updated the diff for D92322: [OpenMP] libomp: add UNLIKELY hints to rarely executed branches.

Rebased

Nov 30 2020, 2:15 PM · Restricted Project
AndreyChurbanov committed rG9615890db576: [OpenMP] libomp: change shm name to include UID, call unregister_lib on SIGTERM (authored by terdner).
[OpenMP] libomp: change shm name to include UID, call unregister_lib on SIGTERM
Nov 30 2020, 1:42 PM
AndreyChurbanov closed D91869: [OpenMP] change shm name to include UID, call unregister_lib on SIGTERM.
Nov 30 2020, 1:41 PM · Restricted Project
AndreyChurbanov accepted D91869: [OpenMP] change shm name to include UID, call unregister_lib on SIGTERM.

LGTM

Nov 30 2020, 1:25 PM · Restricted Project
AndreyChurbanov committed rGf6f28b44ad48: [OpenMP] libomp: fix mutexinoutset dependence for proxy tasks (authored by AndreyChurbanov).
[OpenMP] libomp: fix mutexinoutset dependence for proxy tasks
Nov 30 2020, 1:14 PM
AndreyChurbanov closed D92326: [OpenMP] libomp: fix mutexinoutset dependence for proxy tasks.
Nov 30 2020, 1:14 PM · Restricted Project
AndreyChurbanov added inline comments to D92326: [OpenMP] libomp: fix mutexinoutset dependence for proxy tasks.
Nov 30 2020, 12:52 PM · Restricted Project
AndreyChurbanov updated the diff for D90962: [OpenMP] Fix possible NULL dereferences.

Updated the style of newly added function.

Nov 30 2020, 12:26 PM · Restricted Project
AndreyChurbanov added a comment to D90962: [OpenMP] Fix possible NULL dereferences.

I like the approach. Minor nits and one question though: Why are we talking about two line numbers and not line + column? This confuses me.

Nov 30 2020, 11:45 AM · Restricted Project