diff options
author | Grzegorz Adam Hankiewicz <gradha@imap.cc> | 2014-03-13 19:56:11 +0100 |
---|---|---|
committer | Grzegorz Adam Hankiewicz <gradha@imap.cc> | 2014-03-13 19:56:11 +0100 |
commit | dd18c0ddd50f1e1f60a5f4337772198af77aebfa (patch) | |
tree | db02c55736eb08b5ad91194051b88f5ea4c20c01 /lib | |
parent | 1c35fb3c89bbac393b50c4bc6fe8205af2b7fb9d (diff) | |
download | Nim-dd18c0ddd50f1e1f60a5f4337772198af77aebfa.tar.gz |
Adds example to likely/unlikely docstring. Refs #983.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/system.nim | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/lib/system.nim b/lib/system.nim index 41624bb05..be57ba192 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -2364,12 +2364,32 @@ when not defined(JS): #and not defined(NimrodVM): when not defined(NimrodVM): proc likely*(val: bool): bool {.importc: "likely", nodecl, nosideeffect.} - ## can be used to mark a condition to be likely. This is a hint for the - ## optimizer. + ## Hints the optimizer that `val` is likely going to be true. + ## + ## You can use this proc to decorate a branch condition. On certain + ## platforms this can help the processor predict better which branch is + ## going to be run. Example: + ## + ## .. code-block:: nimrod + ## for value in inputValues: + ## if likely(value <= 100): + ## process(value) + ## else: + ## echo "Value too big!" proc unlikely*(val: bool): bool {.importc: "unlikely", nodecl, nosideeffect.} - ## can be used to mark a condition to be unlikely. This is a hint for the - ## optimizer. + ## Hints the optimizer that `val` is likely going to be false. + ## + ## You can use this proc to decorate a branch condition. On certain + ## platforms this can help the processor predict better which branch is + ## going to be run. Example: + ## + ## .. code-block:: nimrod + ## for value in inputValues: + ## if unlikely(value > 100): + ## echo "Value too big!" + ## else: + ## process(value) proc rawProc*[T: proc](x: T): pointer {.noSideEffect, inline.} = ## retrieves the raw proc pointer of the closure `x`. This is |