1. 13 Oct, 2017 1 commit
  2. 28 Sep, 2017 1 commit
    • Peter Marshall's avatar
      [cleanup] Remove List. · 690d52af
      Peter Marshall authored
      ZoneList still used List as a base class, so this CL merges the two
      classes together. We also remove unused functions in List and ZoneList.
      
      We keep the inline header but move it to src/zone/zone-list-inl.h. The
      includes that use this header are still quite tangled, but we can fix
      that later.
      
      Bug: v8:6333
      Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: Ia809813834b2328ff616623f8a843812a1eb42a7
      Reviewed-on: https://chromium-review.googlesource.com/681658
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48200}
      690d52af
  3. 18 Aug, 2017 1 commit
    • Benedikt Meurer's avatar
      [turbofan] Introduce a new MapGuard operator. · af4f1520
      Benedikt Meurer authored
      The MapGuard node sits in the effect chain as a hint for other
      optimization passes that a certain value has a certain (set of)
      map(s) guarded by checks on the control chain. This is useful
      to learn from explicit control flow inserted for polymorphic
      property accesses, and then used as part of the polymorphic
      inlining.
      
      This change improves the score on the Octane/DeltaBlue benchmark
      by around 7-8% and the score on the Octane/Richards benchmark by
      like 3% on average.
      
      Bug: v8:5267
      Change-Id: Id0b0b2c72e6a9342d5750a0d62cf6be6fb8c5916
      Also-By: jarin@chromium.org
      Reviewed-on: https://chromium-review.googlesource.com/620586
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47417}
      af4f1520
  4. 02 Aug, 2017 1 commit
  5. 01 Aug, 2017 1 commit
    • Bill Budge's avatar
      Reland "[Memory] Add an OnCriticalMemoryPressure method to V8::Platform." · f8db3e8f
      Bill Budge authored
      This is a reland of 3f90d9f9
      Original change's description:
      > [Memory] Add an OnCriticalMemoryPressure method to V8::Platform.
      > 
      > Adds virtual V8::Platform::OnCriticalMemoryPressure method, default
      > implementation does nothing.
      > 
      > Calls this method on first allocation failures in NewArray, Malloced,
      > and zone AccountingAllocator and adds retry logic.
      > 
      > Adds utility functions for allocating base::VirtualMemory to functions
      > in allocation.h, which call this method and add retry logic.
      > 
      > Calls these utility functions in heap CodeRange, Spaces, StoreBuffer
      > and SequentialMarkingDeque.
      > 
      > Bug: v8:6635
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I38afd394f3be556aca037d16675e9884658158cb
      > Reviewed-on: https://chromium-review.googlesource.com/583543
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46988}
      
      Bug: v8:6635
      Change-Id: I0d70c5796f407f0ed42cfddf581d26f533f9bea8
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/593090Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47027}
      f8db3e8f
  6. 31 Jul, 2017 1 commit
  7. 29 Jul, 2017 2 commits
    • Georg Neis's avatar
      Revert "[Memory] Add an OnCriticalMemoryPressure method to V8::Platform." · 53db0584
      Georg Neis authored
      This reverts commit 3f90d9f9.
      
      Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/16510
      
      Original change's description:
      > [Memory] Add an OnCriticalMemoryPressure method to V8::Platform.
      > 
      > Adds virtual V8::Platform::OnCriticalMemoryPressure method, default
      > implementation does nothing.
      > 
      > Calls this method on first allocation failures in NewArray, Malloced,
      > and zone AccountingAllocator and adds retry logic.
      > 
      > Adds utility functions for allocating base::VirtualMemory to functions
      > in allocation.h, which call this method and add retry logic.
      > 
      > Calls these utility functions in heap CodeRange, Spaces, StoreBuffer
      > and SequentialMarkingDeque.
      > 
      > Bug: v8:6635
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I38afd394f3be556aca037d16675e9884658158cb
      > Reviewed-on: https://chromium-review.googlesource.com/583543
      > Commit-Queue: Bill Budge <bbudge@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46988}
      
      TBR=bbudge@chromium.org,ulan@chromium.org,mlippautz@chromium.org
      
      Change-Id: I79afea5982e62db1462cc5a5585a226f0ddbe752
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6635
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/592887Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46989}
      53db0584
    • Bill Budge's avatar
      [Memory] Add an OnCriticalMemoryPressure method to V8::Platform. · 3f90d9f9
      Bill Budge authored
      Adds virtual V8::Platform::OnCriticalMemoryPressure method, default
      implementation does nothing.
      
      Calls this method on first allocation failures in NewArray, Malloced,
      and zone AccountingAllocator and adds retry logic.
      
      Adds utility functions for allocating base::VirtualMemory to functions
      in allocation.h, which call this method and add retry logic.
      
      Calls these utility functions in heap CodeRange, Spaces, StoreBuffer
      and SequentialMarkingDeque.
      
      Bug: v8:6635
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I38afd394f3be556aca037d16675e9884658158cb
      Reviewed-on: https://chromium-review.googlesource.com/583543
      Commit-Queue: Bill Budge <bbudge@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46988}
      3f90d9f9
  8. 28 Jul, 2017 4 commits
  9. 14 Jul, 2017 1 commit
  10. 28 Jun, 2017 1 commit
  11. 30 May, 2017 1 commit
  12. 23 May, 2017 1 commit
  13. 12 Apr, 2017 1 commit
  14. 27 Mar, 2017 1 commit
  15. 08 Mar, 2017 1 commit
  16. 21 Feb, 2017 1 commit
  17. 10 Feb, 2017 1 commit
    • rmcilroy's avatar
      [Compiler] Enable use of seperate zones for parsing and compiling. · 1fc93f2e
      rmcilroy authored
      In order to allow parallel compilation of eager inner functions, we need to
      seperate the zone used for parsing (which will be shared between all the
      parallel compile jobs) and the zone used for compilation. This CL changes
      CompilationInfo to require a zone (which can be different from the zone in
      ParseInfo). We then seal the ParseInfo zone after parsing and analysis is done
      to prevent any further allocation in that zone, so that it can be shared
      (read-only) with the parallel compile jobs.
      
      BUG=v8:5203
      
      Review-Url: https://codereview.chromium.org/2645403002
      Cr-Commit-Position: refs/heads/master@{#43089}
      1fc93f2e
  18. 06 Feb, 2017 1 commit
  19. 23 Jan, 2017 1 commit
    • clemensh's avatar
      Enable emplace_back for zone containers · 14f470ca
      clemensh authored
      As required by C++11, this CL changes the zone allocator to be able to
      construct and destroy arbitrary types, and accept arbitrary arguments
      for construct, passing them via perfect forwarding.
      I also change some push_back to emplace_back. Some of those did not
      compile before.
      
      R=ishell@chromium.org, titzer@chromium.org
      
      Review-Url: https://codereview.chromium.org/2646873004
      Cr-Commit-Position: refs/heads/master@{#42597}
      14f470ca
  20. 11 Jan, 2017 1 commit
    • rmcilroy's avatar
      [compiler] Collect eager inner functions for compilation during renumbering. · a3052cfe
      rmcilroy authored
      This CL modifies the ast-numbering phase to collect function literals which
      should be compiled eagerly. This is then used to eagerly compile the inner
      functions before compiling the outer function. This will be used to queue
      compilation jobs on the CompilerDispatcher in a later CL.
      
      This CL moves the compilation of eager inner functions out of the
      GetSharedFunctionInfo function and instead compiles them explicitly. This
      simplifies GetSharedFunctionInfo and also means there is no need to pass a
      LazyCompilationMode to the function, so this concept has been removed.
      
      BUG=v8:5203,v8:5215
      
      Review-Url: https://codereview.chromium.org/2618553004
      Cr-Commit-Position: refs/heads/master@{#42221}
      a3052cfe
  21. 02 Jan, 2017 1 commit
  22. 30 Nov, 2016 1 commit
    • clemensh's avatar
      [wasm] Remove raw byte pointers from WasmModule · 6572b562
      clemensh authored
      These byte pointers (module_start and module_end) were only valid
      during decoding. During instantiation or execution, they can get
      invalidated by garbage collection.
      This CL removes them from the WasmModule struct, and introduces a new
      ModuleStorage struct as interface to the wasm wire bytes.
      Since the storage is often needed together with the ModuleEnv, a new
      ModuleStorageEnv struct holds both a ModuleEnv and a ModuleStorage.
      The pointers in the ModuleStorage should never escape the live range of
      this struct, as they might point into a SeqOneByteString or ArrayBuffer.
      Therefore, the WasmInterpreter needs to create its own copy of the
      whole module.
      Runtime functions that previously used the raw pointers in WasmModule
      (leading to memory errors) now have to use the SeqOneByteString in the
      WasmCompiledModule.
      
      R=titzer@chromium.org
      BUG=chromium:669518
      
      Review-Url: https://codereview.chromium.org/2540133002
      Cr-Commit-Position: refs/heads/master@{#41388}
      6572b562
  23. 21 Nov, 2016 1 commit
  24. 15 Nov, 2016 1 commit
  25. 03 Nov, 2016 1 commit
  26. 02 Nov, 2016 1 commit
  27. 26 Oct, 2016 2 commits
    • heimbuef's avatar
      New zone-backed list datastructure to replace ZoneList · 610c0d75
      heimbuef authored
      Since ZoneLists are essentially non-standard ZoneVectors and have a bad
      growing behaviour (ZoneList-allocations make up ~50% of website parse
      zone memory) we should stop using them. The zone-containers are merely
      a clean-up, with none of them actually better suited to be used with
      zones. This new datastructure allows most operations of a LinkedList (
      except pop_first and insertAt/removeAt) but uses about the same memory
      as a well-initialized ZoneVector/ZoneList (<3% overhead with reasonably
      large lists). It also never attempts to free memory again (which would
      not work in zones anyway).
      
      The ZoneChunkList is essentially a doubly-linked-list of arrays of
      variable size.
      
      Some test-results where I tried storing 16k pointers in different list
      types (lists themselves also zone-allocated):
      
      List type                       Zone memory used   Time taken
      -----------------------------------------------------------------------
      Zone array (for comparison)     131072 B
      
      Ideally initialized ZoneList    131088 B           0.062ms
      
      ChunkZoneList                   134744 B           0.052ms <--new thing
      
      ZoneDeque                       141744 B
      
      ZoneLinkedList                  393264 B
      
      Initially empty ZoneList        524168 B           0.171ms <--right now
      
      ChunkZoneList only push_front   524320 B
      
      Review-Url: https://codereview.chromium.org/2449383002
      Cr-Commit-Position: refs/heads/master@{#40602}
      610c0d75
    • bbudge's avatar
      [Turbofan] Add concept of FP register aliasing on ARM 32. · 09ab8e6a
      bbudge authored
      - Modifies RegisterConfiguration to specify complex aliasing on ARM 32.
      - Modifies RegisterAllocator to consider aliasing.
      - Modifies ParallelMove::PrepareInsertAfter to handle aliasing.
      - Modifies GapResolver to split wider register moves when interference
      with smaller moves is detected.
      - Modifies MoveOptimizer to handle aliasing.
      - Adds ARM 32 macro-assembler pseudo move instructions to handle cases where
        split moves don't correspond to actual s-registers.
      - Modifies CodeGenerator::AssembleMove and AssembleSwap to handle moves of
        different widths, and moves involving pseudo-s-registers.
      - Adds unit tests for FP operand interference checking and PrepareInsertAfter.
      - Adds more tests of FP for the move optimizer and register allocator.
      
      LOG=N
      BUG=v8:4124
      
      Review-Url: https://codereview.chromium.org/2410673002
      Cr-Commit-Position: refs/heads/master@{#40597}
      09ab8e6a
  28. 20 Oct, 2016 1 commit
  29. 17 Oct, 2016 1 commit
  30. 11 Oct, 2016 2 commits
  31. 10 Oct, 2016 2 commits
  32. 07 Oct, 2016 2 commits