1. 18 Sep, 2020 10 commits
  2. 17 Sep, 2020 17 commits
  3. 16 Sep, 2020 13 commits
    • Ng Zhi An's avatar
      [wasm-simd][liftoff][ia32][x64] Implement floating-point roundings · 7f654693
      Ng Zhi An authored
      Implement f32x4 and f64x2 nearest, trunc, ceil, and floor for ia32 and
      x64. arm and arm64 will follow in a future patch, now they just bail out
      into a runtime call.
      
      Bug: v8:10906
      Change-Id: I8c90ba6825e0360ca1251a1f706f9dbcba7afdbf
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2411691
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69961}
      7f654693
    • Ng Zhi An's avatar
      [wasm-simd][scalar-lowering] Fix lowering for i64x2 · 5f7e9234
      Ng Zhi An authored
      Add lowering for I64x2 in S128Const and converting Int64x2 to
      Int32x2.
      
      Bug: v8:10507
      Change-Id: I5bc40ae135fa00e31e901337b1a315f6ead14b02
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2410800Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69960}
      5f7e9234
    • Bill Budge's avatar
      Revert "Reland^4 "[flags] warn about contradictory flags"" · a0e38f31
      Bill Budge authored
      This reverts commit 2000aea5.
      
      Reason for revert: Breaks NumFuzz.
      
      Original change's description:
      > Reland^4 "[flags] warn about contradictory flags"
      > 
      > This is a reland of 0ba115e6
      > Changes compared to last reland:
      > - Fix Python code trying to write to expected_outcomes, which is now a
      >   computed property.
      > - Fix remaining place in d8.cc that ignored the --fuzzing flag.
      > - Expect flag contradictions for --cache in code_serializer variant.
      > 
      > Original change's description:
      > > Reland^3 "[flags] warn about contradictory flags"
      > >
      > > Changes:
      > > - Also allow second parameter influenced by --cache to be reassigned.
      > > - Fix --stress-opt to only --always-opt in the last iteration as before.
      > >
      > > Original change's description:
      > > > Reland^2 "[flags] warn about contradictory flags"
      > > >
      > > > This is a reland of d8f8a7e2
      > > > Change compared to last reland:
      > > > - Do not check for d8 flag contradictions in the presence of --fuzzing
      > > > - Allow identical re-declaration of --cache=*
      > > >
      > > > 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}
      > > >
      > > > Bug: v8:10577
      > > > Change-Id: I31d2794d4f9ff630f3444210100c64d67d881276
      > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339464
      > > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#69339}
      > >
      > > Bug: v8:10577
      > > 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: I4a69dc57a102782cb453144323e3752ac8278624
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352770
      > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#69433}
      > 
      > Change-Id: Ib6d2aeb495210f581ac671221c265df58e8e5e70
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398640
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Tamer Tas <tmrts@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69954}
      
      TBR=clemensb@chromium.org,tebbi@chromium.org,tmrts@chromium.org
      
      Change-Id: I2dc80bcad9f74c29298902e01939e7e7f3336cf6
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2415133Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69959}
      a0e38f31
    • Andreas Haas's avatar
      [wasm][liftoff] Delete unused parameter in StoreTaggedPointer · 8e7d2844
      Andreas Haas authored
      The {offset_reg} parameter was introduced so that the signature of
      StoreTaggedPointer is the same as for Store, and also to prepare for
      potential later uses. However, handling the parameter would introduce
      additional complexity, and chances are low that it will ever be used.
      That's why this CL just removes it.
      
      R=thibaudm@chromium.org
      
      Bug: v8:7581
      Change-Id: Ib419a72e1d9f36b8d9a3dbbce538ce57bb37d476
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2412182Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69958}
      8e7d2844
    • Almothana Athamneh's avatar
      Increase shards for Mac on ARM64 buiders · d558494c
      Almothana Athamneh authored
      Bug: chromium:1126467
      Change-Id: Id10117b99fa28504780dd6c0a7850bb17e5e94ef
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2414210
      Auto-Submit: Almothana Athamneh <almuthanna@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69957}
      d558494c
    • Frank Tang's avatar
      Reland "Roll test262" · bfab5058
      Frank Tang authored
      This is a reland of effbbb8c
      
      Original change's description:
      > Roll test262
      >
      > https://chromium.googlesource.com/external/github.com/tc39/test262/+log/e8cdf92..6397602
      >
      > Bug: v8:7834, v8:4628, v8:10903, v8:10905
      > Change-Id: I65bf15d6308126a4955abe0a6b0647834f4ff066
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2405804
      > Reviewed-by: Shu-yu Guo <syg@chromium.org>
      > Commit-Queue: Frank Tang <ftang@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69899}
      
      Bug: v8:7834
      Bug: v8:4628
      Bug: v8:10903
      Bug: v8:10905
      Bug: v8:10921
      Change-Id: I615279b2a370daa2d7ce1fbdaa13f1ade12f8101
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2413482Reviewed-by: 's avatarShu-yu Guo <syg@chromium.org>
      Commit-Queue: Frank Tang <ftang@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69956}
      bfab5058
    • Jakob Kummerow's avatar
      Revert recent de/serializer related changes · 1aa9ab73
      Jakob Kummerow authored
      They are suspected to be causing Canary crashes, confirmed through
      local reverts and repro attempts.
      
      This reverts:
      - "Reland "[serializer] Change deferring to use forward refs""
        commit 76d684cc.
      - "Reland "[serializer] Remove new space""
        commit 81231c23.
      - "[serializer] Clean-up and de-macro ReadDataCase"
        commit c06d24b9.
      - "[serializer] DCHECK deserializer allocations are initialized"
        commit fbc1f32d.
      
      Bug: chromium:1128872
      Change-Id: Id2bb3b8fac526fdf9ffb033222ae08cd423f8238
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2414220Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69955}
      1aa9ab73
    • Tobias Tebbi's avatar
      Reland^4 "[flags] warn about contradictory flags" · 2000aea5
      Tobias Tebbi authored
      This is a reland of 0ba115e6
      Changes compared to last reland:
      - Fix Python code trying to write to expected_outcomes, which is now a
        computed property.
      - Fix remaining place in d8.cc that ignored the --fuzzing flag.
      - Expect flag contradictions for --cache in code_serializer variant.
      
      Original change's description:
      > Reland^3 "[flags] warn about contradictory flags"
      >
      > Changes:
      > - Also allow second parameter influenced by --cache to be reassigned.
      > - Fix --stress-opt to only --always-opt in the last iteration as before.
      >
      > Original change's description:
      > > Reland^2 "[flags] warn about contradictory flags"
      > >
      > > This is a reland of d8f8a7e2
      > > Change compared to last reland:
      > > - Do not check for d8 flag contradictions in the presence of --fuzzing
      > > - Allow identical re-declaration of --cache=*
      > >
      > > 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}
      > >
      > > Bug: v8:10577
      > > Change-Id: I31d2794d4f9ff630f3444210100c64d67d881276
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339464
      > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#69339}
      >
      > Bug: v8:10577
      > 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: I4a69dc57a102782cb453144323e3752ac8278624
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352770
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69433}
      
      Change-Id: Ib6d2aeb495210f581ac671221c265df58e8e5e70
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398640
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarTamer Tas <tmrts@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69954}
      2000aea5
    • Ng Zhi An's avatar
      [wasm-simd][ia32] Fix codegen for f32x4 min and max · 099f0f8e
      Ng Zhi An authored
      dst might not be the same as src0 (since we don't define them to be
      equals in the instruction-selector if AVX is enabled), so the minps
      and maxps comparisons were incorrect.
      
      I found this while trying to run some spec tests, so not adding any
      unittest, eventually when the spec tests are enabled, this will be
      covered.
      
      Bug: v8:10835
      Change-Id: I4fbc1dfe949e4137e057e73c0d5dfb8534a00b8f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2411484Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69953}
      099f0f8e
    • Alex Kodat's avatar
      [cpu-profiler] Ensure sampled thread has Isolate lock under Windows · 76217f57
      Alex Kodat authored
      While the sampler checked if the sampled thread had the Isolate locked
      (if locks are being used) under Linux, the check was not done under
      Windows (or Fuchsia) which meant that in a multi-threading application
      under Windows, thread locking was not checked making it prone to seg
      faults and the like as the profiler would be using isolate->js_entry_sp
      to determine the stack to walk but isolate->js_entry_sp is the stack
      pointer for the thread that currently has the Isolate lock so, if the
      sampled thread does not have the lock, the sampler woud be iterating
      over the wrong stack, one that might actually be actively changing on
      another thread. The fix was to move the lock check into CpuSampler
      and Ticker (--prof) so all OSes would do the correct check.
      
      The basic concept is that on all operating systems a CpuProfiler, and
      so its corresponding CpuCampler, the profiler is tied to a thread.
      This is not based on first principles or anything, it's simply the
      way it works in V8, though it is a useful conceit as it makes
      visualization and interpretation of profile data much easier.
      
      To collect a sample on a thread associated with a profiler the thread
      must be stopped for obvious reasons -- walking the stack of a running
      thread is a formula for disaster. The mechanism for stopping a thread
      is OS-specific and is done in sample.cc. There are currently three
      basic approaches, one for Linux/Unix variants, one for Windows and one
      for Fuchsia. The approaches vary as to which thread actually collects
      the sample -- under Linux the sample is actually collected on the
      (interrupted) sampled thread whereas under Fuchsia/Windows it's on
      a separate thread.
      
      However, in a multi-threaded environment (where Locker is used), it's
      not sufficient for the sampled thread to be stopped. Because the stack
      walk involves looking in the Isolate heap, no other thread can be
      messing with the heap while the sample is collected. The only ways to
      ensure this would be to either stop all threads whenever collecting a
      sample, or to ensure that the thread being sampled holds the Isolate
      lock so prevents other threads from messing with the heap. While there
      might be something to be said for the "stop all threads" approach, the
      current approach in V8 is to only stop the sampled thread so, if in a
      multi-threaded environment, the profiler must check if the thread being
      sampled holds the Isolate lock.
      
      Since this check must be done, independent of which thread the sample
      is being collected on (since it varies from OS to OS), the approach is
      to save the thread id of the thread to be profiled/sampled when the
      CpuSampler is instantiated (on all OSes it is instantiated on the
      sampled thread) and then check that thread id against the Isolate lock
      holder thread id before collecting a sample. If it matches, we know
      sample.cc has stop the sampled thread, one way or another, and we know
      that no other thread can mess with the heap (since the stopped thread
      holds the Isolate lock) so it's safe to walk the stack and collect data
      from the heap so the sample can be taken. It it doesn't match, we can't
      safely collect the sample so we don't.
      
      Bug: v8:10850
      Change-Id: Iba6cabcd3e11a19c261c004103e37e806934dc6f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2411343Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69952}
      76217f57
    • Frank Tang's avatar
      Fix locale of Intl.Collator..resolvedOptions · 46e06ad8
      Frank Tang authored
      Bug: v8:7481, v8:9084, v8:8664
      Change-Id: Iccbf78bf11a4e8ca5d105772fa5f654fbe6542cd
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2410791
      Commit-Queue: Frank Tang <ftang@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69951}
      46e06ad8
    • Michael Achenbach's avatar
      [test] Print less in verbose mode · d8d6110b
      Michael Achenbach authored
      I/O is quite expensive on the bots. This cuts down a bit of it by
      printing slightly fewer characters per test in verbose mode.
      
      This leads to an overall speed improvement of ~20% for large test
      suites, e.g. Test262 output-collection time goes from ~2m30 to ~2m.
      
      The averages to a 5-10% overall speed improvement for slow tryjobs.
      
      Bug: v8:10916
      Change-Id: I56dcb072af8eb32a1e09e17a05db5782c6d79315
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2414038
      Auto-Submit: Michael Achenbach <machenbach@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69950}
      d8d6110b
    • Santiago Aboy Solanes's avatar
      Reland "[compiler] Replace JSDataView with direct reads" · 785d701f
      Santiago Aboy Solanes authored
      This is a reland of b5f37051
      
      Got reverted since it was breaking the bots
      (https://bugs.chromium.org/p/v8/issues/detail?id=10918)
      
      The solution is to keep the JSDataView class as kSerialized but change
      its method to do a direct heap access. In this way, its map it will
      still be serialized (which was the cause of the bot failure).
      
      In order to keep incrementally skipping serialization, we can introduce
      new macros that allow a per-method skip of serialization rather than
      per-class.
      
      Original change's description:
      > [compiler] Replace JSDataView with direct reads
      >
      > Bug: v8:7790
      > Change-Id: Id01c2e4359aa4294816ffe14c08a586a9b9b10c2
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2404768
      > Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69904}
      
      Bug: v8:7790, v8:10918
      Change-Id: Ifdfe504272369e7cc1332fe53992739f9d0be385
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2413258Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69949}
      785d701f