Skip to content

File jm_perf.h

FileList > doppler > jm_perf.h

Go to the source code of this file

  • #include "doppler/jm_simd.h"

Macros

Type Name
define JM_ALIGNED (n) [**JM\_ALIGNED\_IMPL**](jm__perf_8h.md#define-jm_aligned_impl)(n)
define JM_ALIGNED_IMPL (n)
define JM_ASSUME_ALIGNED (ptr, n) [**JM\_ASSUME\_ALIGNED\_IMPL**](jm__perf_8h.md#define-jm_assume_aligned_impl)(ptr, n)
define JM_ASSUME_ALIGNED_IMPL (p, n) (p)
define JM_DEFINE_STEPS (fn, state_t, sample_t, LENGTH, BATCH, CHUNK) [**JM\_DEFINE\_STEPS\_EX**](jm__perf_8h.md#define-jm_define_steps_ex)(fn, state\_t, sample\_t, LENGTH, BATCH, CHUNK, (), ())
define JM_DEFINE_STEPS_EX (fn, state_t, sample_t, LENGTH, BATCH, CHUNK, CPARAMS, CARGS) /* multi line expression */
define JM_EVAL_IMPL (...) \_\_VA\_ARGS\_\_
define JM_FORCEINLINE [**JM\_FORCEINLINE\_IMPL**](jm__perf_8h.md#define-jm_forceinline_impl)
define JM_FORCEINLINE_IMPL inline
define JM_HOT [**JM\_HOT\_IMPL**](jm__perf_8h.md#define-jm_hot_impl)
define JM_HOT_IMPL
define JM_LIKELY (x) [**JM\_LIKELY\_IMPL**](jm__perf_8h.md#define-jm_likely_impl)(x)
define JM_LIKELY_IMPL (x) (x)
define JM_PREFETCH (ptr, rw, loc) [**JM\_PREFETCH\_IMPL**](jm__perf_8h.md#define-jm_prefetch_impl)(ptr, rw, loc)
define JM_PREFETCH_IMPL (p, rw, loc)
define JM_RESTRICT [**JM\_RESTRICT\_IMPL**](jm__perf_8h.md#define-jm_restrict_impl)
define JM_RESTRICT_IMPL restrict
define JM_STEPS_SIMD_IMPL (fn, st, samp, LENGTH, BATCH, CHUNK, CARGS) /\* scalar: no batching \*/
define JM_UNLIKELY (x) [**JM\_UNLIKELY\_IMPL**](jm__perf_8h.md#define-jm_unlikely_impl)(x)
define JM_UNLIKELY_IMPL (x) (x)
define JM_UNROLL (n) [**JM\_UNROLL\_IMPL**](jm__perf_8h.md#define-jm_unroll_impl)(n)
define JM_UNROLL_IMPL (n)

Macro Definition Documentation

define JM_ALIGNED

#define JM_ALIGNED (
    n
) `JM_ALIGNED_IMPL (n)`

define JM_ALIGNED_IMPL

#define JM_ALIGNED_IMPL (
    n
) 

define JM_ASSUME_ALIGNED

#define JM_ASSUME_ALIGNED (
    ptr,
    n
) `JM_ASSUME_ALIGNED_IMPL (ptr, n)`

define JM_ASSUME_ALIGNED_IMPL

#define JM_ASSUME_ALIGNED_IMPL (
    p,
    n
) `(p)`

define JM_DEFINE_STEPS

#define JM_DEFINE_STEPS (
    fn,
    state_t,
    sample_t,
    LENGTH,
    BATCH,
    CHUNK
) `JM_DEFINE_STEPS_EX (fn, state_t, sample_t, LENGTH, BATCH, CHUNK, (), ())`

define JM_DEFINE_STEPS_EX

#define JM_DEFINE_STEPS_EX (
    fn,
    state_t,
    sample_t,
    LENGTH,
    BATCH,
    CHUNK,
    CPARAMS,
    CARGS
) `/* multi line expression */`

define JM_EVAL_IMPL

#define JM_EVAL_IMPL (
    ...
) `__VA_ARGS__`

define JM_FORCEINLINE

#define JM_FORCEINLINE `JM_FORCEINLINE_IMPL`

define JM_FORCEINLINE_IMPL

#define JM_FORCEINLINE_IMPL `inline`

define JM_HOT

#define JM_HOT `JM_HOT_IMPL`

define JM_HOT_IMPL

#define JM_HOT_IMPL 

define JM_LIKELY

#define JM_LIKELY (
    x
) `JM_LIKELY_IMPL (x)`

jm_perf.h — compiler-hint macros for doppler.

All macros expand to safe no-ops on unknown compilers. Include freely; zero runtime cost.


define JM_LIKELY_IMPL

#define JM_LIKELY_IMPL (
    x
) `(x)`

define JM_PREFETCH

#define JM_PREFETCH (
    ptr,
    rw,
    loc
) `JM_PREFETCH_IMPL (ptr, rw, loc)`

define JM_PREFETCH_IMPL

#define JM_PREFETCH_IMPL (
    p,
    rw,
    loc
) 

define JM_RESTRICT

#define JM_RESTRICT `JM_RESTRICT_IMPL`

define JM_RESTRICT_IMPL

#define JM_RESTRICT_IMPL `restrict`

define JM_STEPS_SIMD_IMPL

#define JM_STEPS_SIMD_IMPL (
    fn,
    st,
    samp,
    LENGTH,
    BATCH,
    CHUNK,
    CARGS
) `/* scalar: no batching */`

define JM_UNLIKELY

#define JM_UNLIKELY (
    x
) `JM_UNLIKELY_IMPL (x)`

define JM_UNLIKELY_IMPL

#define JM_UNLIKELY_IMPL (
    x
) `(x)`

define JM_UNROLL

#define JM_UNROLL (
    n
) `JM_UNROLL_IMPL (n)`

define JM_UNROLL_IMPL

#define JM_UNROLL_IMPL (
    n
) 


The documentation for this class was generated from the following file native/inc/doppler/jm_perf.h