[Openmp-commits] [PATCH] D114413: [OpenMPIRBuilder] Implement static-chunked workshare-loop schedules.
Michael Kruse via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Sat Jan 29 13:31:16 PST 2022
Meinersbur added a comment.
@peixin Thanks for testing edge cases. You hit multiple issues:
1. Chunksize was i32, combining it with a i64 induction variable caused an error. Fixed the latest update of this patch.
2. OpenMPIRBuilder currently doesn't work really with exceptions. See D115216 <https://reviews.llvm.org/D115216> for a start of a discussion with `#pragma omp parallel`. Support for irregular exits (exceptions, cancellation, destructors) out of CanonicalLoopInfo is what I was working on recently. Use `-fno-exceptions` to work around.
3. There is an off-by-one error that I already fixed in my development branch. Upstream patch here: D118542 <https://reviews.llvm.org/D118542>
Result with these fixes for me is:
lb: 18446744073709551615
ub: 1844674407370955161
step: 1844674407370955161
18446744073709551615
16602069666338596454
14757395258967641293
12912720851596686132
11068046444225730971
9223372036854775810
7378697629483820649
5534023222112865488
3689348814741910327
1844674407370955166
Note that this does involve `__kmpc_doacross_init` code in libomp you pointed-to in D116292 <https://reviews.llvm.org/D116292>. This uses `__kmpc_for_static_init` calls of which there are 4 variants for (signed/unsigned x 32/64 bits). To do `__kmpc_doacross_init` correctly, it would also need at least have variants for signed/unsigned (or one working internally with signed 128 bits).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D114413/new/
https://reviews.llvm.org/D114413
More information about the Openmp-commits
mailing list