1. 14 Jun, 2022 1 commit
    • Andreas Haas's avatar
      [wasm] Add flag to disable the wasm native module cache · efb80afe
      Andreas Haas authored
      The native module cache makes it difficult to test deserialization,
      because the native module just gets loaded from the cache instead of
      deserializing the serialized module. This CL adds a new flag,
      --wasm-native-module-cache-enabled, to control whether the native module
      cache is enabled or not. The cache gets disabled by handling all modules
      like asm.js modules when the cache gets disabled, as the cache is not
      used for asm.js.
      
      The name of the flag is positive (i.e.
      `enabled` instead of `disabled`) to avoid double negation. The flag is
      true by default, and set to false in tests.
      
      R=thibaudm@chromium.org
      CC=clemensb@chromium.org
      
      Bug: v8:12964
      Change-Id: If2b96a95ccf37f2eb8a868ad1661c3325c1048f6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3703836
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#81132}
      efb80afe
  2. 11 Jan, 2022 1 commit
  3. 10 Jan, 2022 2 commits
  4. 14 Dec, 2021 1 commit
  5. 08 Dec, 2021 2 commits
  6. 04 Nov, 2021 1 commit
    • Andreas Haas's avatar
      [wasm] Do not serialize modules that don't contain TurboFan code · 272e5a87
      Andreas Haas authored
      The wasm serialization format only contains TurboFan code. All other
      functions are only represented by placeholders. With this CL
      serialization fails if the serialized module does not contain any
      TurboFan functions and would therefore consist only of placeholders.
      
      This is a defense in depth approach, because ideally serialization
      only gets triggered when TurboFan code is available. However, in some
      scenarios like debugging it can happen that modules without TurboFan
      code get serialized.
      
      Bug: v8:12281
      Change-Id: Ib05430ff89eb2317da80fc0d086ce1d7ab0e919d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212510
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#77715}
      272e5a87
  7. 21 Sep, 2021 1 commit
  8. 30 Jul, 2021 1 commit
    • Andreas Haas's avatar
      Reland "[wasm] Support partial serialization of modules" · cace2f53
      Andreas Haas authored
      The original CL was flaky because deserialization did not wait correctly
      for the compilation of missing functions to finish. The baseline-finished
      event was set even when there were still some functions missing. The
      combination of deserialization and lazy compilation was also not handled
      correctly.
      
      Original change's description:
      > [wasm] Support partial serialization of modules
      >
      > At the moment a WebAssembly module can be serialized successfully when
      > all functions were compiled with TurboFan. However, for some functions
      > it may not be necessary to be compiled with TurboFan, e.g. for functions
      > where Liftoff code is as good as TurboFan code.
      >
      > With this CL we allow WebAssembly modules to get serialized even when
      > not all functions are compiled with TurboFan. Missing functions are
      > marked as missing in the serlialization. Upon deserialization, missing
      > functions either get compiled by Liftoff, or initialized with a
      > lazy-compilation stub, depending on the V8 configuration.
      >
      > Bug: v8:11862
      
      Change-Id: I79a9e8e14199cff87fce6ae41a87087e047bbc65
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3060485Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#76017}
      cace2f53