Add OpenMP overload with stepping (#10891)
This commit is contained in:
parent
04ad200b40
commit
25649616ea
3 changed files with 35 additions and 5 deletions
|
|
@ -2681,6 +2681,24 @@ iterator `||`*[S, T](a: S, b: T, annotation: static string = "parallel for"): T
|
|||
## and GC.
|
||||
discard
|
||||
|
||||
iterator `||`*[S, T](a: S, b: T, step: Positive, annotation: static string = "parallel for"): T {.
|
||||
inline, magic: "OmpParFor", sideEffect.} =
|
||||
## OpenMP parallel loop iterator with stepping.
|
||||
## Same as `countup` but the loop may run in parallel.
|
||||
##
|
||||
## `annotation` is an additional annotation for the code generator to use.
|
||||
## The default annotation is `parallel for`.
|
||||
## Please refer to the `OpenMP Syntax Reference
|
||||
## <https://www.openmp.org/wp-content/uploads/OpenMP-4.5-1115-CPP-web.pdf>`_
|
||||
## for further information.
|
||||
##
|
||||
## Note that the compiler maps that to
|
||||
## the ``#pragma omp parallel for`` construct of `OpenMP`:idx: and as
|
||||
## such isn't aware of the parallelism in your code! Be careful! Later
|
||||
## versions of ``||`` will get proper support by Nim's code generator
|
||||
## and GC.
|
||||
discard
|
||||
|
||||
{.push stackTrace:off.}
|
||||
proc min*(x, y: int): int {.magic: "MinI", noSideEffect.} =
|
||||
if x <= y: x else: y
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue