Ruby: vm_opts.h Source File

Ruby 3.2.5p208 (2024-07-26 revision 31d0f1a2e7dbfb60731d1f05b868e1d578cda493)

vm_opts.h
1#ifndef RUBY_VM_OPTS_H/*-*-c-*-*/
2#define RUBY_VM_OPTS_H
3/**********************************************************************
4
5 vm_opts.h - VM optimize option
6
7 $Author$
8
9 Copyright (C) 2004-2007 Koichi Sasada
10
11**********************************************************************/
12
13/* Compile options.
14 * You can change these options at runtime by VM::CompileOption.
15 * Following definitions are default values.
16 */
17
18#define OPT_TAILCALL_OPTIMIZATION 0
19#define OPT_PEEPHOLE_OPTIMIZATION 1
20#define OPT_SPECIALISED_INSTRUCTION 1
21#define OPT_INLINE_CONST_CACHE 1
22#define OPT_FROZEN_STRING_LITERAL 0
23#define OPT_DEBUG_FROZEN_STRING_LITERAL 0
24
25/* Build Options.
26 * You can't change these options at runtime.
27 */
28
29/* C compiler dependent */
30
31/*
32 * 0: direct (using labeled goto using GCC special)
33 * 1: token (switch/case)
34 * 2: call (function call for each insn dispatch)
35 */
36#ifndef OPT_THREADED_CODE
37#define OPT_THREADED_CODE 0
38#endif
39
40#define OPT_DIRECT_THREADED_CODE (OPT_THREADED_CODE == 0)
41#define OPT_TOKEN_THREADED_CODE (OPT_THREADED_CODE == 1)
42#define OPT_CALL_THREADED_CODE (OPT_THREADED_CODE == 2)
43
44/* VM running option */
45#define OPT_CHECKED_RUN 1
46#define OPT_INLINE_METHOD_CACHE 1
47#define OPT_GLOBAL_METHOD_CACHE 1
48#define OPT_BLOCKINLINING 0
49
50#ifndef OPT_IC_FOR_IVAR
51#define OPT_IC_FOR_IVAR 1
52#endif
53
54/* architecture independent, affects generated code */
55#define OPT_OPERANDS_UNIFICATION 1
56#define OPT_INSTRUCTIONS_UNIFICATION 0
57#define OPT_UNIFY_ALL_COMBINATION 0
58#define OPT_STACK_CACHING 0
59
60/* misc */
61#ifndef OPT_SUPPORT_JOKE
62#define OPT_SUPPORT_JOKE 0
63#endif
64
65#ifndef OPT_SUPPORT_CALL_C_FUNCTION
66#define OPT_SUPPORT_CALL_C_FUNCTION 0
67#endif
68
69#ifndef VM_COLLECT_USAGE_DETAILS
70#define VM_COLLECT_USAGE_DETAILS 0
71#endif
72
73#endif /* RUBY_VM_OPTS_H */