1. 15 Feb, 2019 1 commit
  2. 09 Feb, 2019 1 commit
  3. 26 Dec, 2018 1 commit
  4. 18 Dec, 2018 1 commit
  5. 17 Dec, 2018 1 commit
  6. 25 Nov, 2018 1 commit
  7. 24 Nov, 2018 1 commit
  8. 19 Oct, 2018 1 commit
  9. 11 Oct, 2018 1 commit
  10. 24 Sep, 2018 3 commits
  11. 21 Sep, 2018 2 commits
  12. 20 Sep, 2018 1 commit
  13. 04 Sep, 2018 1 commit
  14. 22 Aug, 2018 1 commit
    • Camillo Bruni's avatar
      Reland "[runtime] Improve for-in performance" · 827e6d12
      Camillo Bruni authored
      This is a reland of 8fa7f9ed
      
      Original change's description:
      > [runtime] Improve for-in performance
      > 
      > - Add fast-path String conversion for Smi (which is the most common case)
      >   This improves for-in by ~10% on non-initialized enum-caches
      > - Don't use the NumberStringCache for large indices to not overflow the cache
      >   during key collection. This improves worst-case performance by ~2.5x
      > - Drop number_to_string_native and number_to_string_runtime counters
      > 
      > Bug: v8:7717
      > Change-Id: Ic1ff385e3374e6a7e7e7bdb9ae75fb8c238105d1
      > Reviewed-on: https://chromium-review.googlesource.com/1167049
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55233}
      
      Bug: v8:7717
      Change-Id: Ie29041b20ca4a06b8e74a4378e7c1118373072ae
      Reviewed-on: https://chromium-review.googlesource.com/1183721
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55316}
      827e6d12
  15. 21 Aug, 2018 1 commit
    • Aseem Garg's avatar
      Revert "[runtime] Improve for-in performance" · a4235f00
      Aseem Garg authored
      This reverts commit 8fa7f9ed.
      
      Reason for revert: Speculating that this breaks GC stress
      
      Original change's description:
      > [runtime] Improve for-in performance
      > 
      > - Add fast-path String conversion for Smi (which is the most common case)
      >   This improves for-in by ~10% on non-initialized enum-caches
      > - Don't use the NumberStringCache for large indices to not overflow the cache
      >   during key collection. This improves worst-case performance by ~2.5x
      > - Drop number_to_string_native and number_to_string_runtime counters
      > 
      > Bug: v8:7717
      > Change-Id: Ic1ff385e3374e6a7e7e7bdb9ae75fb8c238105d1
      > Reviewed-on: https://chromium-review.googlesource.com/1167049
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55233}
      
      TBR=ulan@chromium.org,cbruni@chromium.org,verwaest@chromium.org
      
      Change-Id: I8d0332478afcd7c6a3f8fbf1f044b9aa870b6b13
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7717
      Reviewed-on: https://chromium-review.googlesource.com/1182676Reviewed-by: 's avatarAseem Garg <aseemgarg@chromium.org>
      Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55241}
      a4235f00
  16. 20 Aug, 2018 2 commits
  17. 26 Jun, 2018 5 commits
    • Georg Neis's avatar
      Reland "Reland "Introduce MutableHeapNumber class."" · f1c79e02
      Georg Neis authored
      This is a reland of f0bcbc90.
      A few casts were still wrong.
      
      Original change's description:
      > Reland "Introduce MutableHeapNumber class."
      >
      > This is a reland of 40ac6b18, which
      > was incorrect due to a bad merge.
      >
      > Original change's description:
      > > Introduce MutableHeapNumber class.
      > >
      > > V8 knows heap numbers and mutable heap numbers. They have
      > > difference instance types, but in C++ code we've used the
      > > same class for both (HeapNumber). Confusingly, however,
      > > IsHeapNumber would return false for mutable heap numbers,
      > > while HeapNumber::cast would succeed.
      > >
      > > This CL adds a separate class MutableHeapNumber and
      > > eliminates the confusing behavior.
      > >
      [...]
      > TBR=bmeurer@chromium.org
      > TBR=ulan@chromium.org
      >
      > Change-Id: I3af1014c949821dfac0754a3e48c65ce1bad1ad1
      > Reviewed-on: https://chromium-review.googlesource.com/1114539
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54022}
      
      Change-Id: I19a33da4b6abcd445b528a84d4f56ba1964d337b
      Reviewed-on: https://chromium-review.googlesource.com/1114100
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54027}
      f1c79e02
    • Georg Neis's avatar
      Revert "Reland "Introduce MutableHeapNumber class."" · 722dfb70
      Georg Neis authored
      This reverts commit f0bcbc90.
      
      Reason for revert: Still failing bots.
      
      Original change's description:
      > Reland "Introduce MutableHeapNumber class."
      > 
      > This is a reland of 40ac6b18, which
      > was incorrect due to a bad merge.
      > 
      > Original change's description:
      > > Introduce MutableHeapNumber class.
      > >
      > > V8 knows heap numbers and mutable heap numbers. They have
      > > difference instance types, but in C++ code we've used the
      > > same class for both (HeapNumber). Confusingly, however,
      > > IsHeapNumber would return false for mutable heap numbers,
      > > while HeapNumber::cast would succeed.
      > >
      > > This CL adds a separate class MutableHeapNumber and
      > > eliminates the confusing behavior.
      > >
      > > TBR=bmeurer@chromium.org
      > >
      > > Change-Id: Id894d177c7fe8cc3f451be80c273b50daee91378
      > > Reviewed-on: https://chromium-review.googlesource.com/1113544
      > > Commit-Queue: Georg Neis <neis@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#54012}
      > 
      > TBR=bmeurer@chromium.org
      > TBR=ulanchromium.org
      > 
      > Change-Id: I3af1014c949821dfac0754a3e48c65ce1bad1ad1
      > Reviewed-on: https://chromium-review.googlesource.com/1114539
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54022}
      
      TBR=ulan@chromium.org,jarin@chromium.org,neis@chromium.org,bmeurer@chromium.org
      
      Change-Id: I99c226e95dfb0b913903cc83193f6e51de8c1b47
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/1114099Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54024}
      722dfb70
    • Georg Neis's avatar
      Reland "Introduce MutableHeapNumber class." · f0bcbc90
      Georg Neis authored
      This is a reland of 40ac6b18, which
      was incorrect due to a bad merge.
      
      Original change's description:
      > Introduce MutableHeapNumber class.
      >
      > V8 knows heap numbers and mutable heap numbers. They have
      > difference instance types, but in C++ code we've used the
      > same class for both (HeapNumber). Confusingly, however,
      > IsHeapNumber would return false for mutable heap numbers,
      > while HeapNumber::cast would succeed.
      >
      > This CL adds a separate class MutableHeapNumber and
      > eliminates the confusing behavior.
      >
      > TBR=bmeurer@chromium.org
      >
      > Change-Id: Id894d177c7fe8cc3f451be80c273b50daee91378
      > Reviewed-on: https://chromium-review.googlesource.com/1113544
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54012}
      
      TBR=bmeurer@chromium.org
      TBR=ulanchromium.org
      
      Change-Id: I3af1014c949821dfac0754a3e48c65ce1bad1ad1
      Reviewed-on: https://chromium-review.googlesource.com/1114539Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54022}
      f0bcbc90
    • Yang Guo's avatar
      Revert "Introduce MutableHeapNumber class." · 983456f5
      Yang Guo authored
      This reverts commit 40ac6b18.
      
      Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20debug/21009
      
      Original change's description:
      > Introduce MutableHeapNumber class.
      > 
      > V8 knows heap numbers and mutable heap numbers. They have
      > difference instance types, but in C++ code we've used the
      > same class for both (HeapNumber). Confusingly, however,
      > IsHeapNumber would return false for mutable heap numbers,
      > while HeapNumber::cast would succeed.
      > 
      > This CL adds a separate class MutableHeapNumber and
      > eliminates the confusing behavior.
      > 
      > TBR=bmeurer@chromium.org
      > 
      > Change-Id: Id894d177c7fe8cc3f451be80c273b50daee91378
      > Reviewed-on: https://chromium-review.googlesource.com/1113544
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54012}
      
      TBR=ulan@chromium.org,jarin@chromium.org,neis@chromium.org,bmeurer@chromium.org
      
      Change-Id: I358a822f20b9110def968e69463a753a2a32c68c
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/1114538Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54013}
      983456f5
    • Georg Neis's avatar
      Introduce MutableHeapNumber class. · 40ac6b18
      Georg Neis authored
      V8 knows heap numbers and mutable heap numbers. They have
      difference instance types, but in C++ code we've used the
      same class for both (HeapNumber). Confusingly, however,
      IsHeapNumber would return false for mutable heap numbers,
      while HeapNumber::cast would succeed.
      
      This CL adds a separate class MutableHeapNumber and
      eliminates the confusing behavior.
      
      TBR=bmeurer@chromium.org
      
      Change-Id: Id894d177c7fe8cc3f451be80c273b50daee91378
      Reviewed-on: https://chromium-review.googlesource.com/1113544
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54012}
      40ac6b18
  18. 13 Jun, 2018 1 commit
  19. 09 May, 2018 1 commit
    • Dan Elphick's avatar
      Reland "[heap] Mark RO_SPACE as read-only after deserialization" · 60064133
      Dan Elphick authored
      This is a reland of 40f1aaf3
      
      Put back padding clearing into the SerializeObject method but only when
      the String is not in RO_SPACE. For RO_SPACE strings, if required
      iterate over the space before serialization clearing the strings.
      
      Original change's description:
      > [heap] Mark RO_SPACE as read-only after deserialization
      >
      > Adds MarkAsReadOnly and MarkAsReadWrite to ReadOnlySpace. The latter
      > is only usable with ReadOnlySpace::WritableScope to avoid the space
      > being left writable). MarkAsReadOnly updates the high water mark and
      > makes several previously mutating methods into no-ops.
      >
      > Moves some writes to immutable objects out of the bootstrapper to
      > setup-heap-internal so they don't write to a read-only page.
      >
      > Also avoid writing hashes to strings that already have the value set as
      > that invariably means writing to the "0" and "1" constant strings in
      > RO_SPACE.
      >
      > Before serialization, it makes RO_SPACE writable again so that any
      > padding can be cleared before writing it.
      >
      > Bug: v8:7464
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      > Change-Id: I22edc20dba7dde8943991a8fcaf87244af4490a3
      > Reviewed-on: https://chromium-review.googlesource.com/1014128
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52943}
      
      Bug: v8:7464
      Change-Id: Ia8386c4ff5f5df3207f584caf7a9b1ff1e405f25
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1042145Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53087}
      60064133
  20. 03 May, 2018 2 commits
    • Michael Achenbach's avatar
      Revert "[heap] Mark RO_SPACE as read-only after deserialization" · d14bca61
      Michael Achenbach authored
      This reverts commit 40f1aaf3.
      
      Reason for revert:
      https://luci-milo.appspot.com/buildbot/client.v8/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/21000
      
      Original change's description:
      > [heap] Mark RO_SPACE as read-only after deserialization
      > 
      > Adds MarkAsReadOnly and MarkAsReadWrite to ReadOnlySpace. The latter
      > is only usable with ReadOnlySpace::WritableScope to avoid the space
      > being left writable). MarkAsReadOnly updates the high water mark and
      > makes several previously mutating methods into no-ops.
      > 
      > Moves some writes to immutable objects out of the bootstrapper to
      > setup-heap-internal so they don't write to a read-only page.
      > 
      > Also avoid writing hashes to strings that already have the value set as
      > that invariably means writing to the "0" and "1" constant strings in
      > RO_SPACE.
      > 
      > Before serialization, it makes RO_SPACE writable again so that any
      > padding can be cleared before writing it.
      > 
      > Bug: v8:7464
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      > Change-Id: I22edc20dba7dde8943991a8fcaf87244af4490a3
      > Reviewed-on: https://chromium-review.googlesource.com/1014128
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52943}
      
      TBR=yangguo@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,delphick@chromium.org
      
      Change-Id: Id4770c0fdb21cd9eea2f62a019f44a6bdea8f0a7
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7464
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1041948Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52944}
      d14bca61
    • Dan Elphick's avatar
      [heap] Mark RO_SPACE as read-only after deserialization · 40f1aaf3
      Dan Elphick authored
      Adds MarkAsReadOnly and MarkAsReadWrite to ReadOnlySpace. The latter
      is only usable with ReadOnlySpace::WritableScope to avoid the space
      being left writable). MarkAsReadOnly updates the high water mark and
      makes several previously mutating methods into no-ops.
      
      Moves some writes to immutable objects out of the bootstrapper to
      setup-heap-internal so they don't write to a read-only page.
      
      Also avoid writing hashes to strings that already have the value set as
      that invariably means writing to the "0" and "1" constant strings in
      RO_SPACE.
      
      Before serialization, it makes RO_SPACE writable again so that any
      padding can be cleared before writing it.
      
      Bug: v8:7464
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: I22edc20dba7dde8943991a8fcaf87244af4490a3
      Reviewed-on: https://chromium-review.googlesource.com/1014128
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52943}
      40f1aaf3
  21. 09 Apr, 2018 1 commit
  22. 06 Apr, 2018 2 commits
    • Michael Achenbach's avatar
      Revert "[cleanup] Refactor the Factory" · 503e07c3
      Michael Achenbach authored
      This reverts commit f9a2e24b.
      
      Reason for revert: gc stress failures not all fixed by follow up.
      
      Original change's description:
      > [cleanup] Refactor the Factory
      > 
      > There is no good reason to have the meat of most objects' initialization
      > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      > this CL changes the protocol between Heap and Factory to be AllocateRaw,
      > and all object initialization work after (possibly retried) successful
      > raw allocation happens in the Factory.
      > 
      > This saves about 20KB of binary size on x64.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      > Reviewed-on: https://chromium-review.googlesource.com/959533
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52416}
      
      TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52420}
      503e07c3
    • Jakob Kummerow's avatar
      [cleanup] Refactor the Factory · f9a2e24b
      Jakob Kummerow authored
      There is no good reason to have the meat of most objects' initialization
      logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      this CL changes the protocol between Heap and Factory to be AllocateRaw,
      and all object initialization work after (possibly retried) successful
      raw allocation happens in the Factory.
      
      This saves about 20KB of binary size on x64.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      Reviewed-on: https://chromium-review.googlesource.com/959533
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52416}
      f9a2e24b
  23. 09 Mar, 2018 1 commit
  24. 06 Dec, 2017 1 commit
  25. 27 Oct, 2017 1 commit
  26. 13 Sep, 2017 1 commit
  27. 07 Sep, 2017 1 commit