tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

jitopts.js (2126B)


      1 // These predicates are for tests that require a particular set of JIT options.
      2 
      3 // Check if toggles match. Useful for tests that shouldn't be run if a
      4 // different set of JIT toggles are set, since TBPL runs each jit-test
      5 // multiple times with a variety of flags.
      6 function jitTogglesMatch(opts) {
      7  var currentOpts = getJitCompilerOptions();
      8  for (var k in opts) {
      9    if (k.indexOf(".enable") > 0 && opts[k] != currentOpts[k])
     10      return false;
     11  }
     12  return true;
     13 }
     14 
     15 // Run fn under a particular set of JIT options.
     16 function withJitOptions(opts, fn) {
     17  var oldOpts = getJitCompilerOptions();
     18  for (var k in opts)
     19    setJitCompilerOption(k, opts[k]);
     20  try {
     21    fn();
     22  } finally {
     23    for (var k in oldOpts)
     24      setJitCompilerOption(k, oldOpts[k]);
     25  }
     26 }
     27 
     28 // N.B. Ion opts *must come before* baseline opts because there's some kind of
     29 // "undo eager compilation" logic. If we don't set the baseline warmup-counter
     30 // *after* the Ion warmup-counter we end up setting the baseline warmup-counter
     31 // to be the default if we hit the "undo eager compilation" logic.
     32 var Opts_BaselineEager =
     33    {
     34      'ion.enable': 1,
     35      'ion.warmup.trigger': 100,
     36      'baseline.enable': 1,
     37      'baseline.warmup.trigger': 0,
     38      'offthread-compilation.enable': 1
     39    };
     40 
     41 // Checking for offthread compilation being off is often helpful if the test
     42 // requires a function be Ion compiled. Each individual test will usually
     43 // finish before the Ion compilation thread has a chance to attach the
     44 // compiled code.
     45 var Opts_IonEagerNoOffthreadCompilation =
     46    {
     47      'ion.enable': 1,
     48      'ion.warmup.trigger': 0,
     49      'baseline.enable': 1,
     50      'baseline.warmup.trigger': 0,
     51      'offthread-compilation.enable': 0,
     52    };
     53 
     54 var Opts_Ion2NoOffthreadCompilation =
     55    {
     56      'ion.enable': 1,
     57      'ion.warmup.trigger': 3,
     58      'baseline.enable': 1,
     59      'baseline.warmup.trigger': 1,
     60      'offthread-compilation.enable': 0
     61    };
     62 
     63 var Opts_NoJits =
     64    {
     65      'ion.enable': 0,
     66      'ion.warmup.trigger': 0,
     67      'baseline.warmup.trigger': 0,
     68      'baseline.enable': 0,
     69      'offthread-compilation.enable': 0
     70    };