1. 10 Feb, 2016 8 commits
    • mstarzinger's avatar
      [interpreter] CompilationInfo::unoptimized_code only for OSR. · 1986a486
      mstarzinger authored
      The field in question is only needed when the optimizing compiler is
      triggered via OSR. All other paths (e.g. from bytecode stream) should
      not rely on the unoptimized code being present.
      
      R=yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/1685633002
      
      Cr-Commit-Position: refs/heads/master@{#33860}
      1986a486
    • littledan's avatar
      Use a for-of loop in Array.from · defcc642
      littledan authored
      If Array.from is passed an iterable, then it will copy the contents
      to the newly created Array (or subclass). The iteration protocol here
      includes calling IteratorClose if the loop is exited early due to an
      exception thrown. This patch converts Array.from to use a for-of loop
      rather than explicitly invoking the iteration protocol so that, when
      IteratorClose is invoked on early for-of exit, then Array.from will
      call IteratorClose in the appropriate case.
      
      R=neis
      LOG=Y
      BUG=v8:4739
      
      Review URL: https://codereview.chromium.org/1686433003
      
      Cr-Commit-Position: refs/heads/master@{#33859}
      defcc642
    • verwaest's avatar
      Mark null and undefined as undetectable, and use it to handle abstract... · 3ce9e808
      verwaest authored
      Mark null and undefined as undetectable, and use it to handle abstract equality comparison in the generic compare ic
      
      Marking as undetectable makes abstract equality of null, undefined, and
      other undetectable objects easier. Supporting it in the generic compare
      IC significantly speeds up dynamic comparison between those values and
      JSReceivers by not falling back to the runtime.
      
      MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com>
      
      Review URL: https://codereview.chromium.org/1683643002
      
      Cr-Commit-Position: refs/heads/master@{#33858}
      3ce9e808
    • mlippautz's avatar
      [heap] Move to page lookups for SemiSpace, NewSpace, and Heap containment methods · cfbd2561
      mlippautz authored
      Preparing the young generation for (real) non-contiguous backing memory, this
      change removes object masks that are used to compute containment in semi and new
      space. The masks are replaced by lookups for object tags and page headers, where
      possible.
      
      Details:
      - Use the fast checks (page header lookups) for containment in regular code.
      - Use the slow version that masks out the page start adress and iterates all
        pages of a space for debugging/verification.
      - The slow version works for off-heap/unmapped memory.
      - Encapsulate all checks for the old->new barrier in Heap::RecordWrite().
      
      BUG=chromium:581412
      LOG=N
      
      Review URL: https://codereview.chromium.org/1632913003
      
      Cr-Commit-Position: refs/heads/master@{#33857}
      cfbd2561
    • mstarzinger's avatar
      [interpreter] Make it possible to optimize without parse. · 582be2ba
      mstarzinger authored
      This makes sure we can run through the TurboFan pipeline without having
      to parse the source when using the bytecode stream as input. This path
      is now being tested by the BytecodeGraphTester helper.
      
      R=titzer@chromium.org,rmcilroy@chromium.org
      
      Review URL: https://codereview.chromium.org/1679313002
      
      Cr-Commit-Position: refs/heads/master@{#33856}
      582be2ba
    • neis's avatar
      [proxies] Implement spec change to consistency check in [[SetPrototypeOf]]. · ff97dc82
      neis authored
      See https://github.com/tc39/ecma262/pull/331.
      
      R=rossberg
      BUG=
      
      Review URL: https://codereview.chromium.org/1680133002
      
      Cr-Commit-Position: refs/heads/master@{#33855}
      ff97dc82
    • bmeurer's avatar
      [turbofan] No need to load the feedback vector on the JS graph level. · 9ee47bbc
      bmeurer authored
      Fix JSLoadGlobal/JSStoreGlobal, JSLoadNamed/JSStoreNamed and
      JSLoadProperty/JSStoreProperty to take the current function closure
      instead of the type feedback as input, and load the feedback vector
      from the closure as required (in JSGenericLowering). There's still
      JSLoadDynamic left to be done, and then we don't have any machine
      operators in the initial JS graph left.
      
      There'll be more refactoring on the JSGenericLowering in a follow-up
      CL, which takes care of the current code duplication and also tries
      to use the more efficient LoadIC/KeyedLoadIC instead of the current
      LoadICInOptimizedCode/KeyedLoadICInOptimizedCode (and same for store
      ICs) whenever possible.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1683043002
      
      Cr-Commit-Position: refs/heads/master@{#33854}
      9ee47bbc
    • v8-autoroll's avatar
      Update V8 DEPS. · 97579fd7
      v8-autoroll authored
      Rolling v8/build/gyp to 66bbdf4c6b450d55bd9e53fd18d9628a8f328398
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review URL: https://codereview.chromium.org/1686933002
      
      Cr-Commit-Position: refs/heads/master@{#33853}
      97579fd7
  2. 09 Feb, 2016 21 commits
  3. 08 Feb, 2016 11 commits
    • mbrandy's avatar
      PPC: Fix "[compiler] Remove the special case "prototype" load in class literals." · e0dc2cd5
      mbrandy authored
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1675383002
      
      Cr-Commit-Position: refs/heads/master@{#33831}
      e0dc2cd5
    • mbrandy's avatar
      PPC: [turbofan] Add TruncateFloat32ToUint32 operator to Turbofan. · ceaccc91
      mbrandy authored
      Port 2166bd8c
      
      R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1677213002
      
      Cr-Commit-Position: refs/heads/master@{#33830}
      ceaccc91
    • 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
    • binji's avatar
      [wasm] Put the condition last in kExprBrIf. · 7a004a02
      binji authored
      To bring V8 into line with the proposed design changes in:
      
       https://github.com/WebAssembly/design/pull/489
      
      (This CL is forked from https://codereview.chromium.org/1634673002/.
      That CL doesn't merge cleanly, and I can't update it.)
      
      TBR=titzer@chromium.org
      LOG=Y
      BUG=chromium:575167
      
      Review URL: https://codereview.chromium.org/1682443002
      
      Cr-Commit-Position: refs/heads/master@{#33828}
      7a004a02
    • littledan's avatar
      Stage --harmony-species flag, enabling Symbol.species · 43cd128e
      littledan authored
      This patch moves Symbol.species support to the "experimental JavaScript
      features" flag. While @@species is still a performance hit, it doesn't seem
      like it would make the web unusably slow; shipping would still have to
      wait on fixing the performance regression, but staging this version should
      yield valuable web compatibility information.
      
      R=cbruni
      BUG=v8:4093
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1678143002
      
      Cr-Commit-Position: refs/heads/master@{#33827}
      43cd128e
    • littledan's avatar
      Extend subarray web compatibility fix to --harmony-species · e1de522a
      littledan authored
      ES2016 TypedArray subclassing semantics break the Node.js Buffer module,
      also used on the web. I wrote a pull request against the web and Node
      versions to fix the issue, but the pull request has not yet been granted,
      and this is blocking shipping the change. For now, this patch extends the
      web compatibility workaround to the --harmony-species flag, so that
      Symbol.species and associated subclassing semantics can ship independently.
      
      R=cbruni
      BUG=v8:4665
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1678123002
      
      Cr-Commit-Position: refs/heads/master@{#33826}
      e1de522a
    • mbrandy's avatar
      PPC: [turbofan] Add RoundUint32ToFloat32 operator to Turbofan. · 46bf5aa2
      mbrandy authored
      Port 187b3f28
      
      R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1680833002
      
      Cr-Commit-Position: refs/heads/master@{#33825}
      46bf5aa2
    • akos.palfi's avatar
      MIPS: Fix '[interpreter] move the dispatch table off heap.' · 770a1bf5
      akos.palfi authored
      TEST=cctest/test-interpreter/InterpreterTryCatch,
           cctest/test-run-bytecode-graph-builder/BytecodeGraphBuilderTryCatch,
           cctest/test-run-bytecode-graph-builder/BytecodeGraphBuilderTryFinally2
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1673333003
      
      Cr-Commit-Position: refs/heads/master@{#33824}
      770a1bf5
    • mbrandy's avatar
      PPC: New page local store buffer. · 4d85caff
      mbrandy authored
      Port bb883395
      
      Original commit message:
          This replaces the global remembered set with per-page remembered sets.
      
          Each page in the old space, map space, and large object space keeps track of
          the set of slots in the page pointing to the new space.
      
          The data structure for storing slot sets is a two-level bitmap, which allows
          us to remove the store buffer overflow and SCAN_ON_SCAVENGE logic.
      
          Design doc: https://goo.gl/sMKCf7
      
      R=ulan@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=chromium:578883
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1679873003
      
      Cr-Commit-Position: refs/heads/master@{#33823}
      4d85caff
    • alph's avatar
      Unflake CPU profiler tests. · 1b6265ef
      alph authored
      Do not rely on elapsed time to collect enough samples.
      Use CollectSample API function instead.
      
      Remove checks for extra functions present in a profile, as
      there in fact can be lots of native support functions.
      
      BUG=v8:2999
      LOG=N
      
      Review URL: https://codereview.chromium.org/1665303004
      
      Cr-Commit-Position: refs/heads/master@{#33822}
      1b6265ef
    • rmcilroy's avatar
      [Interpreter] Group Ignition mjsunit test failures by error. · fe581185
      rmcilroy authored
      Also replace SKIPS by FAIL to ensure tests are reenabled once they work.
      
      BUG=v8:4680
      LOG=N
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_arm64_dbg,v8_linux_arm_dbg
      
      Review URL: https://codereview.chromium.org/1667323002
      
      Cr-Commit-Position: refs/heads/master@{#33821}
      fe581185