[flags] Introduce --max-opt

There are currently several flags to tune V8's optimisation level:
  --sparkplug, --maglev, --opt

This CL tries to make this simpler by introducing yet another flag.
--max-opt limits the maximum optimisation tier and avoids the common
error to mistake --no-opt with no dynamic optimisations.

Settings:
  --max-opt=999 Allow all optimisations, default configuration.
                Any number > 3 will do, as long as no other tier will be
                added.
  --max-opt=0   Allow only ignition
  --max-opt=1   Allow up to sparkplug
  --max-opt=2   Allow up to maglev
  --max-opt=3   Allow up to turbofan

Bug: v8:12825
Change-Id: Iff9a0fcccdf05e9770168053a1430303613a7299
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3605816
Commit-Queue: Camillo Bruni <cbruni@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80418}
This commit is contained in:
Camillo Bruni 2022-05-09 10:26:24 +02:00 committed by V8 LUCI CQ
parent cf804f269c
commit 40136c1b09

View File

@ -534,6 +534,19 @@ DEFINE_BOOL_READONLY(dict_property_const_tracking,
V8_DICT_PROPERTY_CONST_TRACKING_BOOL,
"Use const tracking on dictionary properties")
DEFINE_UINT(max_opt, 999,
"Set the maximal optimisation tier: "
"> 3 == any, 0 == ignition/interpreter, 1 == sparkplug/baseline, "
"2 == maglev, 3 == turbofan")
DEFINE_WEAK_VALUE_IMPLICATION(max_opt < 3, turbofan, false)
#ifdef V8_ENABLE_MAGLEV
DEFINE_WEAK_VALUE_IMPLICATION(max_opt < 2, maglev, false)
#endif // V8_ENABLE_MAGLEV
#if ENABLE_SPARKPLUG
DEFINE_WEAK_VALUE_IMPLICATION(max_opt < 1, sparkplug, false)
#endif // ENABLE_SPARKPLUG
//
// Flags for jitless
DEFINE_BOOL(jitless, V8_LITE_BOOL,
"Disable runtime allocation of executable memory.")