1. 19 Mar, 2018 2 commits
  2. 16 Mar, 2018 2 commits
  3. 15 Mar, 2018 3 commits
  4. 14 Mar, 2018 4 commits
  5. 13 Mar, 2018 2 commits
  6. 12 Mar, 2018 3 commits
  7. 09 Mar, 2018 6 commits
    • Leszek Swirski's avatar
      Reland "[builtins] Remove CheckOptimizationMarker builtin" · f008d17c
      Leszek Swirski authored
      This was a shim for the non-I+TF codepath, which is now the only
      codepath (that still uses this tier-up mechanism anyway). There were a
      couple of places we were accidentally using it due to CompileLazy or
      deopts, so this also fixes those.
      
      Reland of https://chromium-review.googlesource.com/951490
      
      Change-Id: I1101eeda7b16651610c6f120062771bdc3c8a49f
      Reviewed-on: https://chromium-review.googlesource.com/957032Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51849}
      f008d17c
    • Peter Marshall's avatar
      [memory] Save space in the FeedbackMetadata on 64 bit platforms. · 5a70a5ea
      Peter Marshall authored
      Previously we used a FixedArray for the FeedbackMetadata, packing bits
      of information into Smi fields. On 64-bit platforms, we waste at least
      half of the available memory by using the Smi representation.
      
      Given that this is just raw data (no pointers), we can just use a new
      type that uses the existing packing scheme to store the data in int32
      format instead.
      
      This CL changes FeedbackMetadata to a new subclass of HeapObject. This
      is to reduce the API surface exposed, in comparison to extending/using
      a more general purpose data structure like ByteArray, which is also just
      raw data.
      
      FeedbackMetadata only exposes general purpose methods for accessing
      slots, but hides the implementation detail of packing bits into int32
      fields.
      
      This CL also introduces a sentinal EmptyFeedbackMetadata, because there
      are ~750 empty FeedbackMetadata objects when running an empty program in
      V8. These are probably for builtins.
      
      Bug: v8:7500
      Change-Id: Ic85563153abbd71a22854cee8519260c32b1e9ab
      Reviewed-on: https://chromium-review.googlesource.com/945730
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51842}
      5a70a5ea
    • jgruber's avatar
      Reland "[builtins] Execute binary-embedded builtin code" · 5025e415
      jgruber authored
      This is a reland of 6afd25ff
      
      Original change's description:
      > [builtins] Execute binary-embedded builtin code
      >
      > This CL creates trampolines into binary-embedded builtins on
      > isolate-creation, if --stress-off-heap-code is passed.
      >
      > Note that this still overwrites existing code objects with the
      > off-heap trampoline, and that off-heap builtins still exist both in
      > the snapshot and the binary. Addressing these points are the next
      > steps.
      >
      > Drive-by-change: More efficient off-heap code lookups now that the
      > off-heap memory area has a contiguous and static layout.
      >
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
      > Bug: v8:6666
      > Change-Id: I7e7ef0aa2cd7b8184ae3a13fa02bdcbb4f2c9f86
      > Reviewed-on: https://chromium-review.googlesource.com/947969
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51809}
      
      TBR=mstarzinger@chromium.org
      
      Bug: v8:6666
      Change-Id: I4e0684de90733e5f18f6f0ea4832e327d03dfbf7
      Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/955595Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51835}
      5025e415
    • jgruber's avatar
      Reland "[builtins] Embed builtins into the binary" · e6476f89
      jgruber authored
      This is a reland of 491d5a81
      
      Original change's description:
      > [builtins] Embed builtins into the binary
      >
      > This embeds code for off-heap-safe builtins into the binary. Actual
      > execution of embedded code is not implemented yet.
      >
      > The embedded file has the following format:
      >
      > namespace v8 {
      > namespace internal {
      >
      > namespace {
      >
      > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > __asm__( /* builtin offsets and lengths */ );
      > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > __asm__( /* binary instruction stream */ );
      > /* Repeat for other builtins. */
      >
      > extern "C" const uint8_t v8_embedded_blob_[];
      > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      >
      > }  // namespace
      >
      > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      >
      > }  // namespace internal
      > }  // namespace v8
      >
      > Bug: v8:6666
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > Reviewed-on: https://chromium-review.googlesource.com/946011
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51759}
      
      TBR=yangguo@chromium.org
      
      Bug: v8:6666
      Change-Id: I89b0498f22b4ce573723748d55d86a82ba285a88
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/957024Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51832}
      e6476f89
    • Leszek Swirski's avatar
      Revert "[builtins] Remove CheckOptimizationMarker builtin" · 37c36263
      Leszek Swirski authored
      This reverts commit daa224d4.
      
      Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=819873
      
      Original change's description:
      > [builtins] Remove CheckOptimizationMarker builtin
      > 
      > This was a shim for the non-I+TF codepath, which is now the only
      > codepath (that still uses this tier-up mechanism anyway). There were a
      > couple of places we were accidentally using it due to CompileLazy or
      > deopts, so this also fixes those.
      > 
      > Change-Id: I00a7fdf9fb5cf74844138dac62d01ceaaf192e17
      > Reviewed-on: https://chromium-review.googlesource.com/951490
      > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51786}
      
      TBR=rmcilroy@chromium.org,machenbach@chromium.org,leszeks@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Change-Id: I80765eb18aaf5086e6db5d5df96f608a317c999f
      Reviewed-on: https://chromium-review.googlesource.com/957022Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51829}
      37c36263
    • Jakob Gruber's avatar
      Revert "Reland "[builtins] Embed builtins into the binary"" · 481aa56d
      Jakob Gruber authored
      This reverts commit 36b32aa2.
      
      Reason for revert: https://build.chromium.org/p/client.v8.fyi/builders/Win%20V8%20FYI%20Release%20%28NVIDIA%29/builds/208
      
      Original change's description:
      > Reland "[builtins] Embed builtins into the binary"
      > 
      > This is a reland of 491d5a81
      > 
      > Original change's description:
      > > [builtins] Embed builtins into the binary
      > >
      > > This embeds code for off-heap-safe builtins into the binary. Actual
      > > execution of embedded code is not implemented yet.
      > >
      > > The embedded file has the following format:
      > >
      > > namespace v8 {
      > > namespace internal {
      > >
      > > namespace {
      > >
      > > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > > __asm__( /* builtin offsets and lengths */ );
      > > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > > __asm__( /* binary instruction stream */ );
      > > /* Repeat for other builtins. */
      > >
      > > extern "C" const uint8_t v8_embedded_blob_[];
      > > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      > >
      > > }  // namespace
      > >
      > > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      > >
      > > }  // namespace internal
      > > }  // namespace v8
      > >
      > > Bug: v8:6666
      > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > > Reviewed-on: https://chromium-review.googlesource.com/946011
      > > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#51759}
      > 
      > TBR=yangguo@chromium.org
      > 
      > Bug: v8:6666
      > Change-Id: I741554cb080b6811dfbcb0913c6e1594e74c0432
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Reviewed-on: https://chromium-review.googlesource.com/955084
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51804}
      
      TBR=yangguo@chromium.org,jgruber@chromium.org
      
      Change-Id: I0e21f958f18b0e4d7edebece5e4a2a3ea094cdd3
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6666
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/956185Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51828}
      481aa56d
  8. 08 Mar, 2018 5 commits
    • Jakob Gruber's avatar
      Revert "[builtins] Execute binary-embedded builtin code" · d4c4345e
      Jakob Gruber authored
      This reverts commit 6afd25ff.
      
      Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug%20-%20fyi/builds/1437
      
      Original change's description:
      > [builtins] Execute binary-embedded builtin code
      > 
      > This CL creates trampolines into binary-embedded builtins on
      > isolate-creation, if --stress-off-heap-code is passed.
      > 
      > Note that this still overwrites existing code objects with the
      > off-heap trampoline, and that off-heap builtins still exist both in
      > the snapshot and the binary. Addressing these points are the next
      > steps.
      > 
      > Drive-by-change: More efficient off-heap code lookups now that the
      > off-heap memory area has a contiguous and static layout.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
      > Bug: v8:6666
      > Change-Id: I7e7ef0aa2cd7b8184ae3a13fa02bdcbb4f2c9f86
      > Reviewed-on: https://chromium-review.googlesource.com/947969
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51809}
      
      TBR=mstarzinger@chromium.org,jgruber@chromium.org
      
      Change-Id: I18276541b468b9d2b2a1366ccd287822e96b6df7
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6666
      Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/956042Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51816}
      d4c4345e
    • Camillo Bruni's avatar
      [runtime] Properly calculate upper bound for NOF in_object_properties · 0d263070
      Camillo Bruni authored
      Bug: chr:81499
      Change-Id: I5a18b9ec061d426e21c08747a8c18a36bf5ca194
      Reviewed-on: https://chromium-review.googlesource.com/950724
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51812}
      0d263070
    • jgruber's avatar
      [builtins] Execute binary-embedded builtin code · 6afd25ff
      jgruber authored
      This CL creates trampolines into binary-embedded builtins on
      isolate-creation, if --stress-off-heap-code is passed.
      
      Note that this still overwrites existing code objects with the
      off-heap trampoline, and that off-heap builtins still exist both in
      the snapshot and the binary. Addressing these points are the next
      steps.
      
      Drive-by-change: More efficient off-heap code lookups now that the
      off-heap memory area has a contiguous and static layout.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
      Bug: v8:6666
      Change-Id: I7e7ef0aa2cd7b8184ae3a13fa02bdcbb4f2c9f86
      Reviewed-on: https://chromium-review.googlesource.com/947969
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51809}
      6afd25ff
    • jgruber's avatar
      Reland "[builtins] Embed builtins into the binary" · 36b32aa2
      jgruber authored
      This is a reland of 491d5a81
      
      Original change's description:
      > [builtins] Embed builtins into the binary
      >
      > This embeds code for off-heap-safe builtins into the binary. Actual
      > execution of embedded code is not implemented yet.
      >
      > The embedded file has the following format:
      >
      > namespace v8 {
      > namespace internal {
      >
      > namespace {
      >
      > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > __asm__( /* builtin offsets and lengths */ );
      > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > __asm__( /* binary instruction stream */ );
      > /* Repeat for other builtins. */
      >
      > extern "C" const uint8_t v8_embedded_blob_[];
      > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      >
      > }  // namespace
      >
      > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      >
      > }  // namespace internal
      > }  // namespace v8
      >
      > Bug: v8:6666
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > Reviewed-on: https://chromium-review.googlesource.com/946011
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51759}
      
      TBR=yangguo@chromium.org
      
      Bug: v8:6666
      Change-Id: I741554cb080b6811dfbcb0913c6e1594e74c0432
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/955084Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51804}
      36b32aa2
    • Igor Sheludko's avatar
      [ic] Introduce canonical invalid prototype validity cell. · aeee6063
      Igor Sheludko authored
      ... and use Smi Map::kPrototypeChainValid for the cases where direct receiver's
      prototype is not JSObject instead of creating a new valid cell for each such
      case. This will make a validity cell checking code simpler.
      
      Bug: v8:5988
      Change-Id: I52cf55797171cc8021d80e4e441615d0c8fc8bd4
      Reviewed-on: https://chromium-review.googlesource.com/951384
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51803}
      aeee6063
  9. 07 Mar, 2018 2 commits
  10. 06 Mar, 2018 4 commits
    • Ross McIlroy's avatar
      Revert "Reland "[builtins] Embed builtins into the binary"" · c75ff739
      Ross McIlroy authored
      This reverts commit 75d19b5b.
      
      Reason for revert: Breaking Mac: https://build.chromium.org/p/client.v8.fyi/builders/Mac%20V8%20FYI%20Release%20%28Intel%29/builds/290
      
      Original change's description:
      > Reland "[builtins] Embed builtins into the binary"
      > 
      > This is a reland of 491d5a81
      > 
      > Original change's description:
      > > [builtins] Embed builtins into the binary
      > >
      > > This embeds code for off-heap-safe builtins into the binary. Actual
      > > execution of embedded code is not implemented yet.
      > >
      > > The embedded file has the following format:
      > >
      > > namespace v8 {
      > > namespace internal {
      > >
      > > namespace {
      > >
      > > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > > __asm__( /* builtin offsets and lengths */ );
      > > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > > __asm__( /* binary instruction stream */ );
      > > /* Repeat for other builtins. */
      > >
      > > extern "C" const uint8_t v8_embedded_blob_[];
      > > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      > >
      > > }  // namespace
      > >
      > > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      > >
      > > }  // namespace internal
      > > }  // namespace v8
      > >
      > > Bug: v8:6666
      > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > > Reviewed-on: https://chromium-review.googlesource.com/946011
      > > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#51759}
      > 
      > TBR=yangguo@chromium.org
      > 
      > Bug: v8:6666
      > Change-Id: Iba245976ce46c62474dcba94a99ab4a217b2e20e
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Reviewed-on: https://chromium-review.googlesource.com/950983
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51769}
      
      TBR=yangguo@chromium.org,jgruber@chromium.org
      
      Change-Id: If2560e5ea57585421ba5c3da35717abb9b31766f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6666
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/951562Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51772}
      c75ff739
    • jgruber's avatar
      Reland "[builtins] Embed builtins into the binary" · 75d19b5b
      jgruber authored
      This is a reland of 491d5a81
      
      Original change's description:
      > [builtins] Embed builtins into the binary
      >
      > This embeds code for off-heap-safe builtins into the binary. Actual
      > execution of embedded code is not implemented yet.
      >
      > The embedded file has the following format:
      >
      > namespace v8 {
      > namespace internal {
      >
      > namespace {
      >
      > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > __asm__( /* builtin offsets and lengths */ );
      > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > __asm__( /* binary instruction stream */ );
      > /* Repeat for other builtins. */
      >
      > extern "C" const uint8_t v8_embedded_blob_[];
      > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      >
      > }  // namespace
      >
      > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      >
      > }  // namespace internal
      > }  // namespace v8
      >
      > Bug: v8:6666
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > Reviewed-on: https://chromium-review.googlesource.com/946011
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51759}
      
      TBR=yangguo@chromium.org
      
      Bug: v8:6666
      Change-Id: Iba245976ce46c62474dcba94a99ab4a217b2e20e
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/950983Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51769}
      75d19b5b
    • Jakob Gruber's avatar
      Revert "[builtins] Embed builtins into the binary" · 4f18484b
      Jakob Gruber authored
      This reverts commit 491d5a81.
      
      Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Mac64/builds/20696
      
      Original change's description:
      > [builtins] Embed builtins into the binary
      > 
      > This embeds code for off-heap-safe builtins into the binary. Actual
      > execution of embedded code is not implemented yet.
      > 
      > The embedded file has the following format:
      > 
      > namespace v8 {
      > namespace internal {
      > 
      > namespace {
      > 
      > V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      > __asm__( /* builtin offsets and lengths */ );
      > __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      > __asm__( /* binary instruction stream */ );
      > /* Repeat for other builtins. */
      > 
      > extern "C" const uint8_t v8_embedded_blob_[];
      > static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      > 
      > }  // namespace
      > 
      > const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      > uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      > 
      > }  // namespace internal
      > }  // namespace v8
      > 
      > Bug: v8:6666
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      > Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      > Reviewed-on: https://chromium-review.googlesource.com/946011
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51759}
      
      TBR=yangguo@chromium.org,jgruber@chromium.org
      
      Change-Id: I36f5ee173fca565327b7f3e0ea20503ceef451fe
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6666
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/950982Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51760}
      4f18484b
    • jgruber's avatar
      [builtins] Embed builtins into the binary · 491d5a81
      jgruber authored
      This embeds code for off-heap-safe builtins into the binary. Actual
      execution of embedded code is not implemented yet.
      
      The embedded file has the following format:
      
      namespace v8 {
      namespace internal {
      
      namespace {
      
      V8_EMBEDDED_TEXT_HEADER(v8_embedded_blob_)
      __asm__( /* builtin offsets and lengths */ );
      __asm__(V8_ASM_LABEL("Builtins_RecordWrite"));
      __asm__( /* binary instruction stream */ );
      /* Repeat for other builtins. */
      
      extern "C" const uint8_t v8_embedded_blob_[];
      static const uint32_t v8_embedded_blob_size_ = /* size in bytes */;
      
      }  // namespace
      
      const uint8_t* DefaultEmbeddedBlob() { return v8_embedded_blob_; }
      uint32_t DefaultEmbeddedBlobSize() { return v8_embedded_blob_size_; }
      
      }  // namespace internal
      }  // namespace v8
      
      Bug: v8:6666
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux64_fyi_rel_ng
      Change-Id: Ic989f01da69ebe2863f31d934bfbe2c5d6e80864
      Reviewed-on: https://chromium-review.googlesource.com/946011
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51759}
      491d5a81
  11. 05 Mar, 2018 2 commits
    • Camillo Bruni's avatar
      [printing] Improve Map printing · 3fdf554c
      Camillo Bruni authored
      - Only show ElementsKind for JSObject Maps
      - Display non-variable instance-size for non-JSObject Maps
      
      Change-Id: I224b6ca2985f9c51635cc44ab5faa4cb977695ba
      Reviewed-on: https://chromium-review.googlesource.com/946489
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51744}
      3fdf554c
    • Benedikt Meurer's avatar
      [es2015] Refactor the JSArrayIterator. · 06ee127b
      Benedikt Meurer authored
      This changes the JSArrayIterator to always have only a single instance
      type, instead of the zoo of instance types that we had before, and
      which became less useful with the specification update to when "next"
      is loaded from the iterator now. This greatly simplifies the baseline
      implementation of the array iterator, which now only looks at the
      iterated object during %ArrayIteratorPrototype%.next invocations.
      
      In TurboFan we introduce a new JSCreateArrayIterator operator, that
      holds the IterationKind and get's the iterated object as input. When
      optimizing %ArrayIteratorPrototype%.next in the JSCallReducer, we
      check whether the receiver is a JSCreateArrayIterator, and if so,
      we try to infer maps for the iterated object from there. If we find
      any, we speculatively assume that these won't have changed during
      iteration (as we did before with the previous approach), and generate
      fast code for both JSArray and JSTypedArray iteration.
      
      Drive-by-fix: Drop the fast_array_iteration protector, it's not
      necessary anymore since we have the deoptimization guard bit in
      the JSCallReducer now.
      
      This addresses the performance cliff noticed in webpack 4. The minimal
      repro on the tracking bug goes from
      
        console.timeEnd: mono, 124.773000
        console.timeEnd: poly, 670.353000
      
      to
      
        console.timeEnd: mono, 118.709000
        console.timeEnd: poly, 141.393000
      
      so that's a 4.7x improvement.
      
      Also make presubmit happy by adding the missing #undef's.
      
      Bug: v8:7510, v7:7514
      Change-Id: I79a46bfa2cd0f0710e09365ef72519b1bbb667b5
      Reviewed-on: https://chromium-review.googlesource.com/946098Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51725}
      06ee127b
  12. 02 Mar, 2018 3 commits
  13. 01 Mar, 2018 1 commit
  14. 28 Feb, 2018 1 commit