一呼百應, "one call, a hundred responses"
Loading...
Searching...
No Matches
Inlining Control
Collaboration diagram for Inlining Control:

Macros

#define ein_inline   inline
 inline [[always_inline]]
 
#define ein_flatten
 portable [[flatten]]
 
#define ein_artificial
 [[artificial]].
 
#define ein_noinline
 [[noinline]]
 
#define ein_optnone
 [[optnone]]
 

Detailed Description

attributes that control inlining behavior

Macro Definition Documentation

◆ ein_artificial

#define ein_artificial

[[artificial]].

The debugger should not single-step into this function. Treat it as atomic and associate it with the debug information for the use site instead.

Definition at line 220 of file common.hpp.

◆ ein_flatten

#define ein_flatten

portable [[flatten]]

the compiler should inline recursively aggressively under this definition. use with care, good for expression templates

Definition at line 203 of file common.hpp.

◆ ein_inline

#define ein_inline   inline

inline [[always_inline]]

Definition at line 188 of file common.hpp.

◆ ein_noinline

#define ein_noinline

[[noinline]]

Indicates that the inliner should avoid inlining this function at usage sites

Definition at line 235 of file common.hpp.

◆ ein_optnone

#define ein_optnone

[[optnone]]

Used to indicate that regardless of optimization level, you shouldn't optimize this one function. Useful for local debugging when you can't disable optimization for the entire build. (e.g. ours!)

Definition at line 250 of file common.hpp.