1. 02 Sep, 2020 1 commit
  2. 01 Sep, 2020 29 commits
  3. 31 Aug, 2020 10 commits
    • Omer Katz's avatar
      cppgc: Update heap growing heuristics for incremental gc · aa923b1c
      Omer Katz authored
      Heap growing estimates when to start  incremental gc such that it
      will finish when we are expecting to finalize (i.e. when an atomic
      gc would be triggered).
      There is also a minimum ratio between limit for atomic gc and limit
      for incremental gc, to guarantee that incremental gc get's some time to
      run even with the application rarely allocates.
      
      This is a continuation of:
      https://chromium-review.googlesource.com/c/v8/v8/+/2377691
      
      Bug: chromium:1056170
      Change-Id: I8c87e98d60b6f8b5748558771a236f15385f7858
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2381454Reviewed-by: 's avatarAnton Bikineev <bikineev@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Anton Bikineev <bikineev@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69630}
      aa923b1c
    • Milad Farazmand's avatar
      PPC/s390: [wasm-simd][mips] Skip test on arch without SIMD · db837d58
      Milad Farazmand authored
      Port 524fa743
      
      Original Commit Message:
      
          This regression test does not work on MIPS without SIMD since the scalar
          lowering is not complete yet. Skip it for now.
      
      R=zhin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I0338593de3160dc0864c066e607b6030956e3efa
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2386141Reviewed-by: 's avatarZhi An Ng <zhin@chromium.org>
      Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#69629}
      db837d58
    • bcoe's avatar
      [coverage] IncBlockCounter should not be side-effect · 6be2f6e2
      bcoe authored
      Incrementing coverage counter was triggering EvalError for
      evaluateOnCallFrame when throwOnSideEffect is true.
      
      R=jgruber@chromium.org, sigurds@chromium.org, yangguo@chromium.org
      
      Bug: v8:10856
      Change-Id: I0552e19a3a14ff61a9cb626494fb4a21979d535e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2384011
      Commit-Queue: Benjamin Coe <bencoe@google.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69628}
      6be2f6e2
    • Brendan Shanks's avatar
      Use NtCurrentTeb() in GetStackStart() to fix 64-bit Wine on macOS · c40c8f7d
      Brendan Shanks authored
      When running 64-bit Windows binaries on macOS using Wine, there is a
      conflict between macOS's use of GS to point to pthread thread-specific
      data, and Windows' use of GS to point to the TEB.
      
      Apple has reserved some TSD slots for use by Wine to store commonly-used
      TEB members (such as 0x30, the 'Self' pointer to the TEB).
      But, other direct GS accesses by Windows programs (such as to
      'StackBase') will return macOS pthread data rather than the TEB member.
      This was causing a V8 unit test to crash on macOS under Wine.
      
      Using NtCurrentTeb() gets the 'Self' pointer first, then dereferences
      it to access the correct 'StackBase', fixing the crash.
      This turns GetStackStart() from one instruction into two.
      
      Chrome (http://crrev.com/c/2380425) and Crashpad also use
      NtCurrentTeb().
      
      The 32-bit change isn't needed, but is just for consistency.
      
      Bug: chromium:1121842
      Change-Id: I824f893aa451d8570142226be91840c964426f38
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2381941Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69627}
      c40c8f7d
    • Ng Zhi An's avatar
      [wasm-simd][mips] Skip test on MIPS without SIMD · 524fa743
      Ng Zhi An authored
      This regression test does not work on MIPS without SIMD since the scalar
      lowering is not complete yet. Skip it for now.
      
      Bug: v8:10831
      Change-Id: Icc407488a96d4c965c1cf956f7a74abde078d421
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2385855Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69626}
      524fa743
    • Arthur Eubanks's avatar
      Add -Wno-string-concatenation to test/cctest:cctest_sources · 89594941
      Arthur Eubanks authored
      v8/test/cctest/interpreter/test-bytecode-generator.cc contains lots of string arrays with intentional concatenation.
      
      Bug: chromium:1114873
      Change-Id: Ie9d35c3849b5b0a6d1d01b6ce21fb80a320d8736
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366829
      Commit-Queue: Arthur Eubanks <aeubanks@google.com>
      Reviewed-by: 's avatarSathya Gunasekaran  <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69625}
      89594941
    • Tianping Yang's avatar
      [test] Add a test case to the snaphot with all function code · a96715b0
      Tianping Yang authored
      By eager compile all functions in the startup snapshot, the startup
      snapshot can contain all function codes without warm-up.
      
      BUG=v8:4836
      R=yangguo@chromium.org
      
      Change-Id: I07e86b6940c2fe75816df8ae429d110272216d0a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2379535Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69624}
      a96715b0
    • Alex Kodat's avatar
      [cpu-profiler] Ensure sampled thread has Isolate lock under Windows · dfb3f7da
      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 extracting info from a
      heap in motion. 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: Iab2493130b9328430d7e5f5d3cf90ad6d10b1892
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2377108Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69623}
      dfb3f7da
    • Gus Caplan's avatar
      fix PerformCastCheck on v8::Data · 61216077
      Gus Caplan authored
      PerformCheckCast<Data>() itself should not invoke Data::Cast(), since
      there is no such method and every publicly available value can be
      casted to it anyway. This is an issue in e.g.
      GetDataFromSnapshotOnce<Data>().
      
      Change-Id: I5d9ee89657c31bc0ca1fb16e704df58911c85f6c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2383030
      Commit-Queue: Gus Caplan <snek@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69622}
      61216077
    • Martin Bidlingmaier's avatar
      [regexp] Support some non-trivial EXPERIMENTAL patterns · 13667065
      Martin Bidlingmaier authored
      This CL adds support for disjunctions and some quantification in
      EXPERIMENTAL regexp patterns. It is implemented using a new bytecode
      format and an NFA-based breadth-first interpreter.
      
      R=jgruber@chromium.org
      
      Bug: v8:10765
      Change-Id: Idd49a3bbc9a9fcc2be80d822c9d84a638e53e777
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2370634
      Commit-Queue: Martin Bidlingmaier <mbid@google.com>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69621}
      13667065