1. 05 Jan, 2017 1 commit
    • franzih's avatar
      [runtime] Collect IC feedback in DefineDataPropertyInLiteral. · 81736c71
      franzih authored
      Add a feedback vector slot for computed property names in object
      and class literals. Introduce new slot kind for storing
      computed property names.
      
      Change StaDataPropertyInLiteral to use the accumulator (again), so
      we don't exceed Bytecodes::kMaxOperands.
      
      We assume that most computed property names are
      symbols. Therefore we should see performance
      improvements, even if we deal with monomorphic ICs only.
      
      This CL only collects feedback but does not use
      it in Reduce() yet.
      
      BUG=v8:5624
      
      Review-Url: https://codereview.chromium.org/2587393006
      Cr-Commit-Position: refs/heads/master@{#42082}
      81736c71
  2. 02 Jan, 2017 1 commit
    • caitp's avatar
      [promises] port NewPromiseCapability to TF · 4f95a1eb
      caitp authored
      - Adds CodeAssembler::ConstructJS() to simplify calling JS functions as
      constructors, used by NewPromiseCapability()
      - Defines PromiseCapability as a special JSObject subclass, with a
      non-exensible Map, and read-only non-configurable DataDescriptors which
      point to its in-object fields. This allows its fields to be used by JS
      builtins until there is no longer any need.
      
      Currently, the performance benefit comes from
      https://codereview.chromium.org/2567033003/, but does not appear to
      regress performance in any significant way.
      
      BUG=v8:5343
      TBR=ulan@chromium.org
      
      Review-Url: https://codereview.chromium.org/2567333002
      Cr-Commit-Position: refs/heads/master@{#42014}
      4f95a1eb
  3. 28 Dec, 2016 2 commits
  4. 16 Dec, 2016 7 commits
  5. 15 Dec, 2016 3 commits
  6. 13 Dec, 2016 1 commit
  7. 06 Dec, 2016 1 commit
  8. 05 Dec, 2016 1 commit
    • ishell's avatar
      [stubs] Cleanup usages of CSA::Select(). · 13cb1e54
      ishell authored
      1) CSA::Select() receives lambdas for generating true/false values.
         The representation parameter made mandatory.
      2) CSA::Select[Type]Constant() methods receive true/false nodes directly.
         These methods are intended to be used for generating "selects" when
         true/false values are already computed.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2550683003
      Cr-Commit-Position: refs/heads/master@{#41483}
      13cb1e54
  9. 01 Dec, 2016 3 commits
  10. 30 Nov, 2016 1 commit
  11. 16 Nov, 2016 2 commits
  12. 15 Nov, 2016 1 commit
  13. 14 Nov, 2016 1 commit
  14. 03 Nov, 2016 1 commit
  15. 02 Nov, 2016 3 commits
    • danno's avatar
      [stubs]: Support 1->2 byte copies in CopyStringCharacters · 9e2fd36c
      danno authored
      In the process, add a more general mechanism for passing around
      and amending list of CodeStubAssembler Variables. That change
      makes it possible to more easily add Variables to loops that are
      generated by utility functions, e.g. BuildFastLoop.
      
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2461363002
      Cr-Commit-Position: refs/heads/master@{#40700}
      9e2fd36c
    • danno's avatar
      [turbofan] Support variable size argument removal in TF-generated functions · fe552636
      danno authored
      This is preparation for using TF to create builtins that handle variable number of
      arguments and have to remove these arguments dynamically from the stack upon
      return.
      
      The gist of the changes:
      - Added a second argument to the Return node which specifies the number of stack
        slots to pop upon return in addition to those specified by the Linkage of the
        compiled function.
      - Removed Tail -> Non-Tail fallback in the instruction selector. Since TF now should
        handles all tail-call cases except where the return value type differs, this fallback
        was not really useful and in fact caused unexpected behavior with variable
        sized argument popping, since it wasn't possible to materialize a Return node
        with the right pop count from the TailCall without additional context.
      - Modified existing Return generation to pass a constant zero as the additional
        pop argument since the variable pop functionality
      
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2446543002
      Cr-Commit-Position: refs/heads/master@{#40699}
      fe552636
    • machenbach's avatar
      Revert of [turbofan] Support variable size argument popping in TF-generated... · c61902e0
      machenbach authored
      Revert of [turbofan] Support variable size argument popping in TF-generated functions (patchset #13 id:240001 of https://codereview.chromium.org/2446543002/ )
      
      Reason for revert:
      Seems to break arm64 sim debug and blocks roll:
      https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20debug/builds/3294
      
      Original issue's description:
      > [turbofan] Support variable size argument removal in TF-generated functions
      >
      > This is preparation for using TF to create builtins that handle variable number of
      > arguments and have to remove these arguments dynamically from the stack upon
      > return.
      >
      > The gist of the changes:
      > - Added a second argument to the Return node which specifies the number of stack
      >   slots to pop upon return in addition to those specified by the Linkage of the
      >   compiled function.
      > - Removed Tail -> Non-Tail fallback in the instruction selector. Since TF now should
      >   handles all tail-call cases except where the return value type differs, this fallback
      >   was not really useful and in fact caused unexpected behavior with variable
      >   sized argument popping, since it wasn't possible to materialize a Return node
      >   with the right pop count from the TailCall without additional context.
      > - Modified existing Return generation to pass a constant zero as the additional
      >   pop argument since the variable pop functionality
      >
      > LOG=N
      
      TBR=bmeurer@chromium.org,mstarzinger@chromium.org,epertoso@chromium.org,danno@chromium.org
      # Not skipping CQ checks because original CL landed more than 1 days ago.
      NOPRESUBMIT=true
      
      Review-Url: https://codereview.chromium.org/2473643002
      Cr-Commit-Position: refs/heads/master@{#40691}
      c61902e0
  16. 31 Oct, 2016 1 commit
    • danno's avatar
      [turbofan] Support variable size argument removal in TF-generated functions · 5319b50c
      danno authored
      This is preparation for using TF to create builtins that handle variable number of
      arguments and have to remove these arguments dynamically from the stack upon
      return.
      
      The gist of the changes:
      - Added a second argument to the Return node which specifies the number of stack
        slots to pop upon return in addition to those specified by the Linkage of the
        compiled function.
      - Removed Tail -> Non-Tail fallback in the instruction selector. Since TF now should
        handles all tail-call cases except where the return value type differs, this fallback
        was not really useful and in fact caused unexpected behavior with variable
        sized argument popping, since it wasn't possible to materialize a Return node
        with the right pop count from the TailCall without additional context.
      - Modified existing Return generation to pass a constant zero as the additional
        pop argument since the variable pop functionality
      
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2446543002
      Cr-Commit-Position: refs/heads/master@{#40678}
      5319b50c
  17. 25 Oct, 2016 1 commit
  18. 21 Oct, 2016 1 commit
    • jgruber's avatar
      [regexp] Add fast-path for global, callable replace · a8e30c0e
      jgruber authored
      This adds a fast-path for calls to RegExp.prototype[@@replace] for cases in
      which the given regexp is unmodified and global, and the given replace argument
      is callable.
      
      The fast-path implementation itself is almost identical to the original JS
      implementation except that it currently does not reuse result_array.
      
      SunSpider/unpack-code relies heavily on this codepath.
      
      BUG=v8:5339
      
      Review-Url: https://chromiumcodereview.appspot.com/2433923003
      Cr-Commit-Position: refs/heads/master@{#40504}
      a8e30c0e
  19. 19 Oct, 2016 1 commit
  20. 18 Oct, 2016 2 commits
  21. 17 Oct, 2016 1 commit
  22. 11 Oct, 2016 1 commit
  23. 30 Sep, 2016 1 commit
    • jgruber's avatar
      [regexp] Port RegExp.prototype.exec to TurboFan · db99bdff
      jgruber authored
      This ports RegExp.prototype.exec to a TurboFan builtin.
      
      LastMatchInfo is now stored on the context in order to be able to access
      it from the stub.
      
      Unmodified RegExp instances go through a fast path of accessing the
      lastIndex property as an in-object field, while modified instances call
      into runtime for lastIndex loads and stores.
      
      Octane/regexp shows slight improvements (between 0 and 5%) with this CL.
      
      BUG=v8:5339
      
      Review-Url: https://codereview.chromium.org/2375953002
      Cr-Commit-Position: refs/heads/master@{#39899}
      db99bdff
  24. 27 Sep, 2016 1 commit
    • ishell's avatar
      [stubs] Port store IC dispatcher to TurboFan. · 23902435
      ishell authored
      This CL introduces StoreICTFStub and StoreICTrampolineTFStub and a switch
      to enable them instead of respective platform stubs.
      
      This should ease the split of StoreIC to StoreGlobalIC and StoreIC.
      
      StubCache tests now exercise both load and store ICs.
      
      BUG=chromium:576312
      
      Review-Url: https://codereview.chromium.org/2163253002
      Cr-Commit-Position: refs/heads/master@{#39751}
      23902435
  25. 21 Sep, 2016 1 commit