ruby-changes:70885
From: Nobuyoshi <ko1@a...>
Date: Sat, 15 Jan 2022 18:56:13 +0900 (JST)
Subject: [ruby-changes:70885] d853a7886e (master): Define the default JIT feature bit
https://git.ruby-lang.org/ruby.git/commit/?id=d853a7886e From d853a7886ef63b7237ab2bce42eb99c26bc1eccb Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada <nobu@r...> Date: Wed, 12 Jan 2022 17:53:52 +0900 Subject: Define the default JIT feature bit --- ruby.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/ruby.c b/ruby.c index 02d16c51994..04e4b1d9d3f 100644 --- a/ruby.c +++ b/ruby.c @@ -105,7 +105,7 @@ void rb_warning_category_update(unsigned int mask, unsigned int bits); https://github.com/ruby/ruby/blob/trunk/ruby.c#L105 SEP \ X(mjit) \ SEP \ - X(yjit) + X(yjit) \ /* END OF FEATURES */ #define EACH_DEBUG_FEATURES(X, SEP) \ X(frozen_string_literal) \ @@ -116,6 +116,11 @@ void rb_warning_category_update(unsigned int mask, unsigned int bits); https://github.com/ruby/ruby/blob/trunk/ruby.c#L116 enum feature_flag_bits { EACH_FEATURES(DEFINE_FEATURE, COMMA), feature_debug_flag_first, +#if defined(MJIT_FORCE_ENABLE) || !YJIT_SUPPORTED_P + DEFINE_FEATURE(jit) = feature_mjit, +#else + DEFINE_FEATURE(jit) = feature_yjit, +#endif feature_debug_flag_begin = feature_debug_flag_first - 1, EACH_DEBUG_FEATURES(DEFINE_DEBUG_FEATURE, COMMA), feature_flag_count @@ -976,20 +981,12 @@ feature_option(const char *str, int len, void *arg, const unsigned int enable) https://github.com/ruby/ruby/blob/trunk/ruby.c#L981 if (NAME_MATCH_P(#bit, str, len)) {set |= mask = FEATURE_BIT(bit); FEATURE_FOUND;} EACH_FEATURES(SET_FEATURE, ;); if (NAME_MATCH_P("jit", str, len)) { // This allows you to cancel --jit -#if defined(MJIT_FORCE_ENABLE) || !YJIT_SUPPORTED_P - set |= mask = FEATURE_BIT(mjit); -#else - set |= mask = FEATURE_BIT(yjit); -#endif + set |= mask = FEATURE_BIT(jit); goto found; } if (NAME_MATCH_P("all", str, len)) { - // YJIT and MJIT cannot be enabled at the same time. We enable only YJIT for --enable=all. -#if defined(MJIT_FORCE_ENABLE) || !YJIT_SUPPORTED_P - mask &= ~(FEATURE_BIT(yjit)); -#else - mask &= ~(FEATURE_BIT(mjit)); -#endif + // YJIT and MJIT cannot be enabled at the same time. We enable only one for --enable=all. + mask &= ~(FEATURE_BIT(yjit) | FEATURE_BIT(mjit)) | FEATURE_BIT(jit); goto found; } #if AMBIGUOUS_FEATURE_NAMES @@ -1543,10 +1540,8 @@ proc_options(long argc, char **argv, ruby_cmdline_options_t *opt, int envopt) https://github.com/ruby/ruby/blob/trunk/ruby.c#L1540 else if (strcmp("jit", s) == 0) { #if !USE_MJIT rb_warn("Ruby was built without JIT support"); -#elif defined(MJIT_FORCE_ENABLE) || !YJIT_SUPPORTED_P - FEATURE_SET(opt->features, FEATURE_BIT(mjit)); #else - FEATURE_SET(opt->features, FEATURE_BIT(yjit)); + FEATURE_SET(opt->features, FEATURE_BIT(jit)); #endif } else if (is_option_with_optarg("mjit", '-', true, false, false)) { -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/