1. 09 Jun, 2017 1 commit
    • bjaideep's avatar
      PPC/s390: [builtins] Start refactoring the Apply builtin. · 9385fd40
      bjaideep authored
      Port af76779a
      
      Original Commit Message:
      
          This splits the monolithic Apply builtin into several smaller builtins,
          namely CallVargargs and ConstructVarargs, which accept a length and a
          FixedArray of elements and deal with the actual stack manipulation, and
          CallWithArrayLike / ConstructWithArrayLike that deal with getting the
          elements from the receiver (for Function.prototype.apply, Reflect.apply
          and Reflect.construct), which can now be written using the CSA.
      
          The idea is that these builtins can be reused by TurboFan directly in
          the future when we optimize apply better, and that we can also reuse the
          core logic in the handling of spread calls/constructs.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:4587,v8:5269
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2932833002
      Cr-Commit-Position: refs/heads/master@{#45826}
      9385fd40
  2. 07 Jun, 2017 1 commit
  3. 18 May, 2017 1 commit
    • bjaideep's avatar
      PPC/s390: [turbofan] Avoid allocating rest parameters for spread calls. · f4da4361
      bjaideep authored
      Port bfa319e5
      
      Original Commit Message:
      
          We already had an optimization to turn Function.prototype.apply with
          arguments object, i.e.
      
            function foo() { return bar.apply(this, arguments); }
      
          into a special operator JSCallForwardVarargs, which avoids the
          allocation and deconstruction of the arguments object, but just passes
          along the incoming parameters. We can do the same for rest parameters
          and spread calls/constructs, i.e.
      
            class A extends B {
              constructor(...args) { super(...args); }
            }
      
          or
      
            function foo(...args) { return bar(1, 2, 3, ...args); }
      
          where we basically pass along the parameters (plus maybe additional
          statically known parameters).
      
          For this, we introduce a new JSConstructForwardVarargs operator and
          generalize the CallForwardVarargs builtins that are backing this.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:6407,v8:6278,v8:6344
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2887153004
      Cr-Commit-Position: refs/heads/master@{#45402}
      f4da4361
  4. 21 Apr, 2017 5 commits
  5. 11 Apr, 2017 2 commits
  6. 10 Apr, 2017 1 commit
    • Leszek Swirski's avatar
      [ignition] Add call bytecodes for undefined receiver · 751e8935
      Leszek Swirski authored
      Adds a collection of call bytecodes which have an implicit undefined
      receiver argument, for cases such as global calls where we know that the
      receiver has to be undefined. This way we can skip an LdaUndefined,
      decrease bytecode register pressure, and set a more accurate
      ConvertReceiverMode on the interpreter and TurboFan call.
      
      As a side effect, the "normal" Call bytecode now becomes a rare case
      (only with calls and super property calls), so we get rid of its 0-2
      argument special cases and modify CallProperty[N] to use the
      NotNullOrUndefined ConvertReceiverMode.
      
      Change-Id: I9374a32fefd66fc0251b5193bae7a6b7dc31eefc
      Reviewed-on: https://chromium-review.googlesource.com/463287
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44530}
      751e8935
  7. 07 Apr, 2017 1 commit
    • jgruber's avatar
      [builtins] Introduce new TFC macro and auto-generate TFS descriptors · 9ddfeafe
      jgruber authored
      Split TFS builtins into
      
      * TFC: TF builtins with stub linkage that use a custom interface descriptor
             (e.g. because of a non-standard return size or untagged arguments)
      * TFS: the rest.
      
      Automatically generate interface descriptors for TFS builtins to reduce
      boilerplate involved in setting up stub calls. These are now as simple as
      creating the TFS stub and using CSA::CallBuiltin, no extra work required.
      
      BUG=v8:6116
      
      Review-Url: https://codereview.chromium.org/2777203007
      Cr-Commit-Position: refs/heads/master@{#44490}
      9ddfeafe
  8. 29 Mar, 2017 1 commit
  9. 16 Mar, 2017 1 commit
    • jgruber's avatar
      [regexp] Port RegExpExecStub to CSA (mostly) · 5cc61896
      jgruber authored
      This moves most of the logic contained in RegExpExecStub to CSA.  Benefits are
      mostly easier readability and hackability, and removal of a large chunk of
      platform-specific assembly.
      
      Exit frame construction and the final call remain in RegExpExecStub.
      
      BUG=v8:5339,v8:592
      
      Review-Url: https://codereview.chromium.org/2738413002
      Cr-Commit-Position: refs/heads/master@{#43844}
      5cc61896
  10. 14 Feb, 2017 1 commit
  11. 13 Feb, 2017 4 commits
  12. 07 Feb, 2017 1 commit
  13. 02 Feb, 2017 3 commits
    • bjaideep's avatar
      PPC/s390: [stubs] Also port the CallICStub to CSA. · fecba0dc
      bjaideep authored
      Port d68dfe86
      
      Original Commit Message:
      
          Port the Call feedback machinery from the interpreter to the CallICStub
          as second step to unify the feedback collection. This removes a lot of
          hand-written native code, and makes the runtime miss handler obsolete.
          The next step will be to use the CallICStub from the interpreter as
          well.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:5049
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2670003003
      Cr-Commit-Position: refs/heads/master@{#42896}
      fecba0dc
    • bmeurer's avatar
      [stubs] Also port the CallICStub to CSA. · d68dfe86
      bmeurer authored
      Port the Call feedback machinery from the interpreter to the CallICStub
      as second step to unify the feedback collection. This removes a lot of
      hand-written native code, and makes the runtime miss handler obsolete.
      The next step will be to use the CallICStub from the interpreter as
      well.
      
      Drive-by-fix: Adjust CallIC/CallICTrampoline descriptors names.
      
      R=mvstanton@chromium.org
      BUG=v8:5049
      
      Review-Url: https://codereview.chromium.org/2670843002
      Cr-Commit-Position: refs/heads/master@{#42889}
      d68dfe86
    • bmeurer's avatar
      [stubs] Port CallICTrampolineStub to CodeStubAssembler. · 9432eb5c
      bmeurer authored
      First step to unify CallIC in Ignition, TurboFan/Crankshaft and
      fullcodegen.
      
      R=yangguo@chromium.org
      BUG=v8:5267
      
      Review-Url: https://codereview.chromium.org/2669123002
      Cr-Commit-Position: refs/heads/master@{#42877}
      9432eb5c
  14. 27 Jan, 2017 2 commits
    • bjaideep's avatar
      PPC/s390: [liveedit] reimplement frame restarting. · 9515f7ed
      bjaideep authored
      Port 3f47c63d
      
      Original Commit Message:
      
          Previously, when restarting a frame, we would rewrite all frames
          between the debugger activation and the frame to restart to squash
          them, and replace the return address with that of a builtin to
          leave that rewritten frame, and restart the function by calling it.
      
          We now simply remember the frame to drop to, and upon returning
          from the debugger, we check whether to drop the frame, load the
          new FP, and restart the function.
      
      R=yangguo@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:5587
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2663453004
      Cr-Commit-Position: refs/heads/master@{#42748}
      9515f7ed
    • bjaideep's avatar
      PPC/s390: [turbofan] Introduce JSCallForwardVarargs operator. · e6688728
      bjaideep authored
      Port 69747e26
      
      Original Commit Message:
      
          We turn a JSCallFunction node for
      
            f.apply(receiver, arguments)
      
          into a JSCallForwardVarargs node, when the arguments refers to the
          arguments of the outermost optimized code object, i.e. not an inlined
          arguments, and the apply method refers to Function.prototype.apply,
          and there's no other user of arguments except in frame states.
      
          We also replace the arguments node in the graph with a marker for
          the Deoptimizer similar to Crankshaft to make sure we don't materialize
          unused arguments just for the sake of deoptimization. We plan to replace
          this with a saner EscapeAnalysis based solution soon.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:5267,v8:5726
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2656363002
      Cr-Commit-Position: refs/heads/master@{#42745}
      e6688728
  15. 09 Jan, 2017 1 commit
  16. 29 Dec, 2016 1 commit
  17. 27 Dec, 2016 1 commit
  18. 21 Dec, 2016 1 commit
    • bjaideep's avatar
      PPC/s390: [TypeFeedbackVector] Root literal arrays in function literals slots · 19aa7a20
      bjaideep authored
      Port 93df0940
      
      Original Commit Message:
      
          Literal arrays and feedback vectors for a function can be garbage
          collected if we don't have a rooted closure for the function, which
          happens often. It's expensive to come back from this (recreating
          boilerplates and gathering feedback again), and the cost is
          disproportionate if the function was inlined into optimized code.
      
          To guard against losing these arrays when we need them, we'll now
          create literal arrays when creating the feedback vector for the outer
          closure, and root them strongly in that vector.
      
      R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:5456
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2592043003
      Cr-Commit-Position: refs/heads/master@{#41898}
      19aa7a20
  19. 15 Nov, 2016 1 commit
  20. 25 Oct, 2016 1 commit
    • jgruber's avatar
      [regexp] Remove unused code · 77ddcfb3
      jgruber authored
      This CL removes code that is now unused since the port of regexp.js has been
      completed. Removed functions / classes are:
      
      * regexp.js (GetSubstitution moved to string.js)
      * RegExpConstructResult stub
      * RegExpFlags intrinsic
      * RegExpSource intrinsic
      * RegExpInitializeAndCompile runtime function
      
      BUG=v8:5339
      
      Review-Url: https://codereview.chromium.org/2448463002
      Cr-Commit-Position: refs/heads/master@{#40547}
      77ddcfb3
  21. 12 Oct, 2016 2 commits
  22. 21 Sep, 2016 1 commit
  23. 16 Sep, 2016 1 commit
    • ishell's avatar
      [stubs] Port StoreTransitionStub and ElementsTransitionAndStoreStub to TurboFan. · 130d9893
      ishell authored
      This CL also cleans up related interface descriptors:
      1) unused StoreTransitionDescriptor is removed and VectorStoreTransitionDescriptor is
      renamed to StoreTransitionDescriptor.
      2) on ia32/x87 architectures slot and vector are passed on the stack (dispatcher/handlers
      cleanup will be addressed in a separate CL).
      
      These two stub ports have to be combined in one CL because:
      1) without changing the StoreTransitionDescriptor TF was not able to compile them
      on ia32/x87 (because of lack of registers),
      2) it was not possible to change the descriptor first because Crankshaft was not able
      to deal with the stack allocated parameters in case of a stub failure.
      
      TBR=jkummerow@chromium.org
      BUG=v8:5269
      
      Review-Url: https://codereview.chromium.org/2313093002
      Cr-Commit-Position: refs/heads/master@{#39476}
      130d9893
  24. 08 Sep, 2016 1 commit
  25. 02 Sep, 2016 1 commit
  26. 23 Aug, 2016 1 commit
  27. 03 Aug, 2016 1 commit
  28. 14 Jul, 2016 1 commit