mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
ruby.h: ASSUME
* include/ruby/ruby.h (ASSUME): hint for optimization, the expression is assumed to be true always. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c44360f623
commit
4c4d0389f5
2 changed files with 9 additions and 1 deletions
|
@ -41,8 +41,15 @@ extern "C" {
|
|||
#ifndef NOINLINE
|
||||
# define NOINLINE(x) x
|
||||
#endif
|
||||
#ifndef ASSUME
|
||||
# ifdef UNREACHABLE
|
||||
# define ASSUME(x) (LIKELY(!!(x)) ? (void)0 : UNREACHABLE)
|
||||
# else
|
||||
# define ASSUME(x) ((void)0)
|
||||
# endif
|
||||
#endif
|
||||
#ifndef UNREACHABLE
|
||||
# define UNREACHABLE /* unreachable */
|
||||
# define UNREACHABLE ((void)0) /* unreachable */
|
||||
#endif
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
|
|
@ -587,6 +587,7 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub $(win_srcdir)/Makefile.sub
|
|||
#define NOINLINE(x) __declspec(noinline) x
|
||||
!endif
|
||||
#define UNREACHABLE __assume(0)
|
||||
#define ASSUME(x) __assume(!!(x))
|
||||
#define FUNC_STDCALL(x) __stdcall x
|
||||
#define FUNC_CDECL(x) __cdecl x
|
||||
#define FUNC_FASTCALL(x) __fastcall x
|
||||
|
|
Loading…
Reference in a new issue