1. 28 Jul, 2020 1 commit
  2. 24 Jul, 2020 1 commit
  3. 22 Jul, 2020 2 commits
    • Maya Lekova's avatar
      Revert "Reland "[flags] warn about contradictory flags"" · a269ce20
      Maya Lekova authored
      This reverts commit d8f8a7e2.
      
      Reason for revert: Breaks code_serializer variant - https://cr-buildbucket.appspot.com/build/8874070652992164976
      
      Original change's description:
      > Reland "[flags] warn about contradictory flags"
      > 
      > This is a reland of b8f91666
      > Difference to previous CL: Additional functionality to specify
      > incompatible flags based on GN variables and extra-flags, used
      > to fix the issues that came up on the waterfall.
      > 
      > This also changes the rules regarding repeated flags: While
      > explicitly repeated flags are allowed for boolean values as long
      > as they are identical, repeated flags or explicit flags in the
      > presence of an active implication are disallowed for non-boolean
      > flags. The latter simplifies specifying conflict rules in
      > variants.py. Otherwise a rule like
      > 
      > INCOMPATIBLE_FLAGS_PER_EXTRA_FLAG = {
      >   "--gc-interval=*": ["--gc-interval=*"],
      > }
      > 
      > wouldn't work because specifying the same GC interval twice
      > wouldn't actually count as a conflict. This was an issue with
      > test/mjsunit/wasm/gc-buffer.js, which specifies
      > --gc-interval=500 exactly like the extra flag by the stress bot.
      > 
      > Also, this now expands contradictory flags checking to d8 flags
      > for consistency.
      > 
      > Original change's description:
      > > [flags] warn about contradictory flags
      > >
      > > Design Doc: https://docs.google.com/document/d/1lkvu8crkK7Ei39qjkPCFijpNyxWXsOktG9GB-7K34jM/
      > >
      > > Bug: v8:10577
      > > Change-Id: Ib9cfdffa401c48c895bf31caed5ee03545beddab
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154792
      > > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > > Reviewed-by: Georg Neis <neis@chromium.org>
      > > Reviewed-by: Tamer Tas <tmrts@chromium.org>
      > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#68168}
      > 
      > Bug: v8:10577
      > Change-Id: I268e590ee18a535b13dee14eeb15ddd0a9ee8341
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235115
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Tamer Tas <tmrts@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#68989}
      
      TBR=machenbach@chromium.org,neis@chromium.org,clemensb@chromium.org,tebbi@chromium.org,tmrts@chromium.org
      
      Change-Id: I7969065b0edbc463a94e530485bc2ab623d77b62
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10577
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2312782Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68992}
      a269ce20
    • Tobias Tebbi's avatar
      Reland "[flags] warn about contradictory flags" · d8f8a7e2
      Tobias Tebbi authored
      This is a reland of b8f91666
      Difference to previous CL: Additional functionality to specify
      incompatible flags based on GN variables and extra-flags, used
      to fix the issues that came up on the waterfall.
      
      This also changes the rules regarding repeated flags: While
      explicitly repeated flags are allowed for boolean values as long
      as they are identical, repeated flags or explicit flags in the
      presence of an active implication are disallowed for non-boolean
      flags. The latter simplifies specifying conflict rules in
      variants.py. Otherwise a rule like
      
      INCOMPATIBLE_FLAGS_PER_EXTRA_FLAG = {
        "--gc-interval=*": ["--gc-interval=*"],
      }
      
      wouldn't work because specifying the same GC interval twice
      wouldn't actually count as a conflict. This was an issue with
      test/mjsunit/wasm/gc-buffer.js, which specifies
      --gc-interval=500 exactly like the extra flag by the stress bot.
      
      Also, this now expands contradictory flags checking to d8 flags
      for consistency.
      
      Original change's description:
      > [flags] warn about contradictory flags
      >
      > Design Doc: https://docs.google.com/document/d/1lkvu8crkK7Ei39qjkPCFijpNyxWXsOktG9GB-7K34jM/
      >
      > Bug: v8:10577
      > Change-Id: Ib9cfdffa401c48c895bf31caed5ee03545beddab
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154792
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Reviewed-by: Tamer Tas <tmrts@chromium.org>
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#68168}
      
      Bug: v8:10577
      Change-Id: I268e590ee18a535b13dee14eeb15ddd0a9ee8341
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235115
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarTamer Tas <tmrts@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68989}
      d8f8a7e2
  4. 21 Jul, 2020 1 commit
    • Arnaud Robin's avatar
      [wasm] Implement dynamic tiering in wasm · f181dff3
      Arnaud Robin authored
      On desktop systems, we use a very basic tiering strategy: Everything is
      initially compiled with Liftoff, and once that is done, the module can
      start being used. Concurrently to the execution, we re-compile all code
      with TurboFan, and hot-swap each function once TurboFan finishes.
      
      We should start using a more dynamic strategy where each function is
      tiered-up when judged necessary. This change will then tier-up each
      liftoff function once it has been called 5 times.
      
      I then added a counter in the native module, that is updated directly
      from Liftoff code, and a runtime call is then made when the counter
      reaches the goal.
      
      R=clemensb@chromium.org
      CC=​thibaudm@chromium.org
      
      Bug: v8:10728
      Change-Id: I8dc2b02fdff8d97781bb1cf496886594b3d7f644
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2306803
      Commit-Queue: Arnaud Robin <arobin@google.com>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68971}
      f181dff3
  5. 20 Jul, 2020 1 commit
  6. 30 Jun, 2020 1 commit
    • Clemens Backes's avatar
      [wasm] Fix flake in cmpxchg stress test · f9d3d78b
      Clemens Backes authored
      It seems that the mix of atomic and non-atomic updates to the same
      memory location is not working correctly. One fix is changing all memory
      updates to be atomic. Another fix is removing the non-atomic access that
      happens while the workers are already running (using atomic accesses).
      This CL implements the latter.
      
      R=ahaas@chromium.org
      
      Bug: v8:10647, v8:10650
      Change-Id: I84b4f3f442b6be3c4ea6e51962a523f443f5e43b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2273133Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68603}
      f9d3d78b
  7. 25 Jun, 2020 1 commit
    • Andreas Haas's avatar
      Reland "[wasm] Re-exported globals preserve their identity" · 1e4282db
      Andreas Haas authored
      This is a reland of f7a1932e
      
      There was a wpt test in Chrome that expected the incorrect behavior.
      I disable the test in https://crrev.com/c/2264418 so that we can land
      the fix here.
      
      Original change's description:
      > [wasm] Re-exported globals preserve their identity
      >
      > V8 fails a recently added spec test that when an imported global get
      > re-exported, it should preserve its identity. This CL fixes the behavior
      > in V8.
      >
      > Drive-by change: fix the object printer of globals: a global which
      > stores a reference type only has a tagged buffer, a global which stores
      > a value type only has an untagged buffer.
      >
      > R=clemensb@chromium.org
      >
      > Bug: v8:10556
      > Change-Id: I949d147fe4395610cfec6cf60082e1faecb23036
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235702
      > Commit-Queue: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#68513}
      
      Bug: v8:10556
      Change-Id: I8e1b08fc9f72dde166cba167e6e320e714796769
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2264097Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68552}
      1e4282db
  8. 24 Jun, 2020 2 commits
  9. 23 Jun, 2020 1 commit
  10. 22 Jun, 2020 2 commits
  11. 19 Jun, 2020 2 commits
  12. 18 Jun, 2020 1 commit
  13. 16 Jun, 2020 2 commits
  14. 12 Jun, 2020 1 commit
  15. 10 Jun, 2020 1 commit
  16. 09 Jun, 2020 1 commit
  17. 05 Jun, 2020 1 commit
  18. 04 Jun, 2020 2 commits
  19. 03 Jun, 2020 2 commits
  20. 02 Jun, 2020 2 commits
  21. 21 May, 2020 1 commit
  22. 19 May, 2020 1 commit
    • Emanuel Ziegler's avatar
      [wasm] Implement optional init parameter for Table.grow · 4372a9b5
      Emanuel Ziegler authored
      The typed function references proposal allows an optional second
      parameter to Table.grow containing the initialization value for the
      newly added entries for tables that do not support null defaults.
      
      This CL adds this functionality but hides it behind a newly added
      experimental flag --experimental-wasm-typed-funcref.
      
      R=ahaas@chromium.org
      CC=jkummerow@chromium.org
      CC=manoskouk@chromium.org
      
      Bug: v8:9495
      Change-Id: Ia156aeacf95bc36a9fc182990f315c42075cbb7b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207184
      Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67900}
      4372a9b5
  23. 13 May, 2020 1 commit
  24. 06 May, 2020 1 commit
  25. 01 May, 2020 1 commit
  26. 30 Apr, 2020 1 commit
  27. 28 Apr, 2020 2 commits
    • Clemens Backes's avatar
      [wasm][debug] Remove redirection to interpreter · 1fb1db17
      Clemens Backes authored
      This removes the {RedirectToWasmInterpreter} runtime function and the
      respective method from {WasmDebugInfo}.
      Some tests test specifically the interaction between compiled code and
      the interpreter. They are irrelevant now and are deleted.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10389
      Change-Id: I38330fcb523f7c65968fdf03abc60af3392bdcc8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2164793
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67427}
      1fb1db17
    • Clemens Backes's avatar
      [wasm] Remove the --wasm-interpret-all flag · 6f4991fa
      Clemens Backes authored
      The interpreter will be moved to be test-only, hence
      --wasm-interpret-all also needs to be removed.
      
      Since we don't have any non-compiling tier any more, we also remove the
      implication from --jitless to --wasm-lazy-compilation. Instead, we add
      another CHECK that we can't be in jitless mode if we trigger any wasm
      compilation.
      
      All tests that just ran other tests and additionally passed
      --wasm-interpret-all become redundant and are deleted. Also all
      regression tests that explicitly specify --wasm-interpret-all are not
      needed any more.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10389
      Change-Id: I5ddf20a842117a6c05e277a5308f5cfe42e6bfa5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2164792
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67419}
      6f4991fa
  28. 27 Apr, 2020 2 commits
    • Ng Zhi An's avatar
      Reland "[arm] Change fp_fixed registers to be allocatable registers" · 610f72a5
      Ng Zhi An authored
      This relands commit 1a38573f.
      
      The original change used a sequence of instruction in the test that
      could not be scalar lowered properly.
      
      Original change's description:
      > [arm] Change fp_fixed registers to be allocatable registers
      >
      > fp_fixed1 and fp_fixed2 are used by the S8x16Shuffle operation. They
      > need to be allocatable, so that they can be correctly marked as fixed
      > and spilled as required. The previous value of fp_fixed2, d29, is not in
      > the list of allocatable double registers, and not marked as fixed
      > appropriately.
      >
      > One fix could be to extend the list of allocatable double registers, but
      > there is a comment there saying that the list is kept even-length to
      > make stack alignment easier. So rather than messing with that, we
      > instead change what fp_fixed1 and fp_fixed2 is, since S8x16Shuffle is
      > the only user, this is a simpler change.
      >
      > Bug: chromium:1070078
      > Change-Id: Id7de9b256bad2cfb11b0f06b66eb80a48ff7827c
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2161565
      > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
      > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > Commit-Queue: Zhi An Ng <zhin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67372}
      
      Bug: chromium:1070078
      Change-Id: I02bb4b3ad03817318cbd0ee706c5ef4f20c845ba
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2165867Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67406}
      610f72a5
    • Clemens Backes's avatar
      [wasm][exn] Add test for manipulated prototype chain · 42bc23de
      Clemens Backes authored
      This adds a test which I suspected would fail, but luckily it doesn't.
      The idea is to catch a proper wasm exception in JS, then construct a new
      exception, but set the catched exception as the prototype. My suspicion
      was that we would still handle that new exception like a wasm exception,
      since the `WasmExceptionGetTag` and `WasmExceptionGetValues` runtime
      functions to a standard property lookup, which includes a prototype
      walk.
      Interestingly, the prototype walk is already skipped automatically when
      loading private symbols, so the implementation already supports this
      case correctly.
      Let's still add this test to have coverage for this case.
      
      R=jkummerow@chromium.org
      CC=aheejin@chromium.org
      
      Bug: v8:8091
      Change-Id: Idf9944cf47f96cca38e9678e9200bf03a39ea126
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2167438Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67391}
      42bc23de
  29. 24 Apr, 2020 2 commits
    • Francis McCabe's avatar
      Revert "[arm] Change fp_fixed registers to be allocatable registers" · 1a38573f
      Francis McCabe authored
      This reverts commit 390ed4b9.
      
      Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux/36714?
      
      
      Original change's description:
      > [arm] Change fp_fixed registers to be allocatable registers
      > 
      > fp_fixed1 and fp_fixed2 are used by the S8x16Shuffle operation. They
      > need to be allocatable, so that they can be correctly marked as fixed
      > and spilled as required. The previous value of fp_fixed2, d29, is not in
      > the list of allocatable double registers, and not marked as fixed
      > appropriately.
      > 
      > One fix could be to extend the list of allocatable double registers, but
      > there is a comment there saying that the list is kept even-length to
      > make stack alignment easier. So rather than messing with that, we
      > instead change what fp_fixed1 and fp_fixed2 is, since S8x16Shuffle is
      > the only user, this is a simpler change.
      > 
      > Bug: chromium:1070078
      > Change-Id: Id7de9b256bad2cfb11b0f06b66eb80a48ff7827c
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2161565
      > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org>
      > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > Commit-Queue: Zhi An Ng <zhin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#67372}
      
      TBR=gdeepti@chromium.org,zhin@chromium.org,thibaudm@chromium.org
      
      Change-Id: I00b4b34771b5832cc3d5fe6eac7aac506ec82d50
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:1070078
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2165865Reviewed-by: 's avatarFrancis McCabe <fgm@chromium.org>
      Commit-Queue: Francis McCabe <fgm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67375}
      1a38573f
    • Ng Zhi An's avatar
      [arm] Change fp_fixed registers to be allocatable registers · 390ed4b9
      Ng Zhi An authored
      fp_fixed1 and fp_fixed2 are used by the S8x16Shuffle operation. They
      need to be allocatable, so that they can be correctly marked as fixed
      and spilled as required. The previous value of fp_fixed2, d29, is not in
      the list of allocatable double registers, and not marked as fixed
      appropriately.
      
      One fix could be to extend the list of allocatable double registers, but
      there is a comment there saying that the list is kept even-length to
      make stack alignment easier. So rather than messing with that, we
      instead change what fp_fixed1 and fp_fixed2 is, since S8x16Shuffle is
      the only user, this is a simpler change.
      
      Bug: chromium:1070078
      Change-Id: Id7de9b256bad2cfb11b0f06b66eb80a48ff7827c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2161565Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67372}
      390ed4b9