1. 12 Mar, 2021 19 commits
  2. 11 Mar, 2021 21 commits
    • Milad Fa's avatar
      PPC/s390: Reland "[no-wasm] Exclude src/wasm from compilation" · 8224bdf4
      Milad Fa authored
      Port 3f9ff062
      
      Original Commit Message:
      
          This is a reland of 80f5dfda. A condition
          in pipeline.cc was inverted, which lead to a CSA verifier error.
      
          Original change's description:
          > [no-wasm] Exclude src/wasm from compilation
          >
          > This is the biggest chunk, including
          > - all of src/wasm,
          > - torque file for wasm objects,
          > - torque file for wasm builtins,
          > - wasm builtins,
          > - wasm runtime functions,
          > - int64 lowering,
          > - simd scala lowering,
          > - WasmGraphBuilder (TF graph construction for wasm),
          > - wasm frame types,
          > - wasm interrupts,
          > - the JSWasmCall opcode,
          > - wasm backing store allocation.
          >
          > Those components are all recursively entangled, so I found no way to
          > split this change up further.
          >
          > Some includes that were recursively included by wasm headers needed to
          > be added explicitly now.
          >
          > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
          > because it only tests wasm backing stores. This file is excluded from
          > no-wasm builds then.
          >
          > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
          >
          > Bug: v8:11238
          > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
          > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
          > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
          > Commit-Queue: Clemens Backes <clemensb@chromium.org>
          > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
          > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
          > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
          > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
          > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
          > Cr-Commit-Position: refs/heads/master@{#73344}
      
      R=clemensb@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com
      BUG=
      LOG=N
      
      Change-Id: I006f32407aea051c960f32942f9353f415547116
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753143Reviewed-by: 's avatarJunliang Yan <junyan@redhat.com>
      Commit-Queue: Milad Fa <mfarazma@redhat.com>
      Cr-Commit-Position: refs/heads/master@{#73357}
      8224bdf4
    • Shu-yu Guo's avatar
      Remove shipped feature flags · 33c9fca3
      Shu-yu Guo authored
      Removes
      
      --harmony-string-replaceall (shipped since 8.5)
      --harmony-logical-assignment (shipped since 8.5)
      --harmony-atomics-waitasync (shipped since 8.7)
      
      Bug: v8:9801,v8:10372,v8:10239
      Change-Id: Ifb8db93948a067e75da5e581603acb916b91342a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2747201
      Commit-Queue: Shu-yu Guo <syg@chromium.org>
      Auto-Submit: Shu-yu Guo <syg@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73356}
      33c9fca3
    • Toon Verwaest's avatar
      [wx] Keep the execute bit while making code writable · 3094d598
      Toon Verwaest authored
      Otherwise SMC perturbs the icache too much it seems.
      
      Change-Id: Iceea779a7e3deee90efe29df568732d6ac5bcffa
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753768
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Auto-Submit: Toon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73355}
      3094d598
    • Milad Fa's avatar
      PPC [simd]: Implement FP rounding on Sim · 90b8ef84
      Milad Fa authored
      LVX simulation is also added in this CL.
      
      Change-Id: I9c827d979cdcd86216f0b089e3819d65d6fc45c3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753767Reviewed-by: 's avatarMilad Fa <mfarazma@redhat.com>
      Reviewed-by: 's avatarJunliang Yan <junyan@redhat.com>
      Commit-Queue: Milad Fa <mfarazma@redhat.com>
      Cr-Commit-Position: refs/heads/master@{#73354}
      90b8ef84
    • Michael Lippautz's avatar
      cppgc: Fix shrink to free list · b8e7d60d
      Michael Lippautz authored
      Add the object start bit when adding an entry to the free list.
      Introduce a GC at the end of the tests to make sure that the object
      start bitmap verification catches such issues.
      
      Bug: chromium:1056170
      Change-Id: Id8ca257ce054fc3fb199955cf1c4f38004033747
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752870Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73353}
      b8e7d60d
    • Seth Brenith's avatar
      [torque] Add option for printing Torque IR · ad0e581c
      Seth Brenith authored
      While working on the Torque compiler, I've sometimes found it difficult
      to understand Torque's intermediate representation and how it
      corresponds to the output. In this change, I propose adding a build flag
      that instructs Torque to emit comments describing its IR, interspersed
      in the generated code. This is particularly useful for seeing the stack
      management instructions (Peek, Poke, and DeleteRange) which don't emit
      any corresponding C++ code.
      
      Bug: v8:7793
      Change-Id: I24bdec47da76c9bd751b928d3cd92aa513dc6593
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748040Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#73352}
      ad0e581c
    • Georgia Kouveli's avatar
      [arm64] Add missing calls to `Unreachable`. · df748fc0
      Georgia Kouveli authored
      Change-Id: I15956f50e6c02d7c26d2810a3217d2d22eb71f5c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752871Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
      Cr-Commit-Position: refs/heads/master@{#73351}
      df748fc0
    • Junliang Yan's avatar
      s390x: [liftoff] implement eqz · ef839bbd
      Junliang Yan authored
      Change-Id: Ib60115cd06fe45d41490ff9bd69d23ab49ac6874
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2753126Reviewed-by: 's avatarMilad Fa <mfarazma@redhat.com>
      Commit-Queue: Junliang Yan <junyan@redhat.com>
      Cr-Commit-Position: refs/heads/master@{#73350}
      ef839bbd
    • Jakob Gruber's avatar
      [regexp] Remove Zone usage in runtime-regexp.cc · 42a7fe1d
      Jakob Gruber authored
      .. to reduce memory overhead. Zones allocate a minimum segment size of
      8KB, and the uses in runtime-regexp.cc are expected to need << that.
      
      Two uses were replaced by SmallVectors:
      
      * CompiledReplacement, parses string replacement patterns for
        optimized repeated use.
      * Intermediate data structures in RegExpReplace.
      
      Bug: v8:11540
      Change-Id: I3fb2d047f1bfadc9b85132f731b294bd8aa72368
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752873
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Auto-Submit: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73349}
      42a7fe1d
    • Clemens Backes's avatar
      Reland "[no-wasm] Exclude src/wasm from compilation" · 3f9ff062
      Clemens Backes authored
      This is a reland of 80f5dfda. A condition
      in pipeline.cc was inverted, which lead to a CSA verifier error.
      
      Original change's description:
      > [no-wasm] Exclude src/wasm from compilation
      >
      > This is the biggest chunk, including
      > - all of src/wasm,
      > - torque file for wasm objects,
      > - torque file for wasm builtins,
      > - wasm builtins,
      > - wasm runtime functions,
      > - int64 lowering,
      > - simd scala lowering,
      > - WasmGraphBuilder (TF graph construction for wasm),
      > - wasm frame types,
      > - wasm interrupts,
      > - the JSWasmCall opcode,
      > - wasm backing store allocation.
      >
      > Those components are all recursively entangled, so I found no way to
      > split this change up further.
      >
      > Some includes that were recursively included by wasm headers needed to
      > be added explicitly now.
      >
      > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      > because it only tests wasm backing stores. This file is excluded from
      > no-wasm builds then.
      >
      > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      >
      > Bug: v8:11238
      > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73344}
      
      TBR=jgruber@chromium.org
      
      Bug: v8:11238
      Change-Id: I20bd2847a59c68738b5a336cd42582b7b1499585
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      Cq-Include-Trybots: luci.v8.try:v8_linux_verify_csa_rel_ng
      Cq-Include-Trybots: luci.v8.try:v8_linux64_verify_csa_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752867Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73348}
      3f9ff062
    • Marja Hölttä's avatar
      [private brand checks] Ship --harmony-private-brand-checks · 3b16162e
      Marja Hölttä authored
      I2S: https://groups.google.com/a/chromium.org/g/blink-dev/c/SO8zL3dvKsI/m/wMg-UGOUAgAJ
      
      Bug: v8:11374
      Change-Id: If25136f457ba15b7647b383d1e057e5ee4e8266f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2745143Reviewed-by: 's avatarShu-yu Guo <syg@chromium.org>
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73347}
      3b16162e
    • Clemens Backes's avatar
      Revert "[no-wasm] Exclude src/wasm from compilation" · 92bc3d38
      Clemens Backes authored
      This reverts commit 80f5dfda.
      
      Reason for revert: Fails CSA verification: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20verify%20csa/21766/overview
      
      Original change's description:
      > [no-wasm] Exclude src/wasm from compilation
      >
      > This is the biggest chunk, including
      > - all of src/wasm,
      > - torque file for wasm objects,
      > - torque file for wasm builtins,
      > - wasm builtins,
      > - wasm runtime functions,
      > - int64 lowering,
      > - simd scala lowering,
      > - WasmGraphBuilder (TF graph construction for wasm),
      > - wasm frame types,
      > - wasm interrupts,
      > - the JSWasmCall opcode,
      > - wasm backing store allocation.
      >
      > Those components are all recursively entangled, so I found no way to
      > split this change up further.
      >
      > Some includes that were recursively included by wasm headers needed to
      > be added explicitly now.
      >
      > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      > because it only tests wasm backing stores. This file is excluded from
      > no-wasm builds then.
      >
      > R=​jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      >
      > Bug: v8:11238
      > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73344}
      
      Bug: v8:11238
      Change-Id: I93672002c1faa36bb0bb5b4a9cc2032ee2ccd814
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752866
      Auto-Submit: Clemens Backes <clemensb@chromium.org>
      Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/master@{#73346}
      92bc3d38
    • Clemens Backes's avatar
      [liftoff][arm] Make context register allocatable · 4b3371c6
      Clemens Backes authored
      This will make it easier to generate builtin calls that require the
      context to be passed in that register, because this can be represented
      as a {LiftoffRegister} then.
      
      R=thibaudm@chromium.org
      
      Bug: v8:11453
      Change-Id: I00995203cc936f23d1c01fdbf8f13eb929f228ae
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752151Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73345}
      4b3371c6
    • Clemens Backes's avatar
      [no-wasm] Exclude src/wasm from compilation · 80f5dfda
      Clemens Backes authored
      This is the biggest chunk, including
      - all of src/wasm,
      - torque file for wasm objects,
      - torque file for wasm builtins,
      - wasm builtins,
      - wasm runtime functions,
      - int64 lowering,
      - simd scala lowering,
      - WasmGraphBuilder (TF graph construction for wasm),
      - wasm frame types,
      - wasm interrupts,
      - the JSWasmCall opcode,
      - wasm backing store allocation.
      
      Those components are all recursively entangled, so I found no way to
      split this change up further.
      
      Some includes that were recursively included by wasm headers needed to
      be added explicitly now.
      
      backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      because it only tests wasm backing stores. This file is excluded from
      no-wasm builds then.
      
      R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      
      Bug: v8:11238
      Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73344}
      80f5dfda
    • Santiago Aboy Solanes's avatar
      [compiler] Perform MapRef::FindRootMap concurrently · ad4b012d
      Santiago Aboy Solanes authored
      Bug: v8:7790
      Change-Id: I6f322591e68f922b1441a10528da7bba77d4f922
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739639Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73343}
      ad4b012d
    • Ross McIlroy's avatar
      [compiler] Cache StateValue processing in InstructionSelector. · 812eb264
      Ross McIlroy authored
      Processing StateValues into operands is one of the most costly
      parts of instruction selection. As it happens, StateValues are
      shared by many nodes, and so we are unecessarily reprocessing
      the same StateValues multiple times. This CL introduces caching
      for the processed StateValues enabling very fast emitting of
      operands for subsiquent instructions with the same StateValue.
      The hitrate for the cache is higher than 90% on most optimizations.
      
      BUG=v8:9684
      
      Change-Id: I45db86dcbf22ab972b892f11c608b825aeb3ecf3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749634Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73342}
      812eb264
    • Clemens Backes's avatar
      [codegen] Simplify definition of signatures · d38f84ac
      Clemens Backes authored
      Liftoff defines many signatures of fixed size. This is currently done by
      defining a fixed-size array on the stack, and then using this in the
      signature definition. This is cumbersome and hard to read, since the
      array contains return types and parameter types, and only the signature
      definition separates the two. But also the order of those two sizes in
      the signature is non-obvious and easy to get wrong.
      
      This CL introduces a helper to define fixed-size signatures in a
      "builder style", i.e. parameters and return types can be added
      separately. The fixed-size array will be contained in the returned
      class, so it will still be stack-allocated like before. The copies to
      iteratively build up this array should be completely eliminated by the
      compiler, so the binary code should look exactly the same.
      
      R=ahaas@chromium.org
      
      Bug: v8:11384
      Change-Id: I167830d6c3429f535b7d1241920730498a9bb4c1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2747505
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73341}
      d38f84ac
    • Manos Koukoutos's avatar
      [turbofan] Fix CsaLoadElimination for small types · f7bb9267
      Manos Koukoutos authored
      CsaLoadElimination failed to account for truncation when optimizing
      loads. This CL extends the notion of compatible Loads and Stores to
      include ({store}, {load}) pairs which both have integral representation
      and {store}'s representation is no smaller than {load}'s. In case the
      representations are not identical, it truncates and possibly
      sign-extends {store} before forwarding it to {load}.
      
      Additional change: Extend ObjectMayAlias with wasm allocating builtin
      calls.
      
      Bug: v8:11504
      Change-Id: I43f89a13793b54477a33be18aaf346462aefa8e5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739975Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73340}
      f7bb9267
    • Michael Lippautz's avatar
      cppgc: Add GCInfo folding · b01869ca
      Michael Lippautz authored
      Adds GCInfo folding that delegates GCInfo requests to the
      parent-most object if finalizer semantics match.
      
      Folding is disabled for builds that want exact object names
      as those names are also managed through GCInfo objects.
      
      Bug: chromium:1056170
      Change-Id: I783aad930587853741da533d0b9b56ba160d0596
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748588
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73339}
      b01869ca
    • Clemens Backes's avatar
      [no-wasm][logging] Remove wasm support for logging · 2dbdfcdd
      Clemens Backes authored
      The definition of {wasm::WasmCode} will not be available in no-wasm
      builds, hence avoid any accesses to WasmCode for logging.
      
      Drive-by: Inline enumeration of wasm modules for logging of existing
      code, to avoid another #if.
      
      R=petermarshall@chromium.org, jgruber@chromium.org
      
      Bug: v8:11238
      Change-Id: I3b78cf90f9ad155b5bea64e0941531aed2d4291a
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739978Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73338}
      2dbdfcdd
    • Jakob Gruber's avatar
      [regexp] Don't allocate dynamic stacks when static stacks suffice · d18b37ce
      Jakob Gruber authored
      In https://chromium-review.googlesource.com/c/v8/v8/+/1866771 we added
      a static regexp stack area to ensure a stack always exists. We
      apparently forgot to update EnsureCapacity s.t. we skip
      dynamically-allocating a stack when the static stack suffices.
      
      Found by lizeb@, thanks!
      
      Bug: v8:11540
      Change-Id: Ie63b0b5e5959fbf0768cc3597f63943b1775fbf2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2749015
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73337}
      d18b37ce