1
0
Fork 0
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:
nobu 2015-07-22 11:27:46 +00:00
parent c44360f623
commit 4c4d0389f5
2 changed files with 9 additions and 1 deletions

View file

@ -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__

View file

@ -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