1. 24 Jul, 2018 9 commits
  2. 23 Jul, 2018 20 commits
  3. 21 Jul, 2018 1 commit
  4. 20 Jul, 2018 10 commits
    • Rodrigo Bruno's avatar
      Avoiding re-externalization of strings. · 2c4c2ad6
      Rodrigo Bruno authored
      Bug: chromium:845409
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: I75bddcf0e8879d2161486f24d1cd4e46d8fe008d
      Reviewed-on: https://chromium-review.googlesource.com/1139056
      Commit-Queue: Rodrigo Bruno <rfbpb@google.com>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54599}
      2c4c2ad6
    • jgruber's avatar
      [builtins] Introduce a symbol for each embedded builtin · d20883f4
      jgruber authored
      This should improve the debugging experience since backtraces will
      list the exact builtin instead of just 'embedded_blob'. An example
      gdb backtrace:
      
       #0  <snip address> in Builtins_RegExpPrototypeExec ()
       #1  <snip address> in Builtins_ArgumentsAdaptorTrampoline ()
       <snip further frames>
      
      Bug: v8:6666, v8:7722
      Change-Id: Iafc995779903e7d7a980d66e7dad42938ac7d29e
      Reviewed-on: https://chromium-review.googlesource.com/1145183Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54598}
      d20883f4
    • Sigurd Schneider's avatar
      Speculatively revert "[turboassembler] Introduce hard-abort mode" · 039c18e1
      Sigurd Schneider authored
      This reverts commit a462a785.
      
      Reason for revert: Breaks a TurboAssembler test:
      https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm/7726
      
      Original change's description:
      > [turboassembler] Introduce hard-abort mode
      > 
      > For checks and assertions (mostly for debug code, like stack alignment
      > or zero extension), we had two modes: Emit a call to the {Abort}
      > runtime function (the default), and emit a debug break (used for
      > testing, enabled via --trap-on-abort).
      > In wasm, where we cannot just call a runtime function because code must
      > be isolate independent, we always used the trap-on-abort behaviour.
      > This causes problems for our fuzzers, which do not catch SIGTRAP, and
      > hence do not detect debug code failures.
      > 
      > This CL introduces a third mode ("hard abort"), which calls a C
      > function via {ExternalReference}. The C function still outputs the
      > abort reason, but does not print the stack trace. It then aborts via
      > "OS::Abort", just like the runtime function.
      > This will allow fuzzers to detect the crash and even find a nice error
      > message.
      > 
      > Even though this looks like a lot of code churn, it is actually not.
      > Most added lines are new tests, and other changes are minimal.
      > 
      > R=​mstarzinger@chromium.org
      > 
      > Bug: chromium:863799
      > Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
      > Reviewed-on: https://chromium-review.googlesource.com/1142163
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54592}
      
      TBR=mstarzinger@chromium.org,clemensh@chromium.org
      
      Change-Id: I60c011cfe262ccebbb9abf32699a9fe17e72a3c8
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:863799
      Reviewed-on: https://chromium-review.googlesource.com/1145431
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54597}
      039c18e1
    • Sigurd Schneider's avatar
      Revert "[cleanup] Rename {kLastErrorMessage} to {kNumberOfReasons}" · 9741c7e3
      Sigurd Schneider authored
      This reverts commit 29379945.
      
      Reason for revert: Needed for other revert:
      https://chromium-review.googlesource.com/c/v8/v8/+/1145431
      
      Original change's description:
      > [cleanup] Rename {kLastErrorMessage} to {kNumberOfReasons}
      > 
      > The name {kLastErrorMessage} is misleading, as it's not actually the
      > index of the last message (or reason), but one more (i.e. number of
      > messages / reasons). Thus this renaming.
      > 
      > R=​mstarzinger@chromium.org
      > 
      > Bug: v8:7754
      > Change-Id: Id21edcecac84c0e6068423c6124ef2881116dc7c
      > Reviewed-on: https://chromium-review.googlesource.com/1145305
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54593}
      
      TBR=mstarzinger@chromium.org,clemensh@chromium.org
      
      Change-Id: I2af83f4a2299e05ad9bcacfe69c0b483fd1488de
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7754
      Reviewed-on: https://chromium-review.googlesource.com/1145520Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54596}
      9741c7e3
    • Caitlin Potter's avatar
      [runtime] use new CloneObject bytecode for some ObjectLiteralSpread cases · b6f7ea58
      Caitlin Potter authored
      As discussed in
      https://docs.google.com/document/d/1sBdGe8RHgeYP850cKSSgGABTyfMdvaEWLy-vertuTCo/edit?ts=5b3ba5cc#,
      
      this CL introduces a new bytecode (CloneObject), and a new IC type.
      
      In this prototype implementation, the type feedback looks like the
      following:
      
      Uninitialized case:
        { uninitialized_sentinel, uninitialized_sentinel }
      Monomorphic case:
        { weak 'source' map, strong 'result' map }
      Polymorphic case:
        { WeakFixedArray with { weak 'source' map, strong 'result' map }, cleared value }
      Megamorphic case:
        { megamorphic_sentinel, cleared_Value }
      
      In the fast case, Object cloning is done by allocating an object with
      the saved result map, and a shallow clone of the fast properties from
      the source object, as well as cloned fast elements from the source object.
      If at any point the fast case can't be taken, the IC transitions to the
      slow case and remains there.
      
      This prototype CL does not include any TurboFan optimization, and the
      CloneObject operation is merely reduced to a stub call.
      
      It may still be possible to get some further improvements by somehow
      incorporating compile-time boilerplate elements into the cloned object,
      or simplifying how the boilerplate elements are inserted into the
      object.
      
      In terms of performance, we improve the ObjectSpread score in JSTests/ObjectLiteralSpread/
      by about 8x, with substantial improvements over the Babel and ObjectAssign scores.
      
      R=gsathya@chromium.org, mvstanton@chromium.org, rmcilroy@chromium.org, neis@chromium.org, bmeurer@chromium.org
      BUG=v8:7611
      
      Change-Id: I79e1796eb77016fb4feba0e1d3bb9abb348c183e
      Reviewed-on: https://chromium-review.googlesource.com/1127472
      Commit-Queue: Caitlin Potter <caitp@igalia.com>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54595}
      b6f7ea58
    • Simon Zünd's avatar
      [cleanup] Replace ZoneList in SafePointTableBuilder::Emit · 8fb0db93
      Simon Zünd authored
      R=petermarshall@chromium.org
      
      Bug: v8:7754
      Change-Id: I045daa428a7830fa110c74d6636921be36ca1dbe
      Reviewed-on: https://chromium-review.googlesource.com/1145278Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Commit-Queue: Simon Zünd <szuend@google.com>
      Cr-Commit-Position: refs/heads/master@{#54594}
      8fb0db93
    • Clemens Hammacher's avatar
      [cleanup] Rename {kLastErrorMessage} to {kNumberOfReasons} · 29379945
      Clemens Hammacher authored
      The name {kLastErrorMessage} is misleading, as it's not actually the
      index of the last message (or reason), but one more (i.e. number of
      messages / reasons). Thus this renaming.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:7754
      Change-Id: Id21edcecac84c0e6068423c6124ef2881116dc7c
      Reviewed-on: https://chromium-review.googlesource.com/1145305
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54593}
      29379945
    • Clemens Hammacher's avatar
      [turboassembler] Introduce hard-abort mode · a462a785
      Clemens Hammacher authored
      For checks and assertions (mostly for debug code, like stack alignment
      or zero extension), we had two modes: Emit a call to the {Abort}
      runtime function (the default), and emit a debug break (used for
      testing, enabled via --trap-on-abort).
      In wasm, where we cannot just call a runtime function because code must
      be isolate independent, we always used the trap-on-abort behaviour.
      This causes problems for our fuzzers, which do not catch SIGTRAP, and
      hence do not detect debug code failures.
      
      This CL introduces a third mode ("hard abort"), which calls a C
      function via {ExternalReference}. The C function still outputs the
      abort reason, but does not print the stack trace. It then aborts via
      "OS::Abort", just like the runtime function.
      This will allow fuzzers to detect the crash and even find a nice error
      message.
      
      Even though this looks like a lot of code churn, it is actually not.
      Most added lines are new tests, and other changes are minimal.
      
      R=mstarzinger@chromium.org
      
      Bug: chromium:863799
      Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
      Reviewed-on: https://chromium-review.googlesource.com/1142163
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54592}
      a462a785
    • Michael Starzinger's avatar
      [wasm] Remove some dead module decoder entry points. · bced36d2
      Michael Starzinger authored
      R=clemensh@chromium.org
      BUG=v8:7754
      
      Change-Id: Ia4c2fb2d87c8a5de96fa9f1f0621d21ae3eda611
      Reviewed-on: https://chromium-review.googlesource.com/1145181Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54591}
      bced36d2
    • Clemens Hammacher's avatar
      [iwyu] Add script to check that headers can be included in isolation · 4b412577
      Clemens Hammacher authored
      The most important point of IWYU (include-what-you-use) is that each
      header includes everything it is using, so that whoever includes that
      header does not need to additionally include other things.
      This CL adds a script which generates files to automatically check this.
      It is automatically invoked during "gclient runhooks" if the
      "check_v8_header_includes" variable is set. This script generates a
      number of .cc files in the "check-header-includes" directory, together
      with a "sources.gni" file which lists all the generated cc files. Each
      file includes one header.
      If additionally the gn args "v8_check_header_includes" is set, this gni
      file is included, and all the generated CC files will be compiled. This
      will detect violations of the aforementioned IWYU rule.
      
      R=titzer@chromium.org, machenbach@chromium.org
      
      Bug: v8:7754, v8:7965
      Change-Id: Id1cf256507052c3a9ea82f8c80ea1c0385457e31
      Reviewed-on: https://chromium-review.googlesource.com/1145199
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54590}
      4b412577