1. 02 Dec, 2020 30 commits
  2. 01 Dec, 2020 10 commits
    • Andreas Haas's avatar
      Reland [wasm] Reduce job priority once baseline compilation finishes · 83d289b8
      Andreas Haas authored
      ReduceCompilationPriority takes a lock now.
      
      Original message:
      This Cl changes the priority of baseline compilation from kUserVisible
      to kUserBlocking. Once baseline compilation finishes, the priority is
      reduced to kUserVisible. The reason for using kUserBlocking is that
      thereby TurboFan compilation cannot block Liftoff compilation anymore.
      Additionally, kUserBlocking is quite appropriate, as the initial
      compilation does block a whole section of a web app from execution.
      
      R=clemensb@chromium.org
      
      Bug: v8:11088
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
      Change-Id: I6e1bcc809148198a4b4f88bfd4f2e62b1b061439
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563675
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71546}
      83d289b8
    • Ross McIlroy's avatar
      [Turboprop] Move deoptimizations for dynamic map checks into builtin. · b6643320
      Ross McIlroy authored
      In order to reduce the codegen size of dynamic map checks, add the
      ability to have an eager with resume deopt point, which can call
      a given builitin to perform a more detailed check than can be done
      in codegen, and then either deoptimizes itself (as if the calling
      code had performed an eager deopt) or resumes execution in the
      calling code after the check.
      
      In addition, support for adding extra arguments to a
      deoptimization continuation is added to enable us to pass the
      necessary arguments to the DynamicMapChecks builtin.
      
      Finally, a trampoline is added to the DynamicMapChecks which saves
      the registers that might be clobbered by that builtin, to avoid
      having to save them in the generated code. This trampoline also
      performs the deoptimization based on the result of the
      DynamicMapChecks builtin.
      
      In order to ensure both the trampoline and DynamicMapChecks
      builtin have the same call interface, and to limit the number
      of registers that need saving in the trampoline, the
      DynamicMapChecks builtin is moved to be a CSA builtin with a
      custom CallInterfaceDescriptor, that calls an exported Torque
      macro that implements the actual functionality.
      
      All told, this changes the codegen for a monomorphic dynamic
      map check from:
          movl rbx,<expected_map>
          cmpl [<object>-0x1],rbx
          jnz <deferred_call>
         resume_point:
          ...
         deferred_call:
          <spill registers>
          movl rax,<slot>
          movq rbx,<object>
          movq rcx,<handler>
          movq r10,<DynamicMapChecks>
          call r10
          cmpq rax,0x0
          jz <restore_regs>
          cmpq rax,0x1
          jz <deopt_point_1>
          cmpq rax,0x2
          jz <deopt_point_2>
          int3l
         restore_regs:
          <restore_regs>
          jmp <resume_point>
          ...
         deopt_point_1:
          call Deoptimization_Eager
         deopt_point_2:
          call Deoptimization_Bailout
      
      To: movl rax,<slot>
          movl rcx,<expected_map>
          movq rdx,<handler>
          cmpl [<object>-0x1],rcx
          jnz <deopt_point>
         resume_point:
          ...
         deopt_point:
          call DynamicMapChecksTrampoline
          jmp <resume_point>
      
      BUG=v8:10582
      
      Change-Id: Ica4927b9acc963b9b73dc62d9379a7815335650f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2560197
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71545}
      b6643320
    • Michael Achenbach's avatar
      [tools] Clean up insensitive terms · 60f45db4
      Michael Achenbach authored
      Follow up on renamed configurations, porting:
      https://crrev.com/c/2565170
      
      TBR=gsathya@chromium.org
      
      Bug: v8:10619,chromium:1097270
      Change-Id: Ibfeb6ee817642b16d79e673b2d91d4142a2b6cd4
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2566761Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71544}
      60f45db4
    • Milad Fa's avatar
      PPC: [wasm-simd] Load specific amount of data for LoadTransform · 2b39e305
      Milad Fa authored
      In this CL we fix the emitted code for Load Splat and Load Extend.
      Load Splat loads a byte, half word, word or double word based
      on the specific opcode.
      
      Load Extend always loads a double word and then unpacks it
      accordingly.
      
      Change-Id: Ic1619c81a58f4997d69612f08edb6975d17e8bb3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2568132Reviewed-by: 's avatarJunliang Yan <junyan@redhat.com>
      Commit-Queue: Milad Fa <mfarazma@redhat.com>
      Cr-Commit-Position: refs/heads/master@{#71543}
      2b39e305
    • v8-ci-autoroll-builder's avatar
      Update V8 DEPS. · a90fdd2c
      v8-ci-autoroll-builder authored
      Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/4fd0dec..b031112
      
      TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com
      
      Change-Id: Ic9a9082919cc7de8c816c33dcc62d219440a342c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567562Reviewed-by: 's avatarv8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
      Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/master@{#71542}
      a90fdd2c
    • Camillo Bruni's avatar
      [tools] Extend optimizations markers · c0f72de7
      Camillo Bruni authored
      This CL extends the existing optimization markers:
      
      - "~" for interpreted code
      - "-" for native context independent code (new)
      - "+" for turboprop code (new)
      - "*" for turbofan code
      
      Bug: v8:10644
      Change-Id: If8940a8c3f32c6f347f61a901be101078df66331
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567693
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71541}
      c0f72de7
    • Sathya Gunasekaran's avatar
      [tools] Remove animation for marked · 5bdb1cec
      Sathya Gunasekaran authored
      Bug: v8:10644
      Change-Id: I8c81e1f9d6f1f766af07905928ea7b437771e1ef
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567201Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71540}
      5bdb1cec
    • Manos Koukoutos's avatar
      Reland "[wasm] Make DecodeLocals return the number of decoded locals" · 6180581f
      Manos Koukoutos authored
      This is a reland of 535fd785.
      This CL was not the culprit, thus landing unmodified.
      
      Original change's description:
      > [wasm] Make DecodeLocals return the number of decoded locals
      >
      > Currently, when the new locals are not appended to the existing ones,
      > there is no way to know how many new locals were defined. This CL
      > addresses this issue.
      >
      > Drive-by: Fix the pc passed to DecodeLocals in OpcodeLength.
      > Change-Id: Id9de561a6380b52dcce398301727aa12196c0677
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567695
      > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#71526}
      
      TBR=manoskouk@chromium.org
      
      Change-Id: I1b2fbe9f6d0a19da9d73202de9f488870e79cd30
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567704Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71539}
      6180581f
    • Michael Achenbach's avatar
      Reland "Enable simulating errors to test fuzzer reliability" · 886d7cfe
      Michael Achenbach authored
      This is a reland of 4ad08c82
      
      The reland organizes the different error types in separate functions
      for separate call stacks. Error simulation is also guarded by
      a minimum file size to prevent Clusterfuzz from getting stuck with
      its bad-build check.
      
      Original change's description:
      > Enable simulating errors to test fuzzer reliability
      >
      > This adds a d8 flag --simulate-errors, which on shutdown will cause
      > certain errors. This enables testing the reliability of sanitizers.
      >
      > This will cause a fatal error, a dcheck (if available) or a
      > violation that can be detected with one of the following sanitizers:
      > ASAN, UBSAN, MSAN, CFI.
      >
      > The same flag used in differential fuzzing will cause an error
      > subsumed with the error state "fake_difference".
      >
      > Bug: chromium:1152412
      > Change-Id: I4b36c6fe716797004d634263617d22ca67b05600
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2554999
      > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#71430}
      
      Bug: chromium:1152412
      Change-Id: I604258b4c1ebd215c26b1de6b2822663f857bf64
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565125
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71538}
      886d7cfe
    • Clemens Backes's avatar
      [wasm] Update and run script to generate fuzzer corpus · 89ffd740
      Clemens Backes authored
      The wasm fuzzer corpus is pretty outdated. The script that was used to
      generate it did not work any more.
      This CL updates the script, and runs it. This generates a fuzzer corpus
      of 42011 wasm modules, compared to 15290 before. The new modules will
      contain new features like SIMD and multi-value, which will be
      interesting fuzzer inputs.
      
      R=ahaas@chromium.org
      
      Change-Id: Ic3df26930cb8c1c6e8d521597ceb06cc338c02ed
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565512Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71537}
      89ffd740