1. 03 Aug, 2016 1 commit
  2. 14 Jul, 2016 1 commit
  3. 06 Jul, 2016 1 commit
  4. 15 Jun, 2016 1 commit
  5. 10 Jun, 2016 1 commit
  6. 08 Jun, 2016 1 commit
  7. 02 Jun, 2016 2 commits
  8. 24 May, 2016 1 commit
  9. 17 May, 2016 1 commit
    • jyan's avatar
      PPC/S390: [es6] Reintroduce the instanceof operator in the backends. · e9aad72f
      jyan authored
      port 551e0aa1
      
      Original Commit Messag:
        This adds back the instanceof operator support in the backends and
        introduces a @@hasInstance protector cell on the isolate that guards the
        fast path for the InstanceOfStub. This way we recover the ~10%
        regression on Octane EarleyBoyer in Crankshaft and greatly improve
        TurboFan and Ignition performance of instanceof.
      
      R=bmeurer@chromium.org, ishell@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      TBR=hpayer@chromium.org,rossberg@chromium.org
      BUG=chromium:597249, v8:4447
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1989523002
      Cr-Commit-Position: refs/heads/master@{#36290}
      e9aad72f
  10. 04 May, 2016 1 commit
  11. 03 May, 2016 1 commit
  12. 02 May, 2016 1 commit
    • bryleun's avatar
      S390: [turbofan] Run everything after representation selection concurrently. · 5d84567a
      bryleun authored
          Port d1b3d426
      
          Original commit message:
      
              Further refactor the pipeline to even run the first scheduler (part of
              the effect control linearization) concurrently. This temporarily
              disables most of the write barrier elimination, but we will get back to
              that later.
      
              Drive-by-fix: Remove the dead code from ChangeLowering, and stack
              allocate the Typer in the pipeline. Also migrate the AllocateStub to a
              native code builtin, so that we have the code object + a handle to it
              available all the time.
      
          R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/1941783003
      Cr-Commit-Position: refs/heads/master@{#35950}
      5d84567a
  13. 22 Apr, 2016 1 commit
  14. 20 Apr, 2016 2 commits
  15. 18 Apr, 2016 1 commit
  16. 16 Apr, 2016 2 commits
  17. 15 Apr, 2016 1 commit
    • jyan's avatar
      S390: [Atomics] code stubs for atomic operations · 146400ae
      jyan authored
      Port 5e9ddf6c
      
      Original commit message:
          * New atomic code stubs for x64, ia32, arm, arm64
          * Add convenience functions JumpIfNotValidSmiValue, JumpIfUintNotValidSmiValue
            to macro-assembler-ia32 (API based on x64 macro assembler)
          * Remove runtime implementation of Atomics.load, the code stub should always be
            called instead
          * Add new test to mjsunit atomics test; check that Smi values of different
            sizes are supported when possible, else fall back to HeapNumbers
      
          These changes were needed to add another codestub:
          * Bump kStubMajorKeyBits from 7 to 8
          * Reduce ScriptContextFieldStub::kSlotIndexBits from 13 to 12
      
      R=binji@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
      BUG=v8:4614
      LOG=N
      
      Review URL: https://codereview.chromium.org/1882733008
      
      Cr-Commit-Position: refs/heads/master@{#35537}
      146400ae
  18. 12 Apr, 2016 1 commit
  19. 06 Apr, 2016 1 commit
    • jyan's avatar
      S390: [generators] Decouple generator resume from fullcodegen. · 41a92985
      jyan authored
      Port 974721c6
      
      Original commit message:
          Introduce a ResumeGeneratorTrampoline, which does the actual stack state
          reconstruction (currently always restores a fullcodegen frame), and
          introduce appropriate TurboFan builtins for %GeneratorPrototype%.next,
          %GeneratorPrototype%.return and %GeneratorPrototype%.throw based on
          this native builtin.
      
          Also unify the flooding in case of step-in to always work based on
          JSFunction and remove the special casing for JSGeneratorObject.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
      BUG=chromium:513471
      LOG=n
      
      Review URL: https://codereview.chromium.org/1870483002
      
      Cr-Commit-Position: refs/heads/master@{#35316}
      41a92985
  20. 23 Mar, 2016 2 commits
  21. 21 Mar, 2016 1 commit
    • bmeurer's avatar
      [stubs] Unify the type conversion call interface descriptors. · 524d0194
      bmeurer authored
      Up until now all type conversions (i.e. ToNumber, ToString and friends)
      had their own specific call interface descriptors, where some of them
      had to match (i.e. ToString and NumberToString have to use the same
      argument register). Instead of all the different descriptors, it's
      sufficient to have a single TypeConversionDescriptor instead.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1823523002
      
      Cr-Commit-Position: refs/heads/master@{#34916}
      524d0194
  22. 15 Mar, 2016 1 commit
  23. 09 Mar, 2016 3 commits
    • vogelheim's avatar
      Rework CallApi*Stubs. · 5096492f
      vogelheim authored
      - Eliminate stubs with a variable number of arguments.
        (That only worked due to their very limited use. These
         stubs' interface descriptors were basically lying
         about their number of args, which will fail when used
         generically.)
      - Fix all CallApi*Stubs' interface descriptors to no
        longer lie about their arguments.
      - Unify CallApi*Stub, for * in Function, Accessor,
        FunctionWithFixedArgs.
        (Since these are now all doing the same thing.)
      - Rename the unified stub (and interface descriptors) to
        *ApiCallback*, since that's really what they're doing.
      - Refuse inlining an API callback if its number of
        parameters exceeds the supported number of args.
      
      BUG=
      
      Committed: https://crrev.com/d238b953a474272c0e3ea22ef6a9b63fa9729340
      Cr-Commit-Position: refs/heads/master@{#34614}
      
      Review URL: https://codereview.chromium.org/1748123003
      
      Cr-Commit-Position: refs/heads/master@{#34627}
      5096492f
    • vogelheim's avatar
      Revert of Rework CallApi*Stubs. (patchset #5 id:100001 of... · 52a741d1
      vogelheim authored
      Revert of Rework CallApi*Stubs. (patchset #5 id:100001 of https://codereview.chromium.org/1748123003/ )
      
      Reason for revert:
      Breaks Chromium.
      
      Original issue's description:
      > Rework CallApi*Stubs.
      >
      > - Eliminate stubs with a variable number of arguments.
      >   (That only worked due to their very limited use. These
      >    stubs' interface descriptors were basically lying
      >    about their number of args, which will fail when used
      >    generically.)
      > - Fix all CallApi*Stubs' interface descriptors to no
      >   longer lie about their arguments.
      > - Unify CallApi*Stub, for * in Function, Accessor,
      >   FunctionWithFixedArgs.
      >   (Since these are now all doing the same thing.)
      > - Rename the unified stub (and interface descriptors) to
      >   *ApiCallback*, since that's really what they're doing.
      > - Refuse inlining an API callback if its number of
      >   parameters exceeds the supported number of args.
      >
      > BUG=
      >
      > Committed: https://crrev.com/d238b953a474272c0e3ea22ef6a9b63fa9729340
      > Cr-Commit-Position: refs/heads/master@{#34614}
      
      TBR=danno@chromium.org,jkummerow@chromium.org,mstarzinger@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review URL: https://codereview.chromium.org/1775933005
      
      Cr-Commit-Position: refs/heads/master@{#34624}
      52a741d1
    • vogelheim's avatar
      Rework CallApi*Stubs. · d238b953
      vogelheim authored
      - Eliminate stubs with a variable number of arguments.
        (That only worked due to their very limited use. These
         stubs' interface descriptors were basically lying
         about their number of args, which will fail when used
         generically.)
      - Fix all CallApi*Stubs' interface descriptors to no
        longer lie about their arguments.
      - Unify CallApi*Stub, for * in Function, Accessor,
        FunctionWithFixedArgs.
        (Since these are now all doing the same thing.)
      - Rename the unified stub (and interface descriptors) to
        *ApiCallback*, since that's really what they're doing.
      - Refuse inlining an API callback if its number of
        parameters exceeds the supported number of args.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1748123003
      
      Cr-Commit-Position: refs/heads/master@{#34614}
      d238b953
  24. 26 Feb, 2016 1 commit
    • joransiu's avatar
      S390: Initial impl of S390 asm, masm, code-stubs,... · 23cf6592
      joransiu authored
      Initial commit with the bulk of the src/s390/* changes
      along with associated changes to the build toolchain for
      the new files.
      
      A minor update to V8PRIuPTR definition for Mac OS X
      affecting 32-bit S390 sim compilations.
      
      R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1725243004
      
      Cr-Commit-Position: refs/heads/master@{#34331}
      23cf6592
  25. 24 Feb, 2016 1 commit
    • mbrandy's avatar
      PPC: [compiler] Drop the CompareNilIC. · 546ea6b8
      mbrandy authored
      Port 666aec03
      
      Original commit message:
          Since both null and undefined are also marked as undetectable now, we
          can just test that bit instead of having the CompareNilIC try to collect
          feedback to speed up the general case (without the undetectable bit
          being used).
      
          Drive-by-fix: Update the type system to match the new handling of
          undetectable in the runtime.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1733663003
      
      Cr-Commit-Position: refs/heads/master@{#34266}
      546ea6b8
  26. 19 Feb, 2016 1 commit
    • mbrandy's avatar
      PPC: [stubs] Introduce a dedicated FastNewObjectStub. · a509b105
      mbrandy authored
      Port ba2077aa
      
      Original commit message:
          Move the already existing fast case for %NewObject into a dedicated
          FastNewObjectStub that we can utilize in places where we would otherwise
          fallback to %NewObject immediately, which is rather expensive.
      
          Also use FastNewObjectStub as the generic implementation of JSCreate,
          which should make constructor inlining based on SharedFunctionInfo (w/o
          specializing to a concrete closure) viable soon.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1714123002
      
      Cr-Commit-Position: refs/heads/master@{#34169}
      a509b105
  27. 15 Feb, 2016 1 commit
  28. 12 Feb, 2016 2 commits
    • mbrandy's avatar
      PPC: [runtime] Introduce FastNewStrictArgumentsStub to optimize strict arguments. · fb10f8fa
      mbrandy authored
      Port 09d84535
      
      Original commit message:
          The FastNewStrictArgumentsStub is very similar to the recently added
          FastNewRestParameterStub, it's actually almost a copy of it, except that
          it doesn't have the fast case we have for the empty rest parameter. This
          patch improves strict arguments in TurboFan and fullcodegen by up to 10x
          compared to the previous version.
      
          Also introduce proper JSSloppyArgumentsObject and JSStrictArgumentsObject
          for the in-object properties instead of having them as constants in the
          Heap class.
      
          Drive-by-fix: Use this stub and the FastNewRestParameterStub in the
          interpreter to avoid the runtime call overhead for strict arguments
          and rest parameter creation.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1696743002
      
      Cr-Commit-Position: refs/heads/master@{#33963}
      fb10f8fa
    • bmeurer's avatar
      [runtime] Kill %Arguments and %ArgumentsLength. · 98aec4a7
      bmeurer authored
      This removes support for the %Arguments and %ArgumentsLength runtime
      entries and their intrinsic counterparts. If you need variable arguments
      in any builtin, either use (strict) arguments object or rest parameters,
      which are both compositional across inlining (in TurboFan), and not that
      much slower compared to the %_Arguments hackery.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1688163004
      
      Cr-Commit-Position: refs/heads/master@{#33943}
      98aec4a7
  29. 10 Feb, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Make InterpreterAssembler a subclass of CodeStubAssembler. · d1c28849
      rmcilroy authored
      Moves InterpreterAssembler out of the compiler directory and into the
      interpreter directory. Makes InterpreterAssembler as subclass of
      CodeStubAssembler.
      
      As part of this change, the special bytecode dispatch linkage type
      is removed and instead we use a InterfaceDispatchDescriptor and
      a normal CodeStub linkage type.
      
      Removes a bunch of duplicated logic in InterpreterAssembler and
      instead uses the CodeStubAssembler logic. Refactors Interpreter
      with these changes.
      
      Modifies CodeStubAssembler to add the extra operations required
      by the Interpreter (extra call types, raw memory access and some extra
      binary ops). Also adds the ability for subclasses to add extra
      prologue and epilogue operations around calls, which is required
      for the Interpreter.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1673333004
      
      Cr-Commit-Position: refs/heads/master@{#33873}
      d1c28849
  30. 08 Feb, 2016 1 commit
    • mbrandy's avatar
      PPC: [runtime] Optimize and unify rest parameters. · 605aced0
      mbrandy authored
      Port 3ef573e9
      
      Original commit message:
          Replace the somewhat awkward RestParamAccessStub, which would always
          call into the runtime anyway with a proper FastNewRestParameterStub,
          which is basically based on the code that was already there for strict
          arguments object materialization. But for rest parameters we could
          optimize even further (leading to 8-10x improvements for functions with
          rest parameters), by fixing the internal formal parameter count:
      
          Every SharedFunctionInfo has a formal_parameter_count field, which
          specifies the number of formal parameters, and is used to decide whether
          we need to create an arguments adaptor frame when calling a function
          (i.e. if there's a mismatch between the actual and expected parameters).
          Previously the formal_parameter_count included the rest parameter, which
          was sort of unfortunate, as that meant that calling a function with only
          the non-rest parameters still required an arguments adaptor (plus some
          other oddities). Now with this CL we fix, so that we do no longer
          include the rest parameter in that count. Thereby checking for rest
          parameters is very efficient, as we only need to check whether there is
          an arguments adaptor frame, and if not create an empty array, otherwise
          check whether the arguments adaptor frame has more parameters than
          specified by the formal_parameter_count.
      
          The FastNewRestParameterStub is written in a way that it can be directly
          used by Ignition as well, and with some tweaks to the TurboFan backends
          and the CodeStubAssembler, we should be able to rewrite it as
          TurboFanCodeStub in the near future.
      
          Drive-by-fix: Refactor and unify the CreateArgumentsType which was
          different in TurboFan and Ignition; now we have a single enum class
          xwhich is used in both TurboFan and Ignition.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:2159
      LOG=n
      
      Review URL: https://codereview.chromium.org/1677223002
      
      Cr-Commit-Position: refs/heads/master@{#33829}
      605aced0
  31. 22 Jan, 2016 1 commit
    • mbrandy's avatar
      PPC: [stubs] Introduce ToNameStub to implement %_ToName. · 12ac11e9
      mbrandy authored
      Port a0878333
      
      Original commit message:
          We already had hand-written optimized code for %_ToName in fullcodegen,
          but the optimizing compilers always went to the runtime for %_ToName,
          which is pretty bad for many of our builtins. So this CL moves the
          existing native code to a ToNameStub (similar to the existing
          ToStringStub), and uses the ToNameStub consistently in all compilers to
          actually implement %_ToName.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1620313004
      
      Cr-Commit-Position: refs/heads/master@{#33476}
      12ac11e9
  32. 18 Jan, 2016 1 commit
  33. 05 Jan, 2016 1 commit