1. 16 Feb, 2016 1 commit
  2. 10 Feb, 2016 2 commits
    • rmcilroy's avatar
      [Interpreter] Make InterpreterAssembler a subclass of CodeStubAssembler. · d1c28849
      rmcilroy authored
      Moves InterpreterAssembler out of the compiler directory and into the
      interpreter directory. Makes InterpreterAssembler as subclass of
      CodeStubAssembler.
      
      As part of this change, the special bytecode dispatch linkage type
      is removed and instead we use a InterfaceDispatchDescriptor and
      a normal CodeStub linkage type.
      
      Removes a bunch of duplicated logic in InterpreterAssembler and
      instead uses the CodeStubAssembler logic. Refactors Interpreter
      with these changes.
      
      Modifies CodeStubAssembler to add the extra operations required
      by the Interpreter (extra call types, raw memory access and some extra
      binary ops). Also adds the ability for subclasses to add extra
      prologue and epilogue operations around calls, which is required
      for the Interpreter.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1673333004
      
      Cr-Commit-Position: refs/heads/master@{#33873}
      d1c28849
    • yangguo's avatar
      [json parser] add position to error message. · 35b6ca25
      yangguo authored
      R=jochen@chromium.org, verwaest@chromium.org
      BUG=chromium:585724
      LOG=N
      
      Review URL: https://codereview.chromium.org/1681513002
      
      Cr-Commit-Position: refs/heads/master@{#33864}
      35b6ca25
  3. 08 Feb, 2016 2 commits
    • bmeurer's avatar
      [turbofan] Introduce JSCreateLowering for optimizing JSCreate nodes. · 07e9921f
      bmeurer authored
      This moves the JSCreate related functionality from JSTypedLowering into
      a dedicated JSCreateLowering reducer. This is in preparation of landing
      the support for optimized literals in TurboFan, which would blow up
      JSTypedLowering quite seriously otherwise.
      
      R=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/1678833002
      
      Cr-Commit-Position: refs/heads/master@{#33813}
      07e9921f
    • ulan's avatar
      New page local store buffer. · bb883395
      ulan authored
      This replaces the global remembered set with per-page remembered sets.
      
      Each page in the old space, map space, and large object space keeps track of
      the set of slots in the page pointing to the new space.
      
      The data structure for storing slot sets is a two-level bitmap, which allows
      us to remove the store buffer overflow and SCAN_ON_SCAVENGE logic.
      
      Design doc: https://goo.gl/sMKCf7
      
      BUG=chromium:578883
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1608583002
      
      Cr-Commit-Position: refs/heads/master@{#33806}
      bb883395
  4. 04 Feb, 2016 2 commits
  5. 02 Feb, 2016 2 commits
    • jochen's avatar
      Add json fuzzer · 52f6c854
      jochen authored
      BUG=chromium:577261
      R=machenbach@chromium.org,yangguo@chromium.org
      LOG=n
      
      Review URL: https://codereview.chromium.org/1652963002
      
      Cr-Commit-Position: refs/heads/master@{#33673}
      52f6c854
    • jarin's avatar
      Remove the template magic from types.(h|cc), remove types-inl.h. · ef35f11c
      jarin authored
      This CL removes the Config templatization from the types. It is not
      necessary anymore, after the HeapTypes have been removed.
      
      The CL also changes the type hierarchy - the specific type kinds are
      not inner classes of the Type class and they do not inherit from Type.
      This is partly because it seems impossible to make this work without
      templates. Instead, a new TypeBase class is introduced and all the
      structural (i.e., non-bitset) types inherit from it.
      
      The bitset type still requires the bit-munging hack and some nasty
      reinterpret-casts to pretend bitsets are of type Type*. Additionally,
      there is now the same hack for TypeBase - all pointers to the sub-types
      of TypeBase are reinterpret-casted to Type*. This is to keep the type
      constructors in inline method definitions (although it is unclear how
      much that actually buys us).
      
      In future, we would like to move to a model where we encapsulate Type*
      into a class (or possibly use Type where we used to use Type*). This
      would loosen the coupling between bitset size and pointer size, and
      eventually we would be able to have more bits.
      
      TBR=bradnelson@chromium.org
      
      Review URL: https://codereview.chromium.org/1655833002
      
      Cr-Commit-Position: refs/heads/master@{#33656}
      ef35f11c
  6. 01 Feb, 2016 1 commit
  7. 27 Jan, 2016 2 commits
    • mlippautz's avatar
      Reland of "[heap] Parallel newspace evacuation, semispace copy, and compaction \o/" · 004ce08d
      mlippautz authored
      This reverts commit 85ba94f2.
      
      All parallelism can be turned off using --predictable, or --noparallel-compaction.
      
      This patch completely parallelizes
       - semispace copy: from space -> to space (within newspace)
       - newspace evacuation: newspace -> oldspace
       - oldspace compaction: oldspace -> oldspace
      
      Previously newspace has been handled sequentially (semispace copy, newspace
      evacuation) before compacting oldspace in parallel. However, on a high level
      there are no dependencies between those two actions, hence we parallelize them
      altogether. We base the number of evacuation tasks on the overall set of
      to-be-processed pages (newspace + oldspace compaction pages).
      
      Some low-level details:
       - The hard cap on number of tasks has been lifted
       - We cache store buffer entries locally before merging them back into the global
         StoreBuffer in a finalization phase.
       - We cache AllocationSite operations locally before merging them back into the
         global pretenuring storage in a finalization phase.
       - AllocationSite might be compacted while they would be needed for newspace
         evacuation. To mitigate any problems we defer checking allocation sites for
         newspace till merging locally buffered data.
      
      CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel
      BUG=chromium:524425
      LOG=N
      R=hpayer@chromium.org, ulan@chromium.org
      
      Review URL: https://codereview.chromium.org/1640563004
      
      Cr-Commit-Position: refs/heads/master@{#33552}
      004ce08d
    • machenbach's avatar
      Revert of [heap] Parallel newspace evacuation, semispace copy, and compaction... · 85ba94f2
      machenbach authored
      Revert of [heap] Parallel newspace evacuation, semispace copy, and compaction \o/ (patchset #16 id:620001 of https://codereview.chromium.org/1577853007/ )
      
      Reason for revert:
      [Sheriff] Leads to crashes on all webrtc chromium testers, e.g.:
      https://build.chromium.org/p/chromium.webrtc/builders/Mac%20Tester/builds/49664
      
      Original issue's description:
      > [heap] Parallel newspace evacuation, semispace copy, and compaction \o/
      >
      > All parallelism can be turned off using --predictable, or --noparallel-compaction.
      >
      > This patch completely parallelizes
      >  - semispace copy: from space -> to space (within newspace)
      >  - newspace evacuation: newspace -> oldspace
      >  - oldspace compaction: oldspace -> oldspace
      >
      > Previously newspace has been handled sequentially (semispace copy, newspace
      > evacuation) before compacting oldspace in parallel. However, on a high level
      > there are no dependencies between those two actions, hence we parallelize them
      > altogether. We base the number of evacuation tasks on the overall set of
      > to-be-processed pages (newspace + oldspace compaction pages).
      >
      > Some low-level details:
      >  - The hard cap on number of tasks has been lifted
      >  - We cache store buffer entries locally before merging them back into the global
      >    StoreBuffer in a finalization phase.
      >  - We cache AllocationSite operations locally before merging them back into the
      >    global pretenuring storage in a finalization phase.
      >  - AllocationSite might be compacted while they would be needed for newspace
      >    evacuation. To mitigate any problems we defer checking allocation sites for
      >    newspace till merging locally buffered data.
      >
      > CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel
      > BUG=chromium:524425
      > LOG=N
      > R=hpayer@chromium.org, ulan@chromium.org
      >
      > Committed: https://crrev.com/8f0fd8c0370ae8c5aab56491b879d7e30c329062
      > Cr-Commit-Position: refs/heads/master@{#33523}
      
      TBR=hpayer@chromium.org,ulan@chromium.org,mlippautz@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:524425
      
      Review URL: https://codereview.chromium.org/1643473002
      
      Cr-Commit-Position: refs/heads/master@{#33539}
      85ba94f2
  8. 26 Jan, 2016 6 commits
    • pkotwicz's avatar
      [GN] Remove CAN_USE_VFP_INSTRUCTIONS define to match GYP · f53d530b
      pkotwicz authored
      CAN_USE_VFP_INSTRUCTIONS was removed in GYP in
      https://codereview.chromium.org/340373002
      
      BUG=None
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1635123003
      
      Cr-Commit-Position: refs/heads/master@{#33526}
      f53d530b
    • mlippautz's avatar
      [heap] Parallel newspace evacuation, semispace copy, and compaction \o/ · 8f0fd8c0
      mlippautz authored
      All parallelism can be turned off using --predictable, or --noparallel-compaction.
      
      This patch completely parallelizes
       - semispace copy: from space -> to space (within newspace)
       - newspace evacuation: newspace -> oldspace
       - oldspace compaction: oldspace -> oldspace
      
      Previously newspace has been handled sequentially (semispace copy, newspace
      evacuation) before compacting oldspace in parallel. However, on a high level
      there are no dependencies between those two actions, hence we parallelize them
      altogether. We base the number of evacuation tasks on the overall set of
      to-be-processed pages (newspace + oldspace compaction pages).
      
      Some low-level details:
       - The hard cap on number of tasks has been lifted
       - We cache store buffer entries locally before merging them back into the global
         StoreBuffer in a finalization phase.
       - We cache AllocationSite operations locally before merging them back into the
         global pretenuring storage in a finalization phase.
       - AllocationSite might be compacted while they would be needed for newspace
         evacuation. To mitigate any problems we defer checking allocation sites for
         newspace till merging locally buffered data.
      
      CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel
      BUG=chromium:524425
      LOG=N
      R=hpayer@chromium.org, ulan@chromium.org
      
      Review URL: https://codereview.chromium.org/1577853007
      
      Cr-Commit-Position: refs/heads/master@{#33523}
      8f0fd8c0
    • joransiu's avatar
      S390: Add platform specific atomic ops impl · 4cbd63c9
      joransiu authored
      Add S390 specific atomic ops implementation + associated build
      toolchain updates.
      
      R=danno@chromium.org,svenpanne@chromium.org,michael_dawson@ca.ibm.com,jyan@ca.ibm.com,mtbrandyberry@ca.ibm.com
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1601223003
      
      Cr-Commit-Position: refs/heads/master@{#33519}
      4cbd63c9
    • oth's avatar
      [interpreter] Wide register support. · 19df7a20
      oth authored
      This increases the size of register operands to be 16-bit.
      
      Not all bytecodes have wide register variants, so when they are
      needed a register translator will copy them into a small area
      reserved at the top of the 8-bit register range and these registers
      are supplied as arguments to the bytecode with 8-bit operands.
      
      This is non-intrusive for typical bytecode where the number of
      registers is less than 120. For bytecodes with wide register
      operands (above the window) their index needs to be translated
      to avoid the reserved translation window.
      
      Enables splay.js to run in Octane and a handful of mjsunit tests.
      
      BUG=v8:4280,v8:4675
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1613163002
      
      Cr-Commit-Position: refs/heads/master@{#33516}
      19df7a20
    • jochen's avatar
      Add parser_fuzzer to BUILD.gn · 4e234f27
      jochen authored
      BUG=chromium:577261
      R=machenbach@chromium.org
      LOG=n
      
      Review URL: https://codereview.chromium.org/1635963003
      
      Cr-Commit-Position: refs/heads/master@{#33511}
      4e234f27
    • mlippautz's avatar
      [heap] Move symbols and internalized strings to global header · 51879692
      mlippautz authored
      BUG=
      R=hpayer@chromium.org
      
      Review URL: https://codereview.chromium.org/1634513002
      
      Cr-Commit-Position: refs/heads/master@{#33506}
      51879692
  9. 22 Jan, 2016 1 commit
  10. 21 Jan, 2016 2 commits
  11. 20 Jan, 2016 1 commit
    • mstarzinger's avatar
      [interpreter] Implement exception handler table building. · 82716f1c
      mstarzinger authored
      This implements a first version of exception handler table construction
      within the interpreter. Note that the local control flow for try-catch
      and try-finally statements is still off, and also stack unwinding does
      not yet respect interpreter frames. But generated handler tables should
      be populated correctly already.
      
      R=oth@chromium.org
      BUG=v8:4674
      LOG=n
      
      Review URL: https://codereview.chromium.org/1607433005
      
      Cr-Commit-Position: refs/heads/master@{#33400}
      82716f1c
  12. 15 Jan, 2016 1 commit
  13. 14 Jan, 2016 3 commits
    • joransiu's avatar
      S390: Makefile + Build Toolchain Updates · 1091c2f0
      joransiu authored
      This is the first of several commits to contribute Linux on z Systems
      (s390/s390x) port of V8.  We will be breaking up the changes into several
      (hopefully) logical commits.
      
      This commit contains the changes to V8 Makefile and build toolchains to
      introduce S390 macros and compiler options.  Just for awareness for reviewers
      is that s390 is 31-bit (not 32!) big-endian platform on Linux on z.  (MSB of address
      is used to distinguish between 24-bit vs 31-bit addressing!)  s390x is
      64-bit Linux on z.  Names follow the general linux convention on the platform.
      
      A quick roadmap on upcoming commits:
      - Add \#include of S390 header files in common files
      - S390 related tests + tooling changes
      - printf macro for printing size_t values.
      - S390 platform-specific code generation code (bulk of changes!)
      
      R=danno@chromium.org,svenpanne@chromium.org,michael_dawson@ca.ibm.com,jyan@ca.ibm.com,mtbrandyberry@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1585813002
      
      Cr-Commit-Position: refs/heads/master@{#33304}
      1091c2f0
    • rmcilroy's avatar
      [Interpreter] Ensure we always have an outer register allocation scope. · ef21fb2d
      rmcilroy authored
      Split RegisterAllocationScope out of ExpressionResult and allocate one
      for each statement. This ensures that we always have an outer register
      allocation scope for statement code (used in CountOperation and
      RegisterExecutionResult). Also refactored the register allocator code to
      move it to it's own file and rename from TemporaryRegisterScope to
      BytecodeRegisterAllocator.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1587033002
      
      Cr-Commit-Position: refs/heads/master@{#33296}
      ef21fb2d
    • rossberg's avatar
      Forgot adding new file to build files · 2d36bdff
      rossberg authored
      R=hablich@chromium.org
      BUG=v8:4664
      LOG=N
      
      Review URL: https://codereview.chromium.org/1581423003
      
      Cr-Commit-Position: refs/heads/master@{#33290}
      2d36bdff
  14. 12 Jan, 2016 3 commits
  15. 11 Jan, 2016 1 commit
  16. 08 Jan, 2016 1 commit
  17. 05 Jan, 2016 2 commits
  18. 04 Jan, 2016 1 commit
    • littledan's avatar
      Add a --harmony-species flag, defining @@species on constructors · fb5cbc2e
      littledan authored
      This patch adds the basis for subclassing TypedArrays, Arrays and
      ArrayBuffers through the @@species hook, added in ES2015. This is
      the first patch in a series. This patch simply defines the
      @@species Symbol and installs it on the appropriate constructors.
      The behavior is guarded behind the --harmony-species flag.
      
      R=cbruni
      BUG=v8:4093
      LOG=Y
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      TBR=hpayer@chromium.org
      
      Review URL: https://codereview.chromium.org/1558543002
      
      Cr-Commit-Position: refs/heads/master@{#33095}
      fb5cbc2e
  19. 28 Dec, 2015 1 commit
  20. 17 Dec, 2015 3 commits
  21. 16 Dec, 2015 1 commit
  22. 15 Dec, 2015 1 commit