1. 13 Jun, 2017 1 commit
  2. 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
  3. 26 Jan, 2016 1 commit
    • 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
  4. 21 Apr, 2015 1 commit
  5. 03 Jun, 2014 1 commit
  6. 29 Apr, 2014 1 commit
  7. 03 May, 2011 1 commit
  8. 28 Mar, 2011 1 commit
  9. 16 Sep, 2010 1 commit
  10. 17 May, 2010 1 commit
    • mark@chromium.org's avatar
      Allow build-time selection between ia32 and x86_64 in the GYP/Xcode Mac · e9b5d785
      mark@chromium.org authored
      Chromium build.
      
      v8.gyp no longer sets any V8_TARGET_ARCH_* macro on the Mac. Instead, the
      proper V8_TARGET_ARCH_* macro will be set by src/globals.h in the same way as
      the V8_HOST_ARCH_* macro when it detects that no target macro is currently
      defined. The Mac build will attempt to compile all ia32 and x86_64 .cc files.
      #ifdef guards in each of these target-specific source files prevent their
      compilation when the associated target is not selected. For completeness,
      these #ifdef guards are also provided for the arm and mips .cc files.
      
      BUG=706
      TEST=x86_64 Mac GYP/Xcode-based Chromium build (still depends on other changes)
      Review URL: http://codereview.chromium.org/2133003
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      e9b5d785
  11. 23 Mar, 2010 1 commit
  12. 04 Feb, 2010 1 commit
  13. 09 Dec, 2009 1 commit
  14. 04 Nov, 2009 1 commit
  15. 29 Oct, 2009 1 commit
  16. 27 Oct, 2009 1 commit
  17. 26 Oct, 2009 2 commits
  18. 25 May, 2009 1 commit
  19. 23 Apr, 2009 1 commit
  20. 13 Apr, 2009 1 commit
  21. 25 Feb, 2009 1 commit
  22. 12 Sep, 2008 1 commit
    • iposva@chromium.org's avatar
      Adapt to new calling convention on ARM: · c5ee9618
      iposva@chromium.org authored
      - Simplified frame entry and frame exit code.
      - Added ArgumentsAdaptorTrampoline and check for matching argument counts in the InvokePrologue.
      - Removed definition and uses of USE_OLD_CALLING_CONVENTIONS.
      - Changed MacroAssembler::InvokeBuiltin to match ia32 version.
      - Start introducing convenience instructions in the ARM assembler as needed. These instructions take all Register parameters to avoid extra typing of "Operand(reg)".
      
      
      To keep the architectures in sync these changes have been made to the ia32 files:
      - Changed MacroAssembler::EnterFrame(StackFrame::Type type) to MacroAssembler::EnterInternalFrame().
      
      
      These parts are still missing:
      - unimplemented: Builtins::Generate_FunctionApply - large limit
      - unimplemented: Builtins::Generate_ArgumentsAdaptorTrampoline - non-function call
      - The files have not been lint'd yet.
      
      
      Review URL: http://codereview.chromium.org/1930
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      c5ee9618
  23. 09 Sep, 2008 1 commit
  24. 30 Jul, 2008 1 commit
    • kasper.lund's avatar
      Changed all text files to have native svn:eol-style. · 7276f14c
      kasper.lund authored
      Added a few samples and support for building them. The samples include a simple shell that can be used to benchmark and test V8.
      
      Changed V8::GetVersion to return the version as a string.
      
      Added source for lazily loaded scripts to snapshots and made serialization non-destructive.
      
      Improved ARM support by fixing the write barrier code to use aligned loads and stores and by removing premature locals optimization that relied on broken support for callee-saved registers (removed).
      
      Refactored the code for marking live objects during garbage collection and the code for allocating objects in paged spaces. Introduced an abstraction for the map word of a heap-allocated object and changed the memory allocator to allocate executable memory only for spaces that may contain code objects.
      
      Moved StringBuilder to utils.h and ScopedLock to platform.h, where they can be used by debugging and logging modules. Added thread-safe message queues for dealing with debugger events.
      
      Fixed the source code reported by toString for certain builtin empty functions and made sure that the prototype property of a function is enumerable.
      
      Improved performance of converting values to condition flags in generated code.
      
      Merged disassembler-{arch} files.
      
      
      git-svn-id: http://v8.googlecode.com/svn/trunk@8 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      7276f14c
  25. 03 Jul, 2008 1 commit