1. 16 Jan, 2019 1 commit
    • Clemens Hammacher's avatar
      [cleanup] Clean up base::EnumSet · 4064757c
      Clemens Hammacher authored
      After moving to its own header, this CL cleans up some parts of the
      interface. It fixes names and const-declarations of simple accessors,
      and adds a named constructor to make it explicit that an EnumSet should
      be constructed from an integral value.
      Also refactor the use in cctest.h to have less statically declared
      constants. Instead, just create the set of extensions in the individual
      tests.
      
      R=titzer@chromium.org
      
      Bug: v8:8562
      Change-Id: I6178d1aba25afa1d7f54c29ccf81505c165e7cd3
      Reviewed-on: https://chromium-review.googlesource.com/c/1409366
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58862}
      4064757c
  2. 15 Jan, 2019 1 commit
  3. 10 Jan, 2019 1 commit
  4. 09 Jan, 2019 1 commit
  5. 07 Jan, 2019 1 commit
    • Jakob Kummerow's avatar
      [ubsan] Fix errors related to AsmType · 81becb8c
      Jakob Kummerow authored
      The AsmType class uses a design similar to the old Object* model, where
      arbitrary values (including 0) are reinterpret_cast to pointers. This
      yields the following UBSan error, among others:
      
          src/asmjs/asm-parser.cc:2000:51: runtime error: member call on null
          pointer of type 'v8::internal::wasm::AsmType'
      
      This patch does the smallest possible fix by turning the affected methods
      into static functions. Longer-term, we should consider switching the
      overall class design to a "struct wrapping an Address" model like the new
      Object definition, which is a bit non-trivial because some AsmType types
      are ZoneObject subclasses.
      
      Bug: v8:3770
      Change-Id: Ie2a7cdc9eab32c4c469d699212c84b0419480b4f
      Reviewed-on: https://chromium-review.googlesource.com/c/1397663Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58586}
      81becb8c
  6. 03 Jan, 2019 1 commit
  7. 17 Dec, 2018 1 commit
  8. 12 Dec, 2018 1 commit
  9. 28 Nov, 2018 1 commit
  10. 26 Nov, 2018 1 commit
  11. 21 Nov, 2018 1 commit
    • Ross McIlroy's avatar
      [AsmJs] Avoid allocation of WasmModuleObject until instantiation. · ccd8073c
      Ross McIlroy authored
      Moves allocation of the WasmModuleObject for asm.js code out of SyncCompileTranslatedAsmJS
      since that is called when we are compiling the native context independent SharedFunctionInfo
      and the WasmModuleObject requires a native context. Instead save the members required to
      create the object in the AsmWasmData and create it during module instantiation. Note:
      since the Wasm module is an implementation detail for asm_wasm code and isn't exposed,
      this doeesn't have semantic change for asm.js code.
      
      As part of this change, the AsmWasmData is changed from a FixedArray to a dedicated
      struct. Some logic is also moved from module-compiler to wasm-engine to make the
      seperation between Wasm SyncCompile and AsmJS SyncCompile more clear.
      
      BUG=chromium:900535,v8:8395
      
      Change-Id: Ia48469c095b0688f210aa86e7430c9ab4ea4b26b
      Reviewed-on: https://chromium-review.googlesource.com/c/1345509
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57704}
      ccd8073c
  12. 15 Nov, 2018 1 commit
    • Clemens Hammacher's avatar
      [base] Introduce VectorOf helper · 3ad032b7
      Clemens Hammacher authored
      We often need to create a {Vector} view of data owned by a container
      like {std::vector}. The canonical way to do this is this:
      Vector<T>{vec.data(), vec.size()}
      
      This pattern is repeating information which can be deduced
      automatically, like the type T.
      
      This CL introduces a {VectorOf} helper which can construct a {Vector}
      for any container providing a {data()} and {size()} accessor, and uses
      it to replace the pattern above.
      
      R=ishell@chromium.org
      
      Bug: v8:8238
      Change-Id: Ib3a11662acc82cb83f2b4afd07ba88e579d71dba
      Reviewed-on: https://chromium-review.googlesource.com/c/1337584Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57538}
      3ad032b7
  13. 14 Nov, 2018 1 commit
  14. 13 Nov, 2018 1 commit
  15. 30 Oct, 2018 1 commit
  16. 29 Oct, 2018 1 commit
  17. 26 Oct, 2018 1 commit
  18. 15 Oct, 2018 1 commit
  19. 11 Oct, 2018 1 commit
  20. 13 Sep, 2018 1 commit
  21. 21 Aug, 2018 3 commits
    • Toon Verwaest's avatar
      [scanner] Go back to untemplatized scanning with buffering · fcfd995a
      Toon Verwaest authored
      This reverts the following 3 CLs:
      
      Revert "[scanner] Templatize scan functions by encoding"
      Revert "[asm] Remove invalid static cast of character stream"
      Revert "[scanner] Prepare CharacterStreams for specializing scanner and parser by character type"
      
      The original idea behind this work was to avoid copying, converting and
      buffering characters to be scanned by specializing the scanner functions. The
      additional benefit was for scanner functions to have a bigger window over the
      input. Even though we can get a pretty nice speedup from having a larger
      window, in practice this rarely helps. The cost is a larger binary.
      
      Since we can't eagerly convert utf8 to utf16 due to memory overhead, we'd also
      need to have a specialized version of the scanner just for utf8. That's pretty
      complex, and likely won't be better than simply bulk converting and buffering
      utf8 as utf16.
      
      Change-Id: Ic3564683932a0097e3f9f51cd88f62c6ac879dcb
      Reviewed-on: https://chromium-review.googlesource.com/1183190Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55258}
      fcfd995a
    • Ben L. Titzer's avatar
      Reland "[asmjs] Properly validate asm.js heap sizes" · 438e7ec6
      Ben L. Titzer authored
      This is a reland of 5c309271
      (the CL was reverted because of a Chromium test that is now fixed)
      
      Original change's description:
      > Reland "[asmjs] Properly validate asm.js heap sizes"
      >
      > This is a reland of 5d69010e
      >
      > Original change's description:
      > > [asmjs] Properly validate asm.js heap sizes
      > >
      > > Enforce both engine limitations and spec (http://asmjs.org/spec/latest/)
      > > limitations on the size of asm.js heaps.
      > >
      > > R=clemensh@chromium.org
      > > CC=​mstarzinger@chromium.org
      > >
      > > Bug: chromium:873600
      > > Change-Id: I104c23bbd0a9a7c494f97f8f9e83ac5a37496dfd
      > > Reviewed-on: https://chromium-review.googlesource.com/1174411
      > > Commit-Queue: Ben Titzer <titzer@chromium.org>
      > > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#55163}
      >
      > Bug: chromium:873600
      > Change-Id: Id24070bda3aafb9e1a32af0732a1b18f633ef932
      > Reviewed-on: https://chromium-review.googlesource.com/1179681
      > Commit-Queue: Ben Titzer <titzer@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55193}
      
      Bug: chromium:873600
      Change-Id: I6eca2a89589070837b109278f964fc8e9a0fd6f1
      Reviewed-on: https://chromium-review.googlesource.com/1183081Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Ben Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55249}
      438e7ec6
    • Aseem Garg's avatar
      Revert "Reland "[asmjs] Properly validate asm.js heap sizes"" · dd65e4b8
      Aseem Garg authored
      This reverts commit 5c309271.
      
      Reason for revert: Broke fast/workers/worker-shared-asm-buffer.html
      
      Original change's description:
      > Reland "[asmjs] Properly validate asm.js heap sizes"
      >
      > This is a reland of 5d69010e
      >
      > Original change's description:
      > > [asmjs] Properly validate asm.js heap sizes
      > >
      > > Enforce both engine limitations and spec (http://asmjs.org/spec/latest/)
      > > limitations on the size of asm.js heaps.
      > >
      > > R=clemensh@chromium.org
      > > CC=​mstarzinger@chromium.org
      > >
      > > Bug: chromium:873600
      > > Change-Id: I104c23bbd0a9a7c494f97f8f9e83ac5a37496dfd
      > > Reviewed-on: https://chromium-review.googlesource.com/1174411
      > > Commit-Queue: Ben Titzer <titzer@chromium.org>
      > > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#55163}
      >
      > Bug: chromium:873600
      > Change-Id: Id24070bda3aafb9e1a32af0732a1b18f633ef932
      > Reviewed-on: https://chromium-review.googlesource.com/1179681
      > Commit-Queue: Ben Titzer <titzer@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55193}
      
      TBR=mstarzinger@chromium.org,titzer@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:873600
      Change-Id: I5845c584c7ac399b9b7939f5fd50c09b7b2cc3d2
      Reviewed-on: https://chromium-review.googlesource.com/1182616
      Commit-Queue: Aseem Garg <aseemgarg@chromium.org>
      Reviewed-by: 's avatarAseem Garg <aseemgarg@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55242}
      dd65e4b8
  22. 20 Aug, 2018 2 commits
  23. 17 Aug, 2018 1 commit
  24. 16 Aug, 2018 2 commits
  25. 07 Aug, 2018 1 commit
  26. 01 Aug, 2018 1 commit
  27. 17 Jul, 2018 1 commit
  28. 12 Jul, 2018 1 commit
  29. 02 Jul, 2018 1 commit
  30. 23 Jun, 2018 1 commit
  31. 21 Jun, 2018 1 commit
  32. 17 Apr, 2018 1 commit
  33. 09 Apr, 2018 1 commit
  34. 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
  35. 04 Apr, 2018 1 commit