1. 13 Jul, 2017 1 commit
  2. 12 Jul, 2017 2 commits
  3. 11 Jul, 2017 1 commit
  4. 03 Jul, 2017 1 commit
    • Mathias Bynens's avatar
      [elements] Rename Has*Elements and Is*ElementsKind methods · 7915cf93
      Mathias Bynens authored
      Commit 26c00f4a improved the names of
      most FAST_* elements kinds in the enum. This patch updates the matching
      Has*Elements and Is*ElementsKind method names accordingly.
      
      - HasFastSmiElements => HasSmiElements
      - IsFastSmiElementsKind => IsSmiElementsKind
      - HasFastObjectElements => HasObjectElements
      - IsFastObjectElementsKind => IsObjectElementsKind
      - HasFastSmiOrObjectElements => HasSmiOrObjectElements
      - IsFastSmiOrObjectElementsKind => IsSmiOrObjectElementsKind
      - HasFastDoubleElements => HasDoubleElements
      - IsFastDoubleElementsKind => IsDoubleElementsKind
      - HasFastHoleyElements => HasHoleyElements
      - IsFastHoleyElementsKind => IsHoleyElementsKind
      
      Additionally, FastHoleyElementsUsage is renamed to HoleyElementsUsage.
      
      BUG=v8:6548
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ie8f3d01eb43e909cbc6c372d88c5fbc4dfc2ac04
      Reviewed-on: https://chromium-review.googlesource.com/558356Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Mathias Bynens <mathias@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46376}
      7915cf93
  5. 26 Jun, 2017 2 commits
  6. 25 Jun, 2017 1 commit
  7. 23 Jun, 2017 1 commit
    • hans's avatar
      Make some functions that are hit during renderer startup available for inlining · d00d52be
      hans authored
      This is towards closing the perf gap between the MSVC build (which uses link-
      time optimization) and Clang (where LTO isn't ready on Windows yet). We did
      a study (see bug) to see which non-inlined functions are hit a lot during render
      start-up, and which would be inlined during LTO. This should benefit performance
      in all builds which currently don't use LTO (Android, Linux, Mac) as well as
      the Win/Clang build.
      
      The binary size of chrome_child.dll increases by 2KB with this.
      
      BUG=chromium:728324
      
      Review-Url: https://codereview.chromium.org/2950993002
      Cr-Commit-Position: refs/heads/master@{#46191}
      d00d52be
  8. 20 Jun, 2017 1 commit
    • Igor Sheludko's avatar
      [parser] Improve propagation of SharedFunctionInfo::has_shared_name(). · 328afeeb
      Igor Sheludko authored
      The initial implementation did not work in certain cases.
      For example, in the following case 'f' didn't have a shared name while
      it should have had an empty shared name:
        var f = (function() { return function() { return 42; } }();
      
      The new implementation ensures that all anonymous functions have empty
      shared name and if any of them happen to be an object literal property
      value or an accessor function or a concise method then such a function
      is marked as having no shared name.
      
      Bug: v8:6459
      Change-Id: I0f936afce0c152d91b2b41c1dc475a5ed841eca0
      Reviewed-on: https://chromium-review.googlesource.com/538666Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46026}
      328afeeb
  9. 19 Jun, 2017 2 commits
  10. 16 Jun, 2017 1 commit
  11. 13 Jun, 2017 1 commit
  12. 29 May, 2017 1 commit
  13. 22 May, 2017 3 commits
  14. 18 May, 2017 1 commit
  15. 17 May, 2017 1 commit
  16. 15 May, 2017 2 commits
  17. 04 May, 2017 1 commit
    • Caitlin Potter's avatar
      [es6] don't use do-expressions to desugar ES6 classes · c6540ab1
      Caitlin Potter authored
      Removes the do-expression wrapping, modifies BytecodeGenerator change
      to enter a class literal's block scope if needed.
      
      This does not solve the actual bug in v8:6322, but helps mitigate it in
      simple cases. The bug is caused by BytecodeGenerator not allocating a
      large enough array of context registers to hold its entire stack,
      allowing non-context registers to be overwritten during PushContext and
      PopContext bytecodes.
      
      Nevertheless, I like the idea of not depending on do-expressions when
      possible, so I think it's worth doing anyways.
      
      BUG=v8:6322
      R=rmcilroy@chromium.org, marja@chromium.org, littledan@chromium.org
      
      Change-Id: I82b7569db2a0eead1694bd04765fc4456c2f1a0a
      Reviewed-on: https://chromium-review.googlesource.com/491074
      Commit-Queue: Caitlin Potter <caitp@igalia.com>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarDaniel Ehrenberg <littledan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45110}
      c6540ab1
  18. 02 May, 2017 1 commit
    • Wiktor Garbacz's avatar
      [parser] Inital parallel parse tasks implementation. · 00912d73
      Wiktor Garbacz authored
      While parsing top-level code eager functions are skipped just like lazy
      ones, but also a parse task is created for each.
      
      The parse tasks are run by the compiler dispatcher and can be executed
      either on background thread or in idle time.
      After parsing of top-level code finishes it waits for all unfinished
      parser tasks - possibly picking up and executing them on current thread.
      Afterwards parse task results are stitched together with top-level AST,
      in case of failures eager functions are treated just like lazy -
      parsing/compilation is retriggered for them in the runtime and proper
      errors are generated (performance is not optimized for error case at
      all).
      
      BUG=v8:6093
      
      Change-Id: Ie6508211a04b90becfe44139cce1c8ecec386b6e
      Reviewed-on: https://chromium-review.googlesource.com/486725Reviewed-by: 's avatarJochen Eisinger <jochen@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarDaniel Vogelheim <vogelheim@chromium.org>
      Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
      Cr-Commit-Position: refs/heads/master@{#45016}
      00912d73
  19. 27 Apr, 2017 1 commit
    • cbruni's avatar
      [runtime] Ensure slow properties for simple {__proto__:null} literals. · 3f73fecb
      cbruni authored
      With this CL we reduce the difference between directly using a null prototype
      in a literal or using Object.create(null).
      - The EmitFastCloneShallowObject builtin now supports cloning slow
        object boilerplates.
      - Unified behavior to find the matching Map and instantiating it for
        Object.create(null) and literals with a null prototype.
      - Cleanup of literal type parameter of CompileTimeValue, now in sync with
        ObjectLiteral flags.
      
      Review-Url: https://codereview.chromium.org/2445333002
      Cr-Commit-Position: refs/heads/master@{#44941}
      3f73fecb
  20. 25 Apr, 2017 2 commits
    • Michael Achenbach's avatar
      Revert "[parser] Inital parallel parse tasks implementation." · ef99f666
      Michael Achenbach authored
      This reverts commit 56a6fda3.
      
      Reason for revert: Makes tsan flaky:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/15038
      
      Original change's description:
      > [parser] Inital parallel parse tasks implementation.
      > 
      > While parsing top-level code eager functions are skipped just like lazy
      > ones, but also a parse task is created for each.
      > 
      > The parse tasks are run by the compiler dispatcher and can be executed
      > either on background thread or in idle time.
      > After parsing of top-level code finishes it waits for all unfinished
      > parser tasks - possibly picking up and executing them on current thread.
      > Afterwards parse task results are stitched together with top-level AST,
      > in case of failures eager functions are treated just like lazy -
      > parsing/compilation is retriggered for them in the runtime and proper
      > errors are generated (performance is not optimized for error case at
      > all).
      > 
      > BUG=v8:6093
      > 
      > Change-Id: I718dd2acc8a70ae1b09c2dea2616716605d7b05d
      > Reviewed-on: https://chromium-review.googlesource.com/483439
      > Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
      > Reviewed-by: Marja Hölttä <marja@chromium.org>
      > Reviewed-by: Jochen Eisinger <jochen@chromium.org>
      > Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#44849}
      
      TBR=marja@chromium.org,vogelheim@chromium.org,jochen@chromium.org,wiktorg@google.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:6093
      
      Change-Id: I17e689efee7d216d28a94a5c8147022ae7e830dd
      Reviewed-on: https://chromium-review.googlesource.com/486883Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44859}
      ef99f666
    • Wiktor Garbacz's avatar
      [parser] Inital parallel parse tasks implementation. · 56a6fda3
      Wiktor Garbacz authored
      While parsing top-level code eager functions are skipped just like lazy
      ones, but also a parse task is created for each.
      
      The parse tasks are run by the compiler dispatcher and can be executed
      either on background thread or in idle time.
      After parsing of top-level code finishes it waits for all unfinished
      parser tasks - possibly picking up and executing them on current thread.
      Afterwards parse task results are stitched together with top-level AST,
      in case of failures eager functions are treated just like lazy -
      parsing/compilation is retriggered for them in the runtime and proper
      errors are generated (performance is not optimized for error case at
      all).
      
      BUG=v8:6093
      
      Change-Id: I718dd2acc8a70ae1b09c2dea2616716605d7b05d
      Reviewed-on: https://chromium-review.googlesource.com/483439
      Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarJochen Eisinger <jochen@chromium.org>
      Reviewed-by: 's avatarDaniel Vogelheim <vogelheim@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44849}
      56a6fda3
  21. 10 Apr, 2017 1 commit
    • Ross McIlroy's avatar
      Reland: [Interpreter] Move BinaryOp Smi transformation into BytecodeGenerator."" · 496864f8
      Ross McIlroy authored
      This relands commit d3e9aade. The original CL was reverted speculatively but didn't cause the buildbot failure.
      
      Original change's description:
      > [Interpreter] Move BinaryOp Smi transformation into BytecodeGenerator.
      > 
      > Perform the transformation to <BinaryOp>Smi for Binary ops which take Smi
      > literals in the BytecodeGenerator. This enables us to perform the
      > transformation for literals on either side for commutative operations, and
      > Avoids having to do the check on every bytecode in the peephole optimizer.
      > 
      > In the process, adds Smi bytecode variants for all binary operations, adding
      >  - MulSmi
      >  - DivSmi
      >  - ModSmi
      >  - BitwiseXorSmi
      >  - ShiftRightLogical
      > 
      > BUG=v8:6194
      > 
      > Change-Id: If1484252f5385c16957004b9cac8bfbb1f209219
      > Reviewed-on: https://chromium-review.googlesource.com/466246
      > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#44477}
      
      TBR=rmcilroy@chromium.org,machenbach@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,mythria@chromium.org,v8-reviews@googlegroups.com,ishell@chromium.org
      # Not skipping CQ checks because original CL landed > 1 day ago.
      BUG=v8:6194
      
      Change-Id: I2ccaefa1ce58d3885f5c2648755985c06f25c1d8
      Reviewed-on: https://chromium-review.googlesource.com/472746Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44511}
      496864f8
  22. 07 Apr, 2017 2 commits
  23. 24 Mar, 2017 2 commits
  24. 22 Mar, 2017 1 commit
    • franzih's avatar
      [type-profile] Handle returns correctly. · 86c2db5e
      franzih authored
      Handle fall-off returns and returns inside try blocks.
      
      Store the type-profile feedback slot on the FunctionLiteral
      rather than on every return statement.
      
      Next steps:
      * Store entries in nexus that can be identified as 'return' (rather than parameter or assignment)
      * Collect types for parameters and assignments
      * Distinguish multiple parameters and assignments correctly
      
      R=mstarzinger@chromium.org
      BUG=v8:5935
      
      Review-Url: https://codereview.chromium.org/2764113002
      Cr-Commit-Position: refs/heads/master@{#44014}
      86c2db5e
  25. 21 Mar, 2017 1 commit
  26. 16 Mar, 2017 5 commits
  27. 15 Mar, 2017 1 commit