1. 18 Feb, 2019 19 commits
  2. 16 Feb, 2019 2 commits
  3. 15 Feb, 2019 19 commits
    • Sigurd Schneider's avatar
      [cleanup] Improve dependency handling in gn targets · 78fd0332
      Sigurd Schneider authored
      This is a step towards making gn check pass on v8 without third_party
      
      Change-Id: I6a256d65159695e2ba2a5d44c0437cac9b28aa3a
      Bug: v8:8834, v8:8855
      Reviewed-on: https://chromium-review.googlesource.com/c/1475460Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59641}
      78fd0332
    • Sigurd Schneider's avatar
      [cleanup] Remove unnecessary include · 40201af9
      Sigurd Schneider authored
      Change-Id: I43efddcbd381be3d61deb94515842e582069ffb9
      Bug: v8:8834
      Reviewed-on: https://chromium-review.googlesource.com/c/1475465Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59640}
      40201af9
    • Matt Gardner's avatar
      [ic] Don't allow hole to undefined conversions for double arrays · 3d38c4fa
      Matt Gardner authored
      This CL fixes a perf regression caused by:
      https://chromium-review.googlesource.com/c/v8/v8/+/1465182
      
      A deopt loop was occurring for HOLEY_DOUBLE_ELEMENTS arrays when hole
      elements were used as anything other than a float64, such as a return
      value or storing into a non-double array.
      
      bug: chromium:932082
      Change-Id: I27290e9669d80050027e76cb62b0f67b51788d0f
      Reviewed-on: https://chromium-review.googlesource.com/c/1474560Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Matt Gardner <magardn@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#59639}
      3d38c4fa
    • Mike Stanton's avatar
      [Torque] Implement Array.prototype.every and some in Torque · 9bf0c696
      Mike Stanton authored
      Just a straightforward port.
      
      bug:v8:7672
      
      Change-Id: Ie2511cda23d7b61775e3619d61dde43c8ae48c7f
      Reviewed-on: https://chromium-review.googlesource.com/c/1425916
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59638}
      9bf0c696
    • Michael Stanton's avatar
      Revert "[Torque] Add source positions for Torque files" · 9542fd8f
      Michael Stanton authored
      This reverts commit 0a24e67a.
      
      Reason for revert: Broke Linux 64 UBSan build with unaligned read in the snapshot. Will investigate...
      
      Original change's description:
      > [Torque] Add source positions for Torque files
      > 
      > To improve the Torque debugging experience, we can add source positions
      > for each line. This information is carried through the generated
      > CSA code (in <output directory>/gen/torque-generated/*.cc) and
      > embedded as SourcePositions in the Code object.
      > 
      > At snapshot time, these SourcePositions are stripped from the Code
      > object and turned into platform-appropriate line number debug
      > information.
      > 
      > At this time on Linux, you'll need to build with "is_clang=false"
      > in order to use GCC, because crucial steps are missing in Clang's
      > ability to convey the information into the binary successfully.
      > 
      > This CL also introduces a flag to control the existing source
      > information in CSA code. --enable-source-at-csa-bind is now set
      > to false by default because it's a bit confusing to "hop" between
      > source lines in .TQ files and in .CC files. I expect to continue
      > making adjustments there, as I want to provide helpful
      > debugging aids at the CSA level as well as the Torque level.
      > The current configuration prioritizes Torque.
      > 
      > A detailed guide on usage to follow (also on v8.dev).
      > 
      > Bug: v8:8418
      > Change-Id: Ib4226877ce4cae451bb4d0c546927e89f4e66b58
      > Reviewed-on: https://chromium-review.googlesource.com/c/1475473
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59636}
      
      TBR=mvstanton@chromium.org,tebbi@chromium.org
      
      Change-Id: I4ccf94dfdb8b2ba238a60db9ecc8e3ceebef2699
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8418
      Reviewed-on: https://chromium-review.googlesource.com/c/1475757Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59637}
      9542fd8f
    • Mike Stanton's avatar
      [Torque] Add source positions for Torque files · 0a24e67a
      Mike Stanton authored
      To improve the Torque debugging experience, we can add source positions
      for each line. This information is carried through the generated
      CSA code (in <output directory>/gen/torque-generated/*.cc) and
      embedded as SourcePositions in the Code object.
      
      At snapshot time, these SourcePositions are stripped from the Code
      object and turned into platform-appropriate line number debug
      information.
      
      At this time on Linux, you'll need to build with "is_clang=false"
      in order to use GCC, because crucial steps are missing in Clang's
      ability to convey the information into the binary successfully.
      
      This CL also introduces a flag to control the existing source
      information in CSA code. --enable-source-at-csa-bind is now set
      to false by default because it's a bit confusing to "hop" between
      source lines in .TQ files and in .CC files. I expect to continue
      making adjustments there, as I want to provide helpful
      debugging aids at the CSA level as well as the Torque level.
      The current configuration prioritizes Torque.
      
      A detailed guide on usage to follow (also on v8.dev).
      
      Bug: v8:8418
      Change-Id: Ib4226877ce4cae451bb4d0c546927e89f4e66b58
      Reviewed-on: https://chromium-review.googlesource.com/c/1475473Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59636}
      0a24e67a
    • Junliang Yan's avatar
      PPC/s390: fix missing heap-inl.h in code-generator · a44565f6
      Junliang Yan authored
      Change-Id: I86b8c455a25896d9c4ce92901c23ec5971edde43
      Reviewed-on: https://chromium-review.googlesource.com/c/1475332Reviewed-by: 's avatarMilad Farazmand <miladfar@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#59635}
      a44565f6
    • Igor Sheludko's avatar
      [ptr-compr][x64] Change compression scheme to zero upper 32-bits · 89276f9f
      Igor Sheludko authored
      ... and verify that upper 32-bits of on-heap tagged values contain zero.
      
      This CL also removes scratch register argument from decompression
      snippets.
      
      Bug: v8:7703
      Change-Id: Ia69d1c5de423c465735719ed07d92df03d9db97c
      Reviewed-on: https://chromium-review.googlesource.com/c/1460953
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59634}
      89276f9f
    • Junliang Yan's avatar
      PPC/s390: [builtins] Improve CallApiCallback calling convention. · 81bb8aed
      Junliang Yan authored
      Port c142e0a2
      
      Original Commit Message:
      
          Refactor the CallApiCallback builtin to
      
          - pass the context as with other stubs, and
          - pass holder and call data in registers.
      
          This avoids having to place holder and call data onto the stack, and
          thus makes it possible to easily call the CallApiCallback builtin from
          other builtins while just forwarding the (stack) arguments. The idea
          is to use this in the future to optimize the general case of calling
          into any API method via a FunctionTemplateInfo and doing appropriate
          security and/or interface checks upfront as necessary (eventually making
          the HandleApiCall C++ builtin obsolete at some point).
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, miladfar@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I94583d1e0fa7c4696e628c363fefe273c8c5cab9
      Reviewed-on: https://chromium-review.googlesource.com/c/1475331Reviewed-by: 's avatarMilad Farazmand <miladfar@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#59633}
      81bb8aed
    • Tobias Tebbi's avatar
      Reland^2 "[build] disable C++ optimization for mksnapshot code." · 6beea97e
      Tobias Tebbi authored
      This is a reland of a6b95a6a
      
      In addition to UBSan, also ASAN needs optimizations.
      So this CL doesn't disable optimizations for all sanitizer builds.
      
      Original change's description:
      > Reland "[build] disable C++ optimization for mksnapshot code."
      >
      > This is a reland of cee2f772
      >
      > Original change's description:
      > > [build] disable C++ optimization for mksnapshot code.
      > >
      > > By disabling C++ optimizations for code that's only run in mksnapshot,
      > > that is, CSA and Torque-generated code, we can save compile time.
      > > I observed up to 2x improvements of compile time for some files,
      > > while the mksnapshot time did not increase significantly.
      > >
      > > Bug: v8:7629
      > > Change-Id: I96be2966611b2471b68023e0dd9e351d94f0013c
      > > Reviewed-on: https://chromium-review.googlesource.com/c/1460941
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#59585}
      >
      > Bug: v8:7629
      > Change-Id: I8330f93173ab3d7b400e15ea4935bbe8256b250f
      > Reviewed-on: https://chromium-review.googlesource.com/c/1473292
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59606}
      
      Bug: v8:7629
      Change-Id: I42175c472d8e41345573df81645dfe3accc9d8c4
      Reviewed-on: https://chromium-review.googlesource.com/c/1475396Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59632}
      6beea97e
    • Tobias Tebbi's avatar
      [csa] re-enable release build FixedArray bounds checks · 722f7139
      Tobias Tebbi authored
      To address previously observed regressions, this CL also introduces
      unchecked FixedArray accessors and uses them to access collections.
      
      Bug: v8:8029
      Change-Id: I6bcd8db2b89b29b7acb3b8431ec5405b737bcef2
      Reviewed-on: https://chromium-review.googlesource.com/c/1473033
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59631}
      722f7139
    • Sigurd Schneider's avatar
      [api] Add enum type to RAILMode to allow forward-declaration of enum · 2f8a5f59
      Sigurd Schneider authored
      This allows removing some v8.h includes in blink, and replacing them by
      forward declarations.
      
      Change-Id: I3f55669f551e29038918f54a26a0ab032ffb252a
      Bug: v8:8788
      Reviewed-on: https://chromium-review.googlesource.com/c/1475394Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59630}
      2f8a5f59
    • Farazmand's avatar
      PPC/s390: [wasm] No longer copy runtime stubs into each module. · 305b2e0d
      Farazmand authored
      Port a4b19dcc
      
      Original Commit Message:
      
          This switches from copying entire runtime stubs into each module to only
          having small jump table slots in each module that act as a trampoline to
          the actual embedded builtin representing the runtime stub. This reduces
          the memory footprint of modules.
      
      R=mstarzinger@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, miladfar@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: Ibbe5fdf4d926b45582748ae8b15eb316107409dc
      Reviewed-on: https://chromium-review.googlesource.com/c/1470455Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
      Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#59629}
      305b2e0d
    • Toon Verwaest's avatar
      [parser] Fix escaped contextual keyword handling · a94c91ca
      Toon Verwaest authored
      Escaped contextual keywords are simply valid identifiers if they do not occur
      in the context where they are a keyword. Escape sequences of the form \uNNNN
      or \u{NNNNNN} must be consumed as part of the identifier.
      
      If such escaped contextual keywords do occur in a context where they are a
      keyword, they are a syntax error. In that case we manually check locally
      whether they are escaped.
      
      Bug: v8:6543, v8:6541
      
      Change-Id: I7e1557963883e722310b9078d7d7636ec94aa603
      Reviewed-on: https://chromium-review.googlesource.com/c/1473293Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59628}
      a94c91ca
    • Peter Marshall's avatar
      [cleanup] Use unique_ptr for MemoryAllocator in Heap · 5d1d0795
      Peter Marshall authored
      Also drive-by cleanup the TestMemoryAllocatorScope class so that it
      takes ownership of the old allocator while it holds onto it, and so
      that the MemoryAllocator for testing is constructed inside the scope
      rather than passed into it. This means users don't need to explicitly
      call TearDown() and delete the allocator as the scope does it for them.
      
      Change-Id: Id7da3c074618a376d2edfe3385bb185ba8287cea
      Reviewed-on: https://chromium-review.googlesource.com/c/1392194
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59627}
      5d1d0795
    • Leszek Swirski's avatar
      [parser] Force func decl allocation for non-block code coverage · 54e51522
      Leszek Swirski authored
      In addition to the previous change enabling forced FunctionDeclaration
      allocation when block code coverage is enabled, enable it now for all
      (non-best-effort) code coverage by reading off the coverage mode from
      the isolate (rather than relying on the presence of a source range map).
      
      Bug: chromium:927464
      Change-Id: I26f86c9fbebc0df52d5cdeff3ca1095215a6d912
      Reviewed-on: https://chromium-review.googlesource.com/c/1456041
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59626}
      54e51522
    • Tobias Tebbi's avatar
      [torque] make overload resolution robust concerning branching contexts · 93c13714
      Tobias Tebbi authored
      This changes the behavior of overload resolution to not consider if the
      call happens in a branching context (i.e., with implicit True and False
      labels from a conditional operator or statement).
      That way, it is not possible to get different behavior accidentially
      by using an operator in the wrong context. Instead, there will be a
      compile error because the call happened in a non-branching context, or
      because it is ambiguous without this information.
      
      The test doesn't perfectly fit the issue (impossible until we have
      negative tests), but instead tests that equality on HeapNumber's works
      in boolean contexts, which is something Peter fixed already in
      https://crrev.com/c/1432596.
      
      
      Bug: v8:8737 v8:7793
      Change-Id: I08a3801891587aac705dc93b1c65b0c6cf164107
      Reviewed-on: https://chromium-review.googlesource.com/c/1456093Reviewed-by: 's avatarPeter Wong <peter.wm.wong@gmail.com>
      Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59625}
      93c13714
    • Benedikt Meurer's avatar
      [isolate] Move ThreadLocalTop into IsolateData. · e17e46fd
      Benedikt Meurer authored
      This refactors the ThreadLocalTop into separate header and
      implementation files, and moves it from the Isolate to the
      IsolateData (with some tweaks to make the layout of the class
      predictable). This has the advantage that all external references
      referring to addresses in the ThreadLocalTop (like js_entry_sp,
      c_function, c_entry_fp, etc.) need only a single memory access
      to reach them. For example the CallApiCallback can now use
      
      ```
      mov %rbp,0x8e40(%r13)
      mov %rsi,0x8de0(%r13)
      mov %rbx,0x8e50(%r13)
      ```
      
      to setup the information about context, frame pointer, and C++
      function pointer in the ThreadLocalTop instead of the previously
      generated code
      
      ```
      mov 0x2e28(%r13),%r10
      mov %rbp,(%r10)
      mov 0x2e38(%r13),%r10
      mov %rsi,(%r10)
      mov 0x2e30(%r13),%r10
      mov %rbx,(%r10)
      ```
      
      which always had to load the scratch register %r10 with the actual
      address first. This has interesting performance impact. On the
      test case mentioned in v8:8820 (with the `d8` patch applied), the
      performance goes from
      
      ```
      console.timeEnd: fnMono, 2290.012000
      console.timeEnd: fnCall, 2604.954000
      ```
      
      to
      
      ```
      console.timeEnd: fnMono, 2062.743000
      console.timeEnd: fnCall, 2477.556000
      ```
      
      which is a pretty solid **10%** improvement for the monomorphic API
      accessor case, and a **5%** improvement for calling into the API
      accessor instead.
      
      But there might as well be other places besides API callback calls
      that will benefit from this change, which I haven't tested explicitly.
      
      Although this change is supposed to be as minimal as possible without
      any functional effects, some changes were necessary/logical. Eventually
      we should reconsider changing the layout and the types for the fields
      in the ThreadLocalTop to be more consistent with the other IsolateData
      entities. But this can be done in separate follow-up CLs, as this will
      be quite a bit of churn on the code base, depending on how we do that
      exactly, and is orthogonal to this optimization.
      
      Bug: v8:8820, v8:8848, chromium:913553
      Change-Id: I4732c8e60231f0312eb7767358c48bae0338220d
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Reviewed-on: https://chromium-review.googlesource.com/c/1474230Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59624}
      e17e46fd
    • Michael Achenbach's avatar
      Fix typo in OWNERS file · 08fa19f3
      Michael Achenbach authored
      TBR=sergiyb@chromium.org
      NOTRY=true
      
      Change-Id: I95b677f5f1d0d3de815ad8d1d56301b1dcbbcd52
      Reviewed-on: https://chromium-review.googlesource.com/c/1475391Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarSergiy Belozorov <sergiyb@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59623}
      08fa19f3