1. 14 Nov, 2016 1 commit
    • yangguo's avatar
      [serializer] small fixes for blink snapshot. · c759a3d8
      yangguo authored
      Changes include:
       - Adding V8_EXPORT macro for SnapshotCreator
       - Removing outdated DCHECKs.
       - Allow nullptr as external reference. This required a...
       - Refactoring of hashmaps used by the serializer.
       - Remove external references for counters. These are not used
         anywhere for isolates that are being serialized.
       - Put template infos into the partial snapshot cache.
       - Remove unnecessary presubmit check for external references.
         mksnapshot crashes if external references are missing.
      
      R=jochen@chromium.org, vogelheim@chromium.org
      BUG=chromium:617892
      
      Review-Url: https://codereview.chromium.org/2490783004
      Cr-Commit-Position: refs/heads/master@{#40949}
      c759a3d8
  2. 11 Nov, 2016 1 commit
  3. 04 Nov, 2016 3 commits
  4. 31 Oct, 2016 1 commit
  5. 27 Oct, 2016 1 commit
  6. 20 Oct, 2016 2 commits
  7. 18 Oct, 2016 2 commits
  8. 07 Oct, 2016 1 commit
  9. 07 Sep, 2016 3 commits
    • bjaideep's avatar
      PPC [heap]: Increase size of the compiled source object · 9908c589
      bjaideep authored
      On PPC the testcase CodeSerializerLargeCodeObject fails as
      the object gets allocated in the code_space section of
      the heap. This is because the code_space gets expanded
      successfully to 1 page size (4MB on PPC) and can accommodate
      the object (size=3784608 bytes). Increasing size of the compiled
      source to (5096192 bytes) so that code_space is not expanded and
      the space is allocated in the Large Object space of the heap.
      Testcase was added as part of https://codereview.chromium.org/2226233002
      
      R=mstarzinger@chromium.org, bmeurer@chromium.org
      
      BUG=
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2314843003
      Cr-Commit-Position: refs/heads/master@{#39252}
      9908c589
    • bmeurer's avatar
      [builtins] Migrate Number predicates and make them optimizable. · 7ac19fe5
      bmeurer authored
      Migrate the isNaN, isFinite, Number.isFinite, Number.isInteger,
      Number.isSafeInteger and Number.isNaN predicates to TurboFan
      builtins and make them optimizable (for certain input types) in
      JavaScript callees being optimized by TurboFan. That means both
      the baseline and the optimized version is now always at maximum,
      consistent performance. Especially TurboFan suffered from poor
      baseline (and optimized) performance because it cannot play the
      same weird tricks that Crankshaft plays for %_IsSmi.
      
      This also adds a bunch of new tests to properly cover the use
      of the Harmony predicates in optimized code.
      
      R=franzih@chromium.org
      BUG=v8:5049,v8:5267
      
      Review-Url: https://codereview.chromium.org/2313073002
      Cr-Commit-Position: refs/heads/master@{#39242}
      7ac19fe5
    • ulan's avatar
      [heap] Introduce enum of garbage collection reasons. · 1b26611c
      ulan authored
      Now callers of Heap::CollectGarbage* functions need to
      specify the reason as an enum value instead of a string.
      
      Subsequent CL will add stats counter for GC reason.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2310143002
      Cr-Commit-Position: refs/heads/master@{#39239}
      1b26611c
  10. 02 Sep, 2016 1 commit
  11. 01 Sep, 2016 1 commit
  12. 28 Aug, 2016 1 commit
  13. 25 Aug, 2016 1 commit
  14. 23 Aug, 2016 1 commit
  15. 12 Aug, 2016 2 commits
  16. 10 Aug, 2016 2 commits
    • mlippautz's avatar
      Revert of [heap] Switch to 500k pages (patchset #24 id:780001 of... · 555c9619
      mlippautz authored
      Revert of [heap] Switch to 500k pages (patchset #24 id:780001 of https://codereview.chromium.org/2013713003/ )
      
      Reason for revert:
      Failures on waterfall:
      
      e.g. http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11134
      
      Original issue's description:
      > [heap] Switch to 500k pages
      >
      > - Decrease regular heap object size to 300k, keeping the same ration (60%)
      >   between this limit and page size.
      >
      > In a follow up, we can now get rid of the new space border page while
      > keeping the 1M minimum new space size.
      >
      > Some results (v8.infinite_scroll; 3 runs):
      > - evacuate.avg: +15.3% (1.4->1.2)
      > - evacuate.max: +24.4% (2.4->1.8)
      >
      > BUG=chromium:581412
      > LOG=N
      > R=hpayer@chromium.org, ulan@chromium.org, yangguo@chromium.org
      >
      > Committed: https://crrev.com/ffe5c670e1559d11e7b252e15fec38765e7dbe4f
      > Cr-Commit-Position: refs/heads/master@{#38533}
      
      TBR=hpayer@chromium.org,ulan@chromium.org,yangguo@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:581412
      
      Review-Url: https://codereview.chromium.org/2229403003
      Cr-Commit-Position: refs/heads/master@{#38537}
      555c9619
    • mlippautz's avatar
      [heap] Switch to 500k pages · ffe5c670
      mlippautz authored
      - Decrease regular heap object size to 300k, keeping the same ration (60%)
        between this limit and page size.
      
      In a follow up, we can now get rid of the new space border page while
      keeping the 1M minimum new space size.
      
      Some results (v8.infinite_scroll; 3 runs):
      - evacuate.avg: +15.3% (1.4->1.2)
      - evacuate.max: +24.4% (2.4->1.8)
      
      BUG=chromium:581412
      LOG=N
      R=hpayer@chromium.org, ulan@chromium.org, yangguo@chromium.org
      
      Review-Url: https://codereview.chromium.org/2013713003
      Cr-Commit-Position: refs/heads/master@{#38533}
      ffe5c670
  17. 09 Aug, 2016 1 commit
  18. 04 Aug, 2016 1 commit
  19. 01 Aug, 2016 1 commit
  20. 01 Jul, 2016 1 commit
    • bmeurer's avatar
      [builtins] Unify most of the remaining Math builtins. · 0a0fe8fb
      bmeurer authored
      Import fdlibm versions of acos, acosh, asin and asinh, which are more
      precise and produce the same result across platforms (we were using
      libm versions for asin and acos so far, where both speed and precision
      depended on the operating system so far). Introduce appropriate TurboFan
      operators for these functions and use them both for inlining and for the
      generic builtin.
      
      Also migrate the Math.imul and Math.fround builtins to TurboFan builtins
      to ensure that their behavior is always exactly the same as the inlined
      TurboFan version (i.e. C++ truncation semantics for double to float
      don't necessarily meet the JavaScript semantics).
      
      For completeness, also migrate Math.sign, which can even get some nice
      love in TurboFan.
      
      Drive-by-fix: Some alpha-sorting on the Math related functions, and
      cleanup the list of Math intrinsics that we have to export via the
      native context currently.
      
      BUG=v8:3266,v8:3496,v8:3509,v8:3952,v8:5169,v8:5170,v8:5171,v8:5172
      TBR=rossberg@chromium.org
      R=franzih@chromium.org
      
      Review-Url: https://codereview.chromium.org/2116753002
      Cr-Commit-Position: refs/heads/master@{#37476}
      0a0fe8fb
  21. 30 Jun, 2016 1 commit
  22. 28 Jun, 2016 2 commits
    • yangguo's avatar
      [snapshot] revisit snapshot API. · 872c461b
      yangguo authored
      This part of the snapshot API should not be in use yet, so we can still
      change this. The motivation for this change is:
      - Use MaybeHandle where reasonable.
      - Remove ambiguity: when we use index to create context from snapshot,
        we should not have a silent fallback if snapshot is not available.
      - Symmetry: rename to Context::FromSnapshot to mirror templates.
      
      R=jochen@chromium.org
      BUG=chromium:617892
      
      Review-Url: https://codereview.chromium.org/2100073002
      Cr-Commit-Position: refs/heads/master@{#37334}
      872c461b
    • ahaas's avatar
      Reland [heap] Avoid the use of cells to point from code to new-space objects. · 5e058540
      ahaas authored
      The reason for reverting is: This breaks gc-stress bot:
      https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot
      
      Abortion of compaction could cause duplicate entries in the typed-old-to-new remembered set. These duplicates could cause a DCHECK to trigger which checks that slots recorded in the remembered set never point to to-space. This reland-CL allows duplicates in the remembered set by removing the DCHECK, and additionally clears entries in the remembered set if objects are moved.
      
      Original issue's description:
      
      Cells were needed originally because there was no typed remembered set to
      record direct pointers from code space to new space. A previous
      CL (https://codereview.chromium.org/2003553002/) already introduced
      the remembered set, this CL uses it.
      
      This CL
      * stores direct pointers in code objects, even if the target is in new space,
      * records the slot of the pointer in typed-old-to-new remembered set,
      * adds a list which stores weak code-to-new-space references,
      * adds a test to test-heap.cc for weak code-to-new-space references,
      * removes prints in tail-call-megatest.js
      
      Review-Url: https://codereview.chromium.org/2097023002
      Cr-Commit-Position: refs/heads/master@{#37325}
      5e058540
  23. 23 Jun, 2016 2 commits
    • vogelheim's avatar
      Revert of Reland [heap] Avoid the use of cells to point from code to new-space... · 25d59e9d
      vogelheim authored
      Revert of Reland [heap] Avoid the use of cells to point from code to new-space objects. (patchset #3 id:40001 of https://codereview.chromium.org/2091733002/ )
      
      Reason for revert:
      This breaks gc-stress bot: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot
      
      #
      # Fatal error in ../../src/heap/mark-compact.cc, line 3715
      # Check failed: Page::FromAddress(reinterpret_cast<HeapObject*>(*slot)->address()) ->IsFlagSet(Page::PAGE_NEW_NEW_PROMOTION).
      #
      
      I can reproduce locally, and local revert also fixes it -> revert.
      
      Reproduce with:
       out/Debug/d8 --test --random-seed=2140216864 --nohard-abort --nodead-code-elimination --nofold-constants --enable-slow-asserts --debug-code --verify-heap --allow-natives-syntax --harmony-tailcalls test/mjsunit/mjsunit.js  test/mjsunit/es6/tail-call-megatest-shard2.js --gc-interval=500 --stress-compaction --concurrent-recompilation-queue-length=64 --concurrent-recompilation-delay=500 --concurrent-recompilation
      
      (Maybe run in loop; it's flaky when broken; but passes reliably w/ revert.)
      
      Original issue's description:
      > Reland [heap] Avoid the use of cells to point from code to new-space objects.
      >
      > The reason for reverting was: [Sheriff] Breaks arm debug:
      > https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/1038.
      >
      > The problem was the dereferencing of handles for smi checks. It turned out
      > that these smi checks can be removed anyways, both on arm and on mips.
      >
      > Additionally some rebasing was necessary.
      >
      > Original issue's description:
      >
      > Cells were needed originally because there was no typed remembered set to
      > record direct pointers from code space to new space. A previous
      > CL (https://codereview.chromium.org/2003553002/) already introduced
      > the remembered set, this CL uses it.
      >
      > This CL
      > * stores direct pointers in code objects, even if the target is in new space,
      > * records the slot of the pointer in typed-old-to-new remembered set,
      > * adds a list which stores weak code-to-new-space references,
      > * adds a test to test-heap.cc for weak code-to-new-space references,
      > * removes prints in tail-call-megatest.js
      >
      > R=mlippautz@chromium.org
      >
      > Committed: https://crrev.com/5508e16592522658587da71ba6743c8e832fe4d1
      > Cr-Commit-Position: refs/heads/master@{#37217}
      
      TBR=mlippautz@chromium.org,ahaas@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2090983002
      Cr-Commit-Position: refs/heads/master@{#37221}
      25d59e9d
    • ahaas's avatar
      Reland [heap] Avoid the use of cells to point from code to new-space objects. · 5508e165
      ahaas authored
      The reason for reverting was: [Sheriff] Breaks arm debug:
      https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/1038.
      
      The problem was the dereferencing of handles for smi checks. It turned out
      that these smi checks can be removed anyways, both on arm and on mips.
      
      Additionally some rebasing was necessary.
      
      Original issue's description:
      
      Cells were needed originally because there was no typed remembered set to
      record direct pointers from code space to new space. A previous
      CL (https://codereview.chromium.org/2003553002/) already introduced
      the remembered set, this CL uses it.
      
      This CL
      * stores direct pointers in code objects, even if the target is in new space,
      * records the slot of the pointer in typed-old-to-new remembered set,
      * adds a list which stores weak code-to-new-space references,
      * adds a test to test-heap.cc for weak code-to-new-space references,
      * removes prints in tail-call-megatest.js
      
      R=mlippautz@chromium.org
      
      Review-Url: https://codereview.chromium.org/2091733002
      Cr-Commit-Position: refs/heads/master@{#37217}
      5508e165
  24. 21 Jun, 2016 3 commits
  25. 20 Jun, 2016 1 commit
  26. 17 Jun, 2016 1 commit
    • bmeurer's avatar
      [builtins] Introduce proper Float64Cos and Float64Sin. · c781e831
      bmeurer authored
      Import base::ieee754::cos() and base::ieee754::sin() from fdlibm and
      introduce Float64Cos and Float64Sin TurboFan operator based on that,
      similar to what we do for Float64Log. Rewrite Math.cos() and Math.sin()
      as TurboFan builtins and use those operators to also inline Math.cos()
      and Math.sin() into optimized TurboFan functions.
      
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      R=mvstanton@chromium.org
      BUG=v8:5086,v8:5118
      
      Review-Url: https://codereview.chromium.org/2073123002
      Cr-Commit-Position: refs/heads/master@{#37072}
      c781e831
  27. 15 Jun, 2016 1 commit
  28. 10 Jun, 2016 1 commit