1. 29 Mar, 2016 1 commit
    • jarin's avatar
      Linux perf integration with the new support for JIT. · 82e95f59
      jarin authored
      Difference from --perf-basic-prof:
      - correctly attributes samples when code space gets reused (when unused code object dies and a new code objects is allocated at the same place).
      - outputs compiled machine code for instruction-level profile.
      
      Just like --perf-basic-prof, the file writer is not synchronized (even worse, there is a per-isolate file handle), so we will run into trouble with multiple isolates. However, this patch is still an improvement on --perf-basic-prof, and it should be fine to replace ll-prof.
      
      The patch also introduces experimental support for debug info, but it does not seem to be picked by the perf tool.
      
      Usage:
      
      You need the perf tool from Linux kernel >4.5. Then run:
      
      $ perf record -k mono d8 --perf-prof <your JS file>
      $ perf inject -j -i perf.data -o perf.data.jitted
      $ perf report -i perf.data.jitted
      
      Some explanations:
      The "-k mono" switch from "perf record" tells the perf tool to use the monotonic clock for perf sample timestamping. The "perf inject -j" command injects the collected code events into the perf data file, writing the output into perf.data.jitted. The perf report command then creates the report.
      
      Review URL: https://codereview.chromium.org/1809203007
      
      Cr-Commit-Position: refs/heads/master@{#35091}
      82e95f59
  2. 25 Mar, 2016 1 commit
    • adamk's avatar
      Remove --harmony-regexps flag · 06403470
      adamk authored
      It's been on since M49. Also moved tests from harmony -> es6,
      one of which was merged with another test of the same name.
      
      While moving stuff over to regexp.js, I also noticed that there
      were unused calls to %FunctionSetName and %SetNativeFlag (those
      calls are already handled by InstallGetter()).
      
      Review URL: https://codereview.chromium.org/1838563003
      
      Cr-Commit-Position: refs/heads/master@{#35076}
      06403470
  3. 24 Mar, 2016 4 commits
    • littledan's avatar
      Add ES2015 RegExp full subclassing semantics behind a flag · 92a571e5
      littledan authored
      This patch implements ES2015 RegExp subclassing semantics, namely the
      hardest part where RegExp.prototype.exec and certain flag getters can
      be overridden in order to provide different behavior. This change is
      hidden behind a new flag, --harmony-regexp-exec. The flag guards the
      behavior by installing entirely different implementations of the
      methods which follow the new semantics.
      
      Preliminary performance tests show a 3-4x regression in the Octane
      RegExp benchmark. The new code doesn't call out into several fast
      paths that the old code supported, so this is expected.
      
      The patch is tested mostly by test262, where most RegExp tests are fixed,
      with the exception of deliberate spec violations for web compatibility,
      and for the 'sticky' flag, which is not dynamically read by this patch
      in all cases but rather statically compiled into the RegExp. The latter
      will require a follow-on patch to implement. A small additional set of
      tests verifies one particular case, mostly to check whether the flag
      mechanism works.
      
      R=adamk,yangguo@chromium.org
      LOG=Y
      BUG=v8:4602
      
      Review URL: https://codereview.chromium.org/1596483005
      
      Cr-Commit-Position: refs/heads/master@{#35068}
      92a571e5
    • caitpotter88's avatar
      [esnext] implement String padding proposal · 1a272ba2
      caitpotter88 authored
      Spec http://tc39.github.io/proposal-string-pad-start-end/
      
      BUG=
      LOG=Y
      R=adamk@chromium.org, littledan@chromium.org
      
      Review URL: https://codereview.chromium.org/1700003002
      
      Cr-Commit-Position: refs/heads/master@{#35061}
      1a272ba2
    • rmcilroy's avatar
      Revert of [Interpreter] Remove separate Ignition snapshot. (patchset #2... · bdf953b5
      rmcilroy authored
      Revert of [Interpreter] Remove separate Ignition snapshot. (patchset #2 id:20001 of https://codereview.chromium.org/1833643002/ )
      
      Reason for revert:
      Makes nosnap bots timeout due to having to rebuild bytecode handlers.
      
      Original issue's description:
      > [Interpreter] Remove separate Ignition snapshot.
      >
      > Removes the seperate Ignition snapshot and build the Ignition bytecode
      > handlers in the default snapshot.
      >
      > BUG=v8:4280
      > LOG=N
      >
      > Committed: https://crrev.com/1798f3fe84faff32ba44e09f6aed79245dd98d80
      > Cr-Commit-Position: refs/heads/master@{#35058}
      
      TBR=machenbach@google.com,yangguo@chromium.org,mstarzinger@chromium.org,machenbach@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4280
      
      Review URL: https://codereview.chromium.org/1827143002
      
      Cr-Commit-Position: refs/heads/master@{#35059}
      bdf953b5
    • rmcilroy's avatar
      [Interpreter] Remove separate Ignition snapshot. · 1798f3fe
      rmcilroy authored
      Removes the seperate Ignition snapshot and build the Ignition bytecode
      handlers in the default snapshot.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1833643002
      
      Cr-Commit-Position: refs/heads/master@{#35058}
      1798f3fe
  4. 22 Mar, 2016 1 commit
  5. 21 Mar, 2016 3 commits
    • adamk's avatar
      Remove runtime flags for Proxy and Reflect · 249bf75e
      adamk authored
      Both of them shipped in Chrome 49 without incident.
      
      Also move relevant tests from harmony/ to es6/.
      
      Review URL: https://codereview.chromium.org/1815773002
      
      Cr-Commit-Position: refs/heads/master@{#34964}
      249bf75e
    • oth's avatar
      [interpreter] Add support for scalable operands. · 48d082af
      oth authored
      This change introduces wide prefix bytecodes to support wide (16-bit)
      and extra-wide (32-bit) operands. It retires the previous
      wide-bytecodes and reduces the number of operand types.
      
      Operands are now either scalable or fixed size. Scalable operands
      increase in width when a bytecode is prefixed with wide or extra-wide.
      
      The bytecode handler table is extended to 256*3 entries. The
      first 256 entries are used for bytecodes with 8-bit operands,
      the second 256 entries are used for bytecodes with operands that
      scale to 16-bits, and the third group of 256 entries are used for
      bytecodes with operands that scale to 32-bits.
      
      LOG=N
      BUG=v8:4747,v8:4280
      
      Review URL: https://codereview.chromium.org/1783483002
      
      Cr-Commit-Position: refs/heads/master@{#34955}
      48d082af
    • jkummerow's avatar
      [crankshaft] Delete unused Hydrogen-BCH code · 6703cce1
      jkummerow authored
      Bounds check hoisting was known to be buggy and has never been turned on.
      Since Crankshaft is deprecated, nobody is going to spend time fixing it,
      so let's just get rid of it.
      
      BUG=v8:4155,v8:4849
      LOG=n
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1823623002
      
      Cr-Commit-Position: refs/heads/master@{#34948}
      6703cce1
  6. 17 Mar, 2016 4 commits
  7. 10 Mar, 2016 2 commits
  8. 08 Mar, 2016 1 commit
  9. 07 Mar, 2016 7 commits
  10. 04 Mar, 2016 1 commit
  11. 02 Mar, 2016 1 commit
  12. 01 Mar, 2016 2 commits
  13. 29 Feb, 2016 1 commit
  14. 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
  15. 25 Feb, 2016 1 commit
  16. 24 Feb, 2016 1 commit
    • ulan's avatar
      Revert of Replace slots buffer with remembered set. (patchset #14 id:250001 of... · 9146bc5e
      ulan authored
      Revert of Replace slots buffer with remembered set. (patchset #14 id:250001 of https://codereview.chromium.org/1703823002/ )
      
      Reason for revert:
      Revert because of canary crashes: crbug.com/589413
      
      Original issue's description:
      > Replace slots buffer with remembered set.
      >
      > Slots pointing to evacuation candidates are now recorded in the new RememberedSet<OLD_TO_OLD>.
      >
      > The remembered set is extended to support typed slots.
      >
      > During parallel evacuation all migration slots are recorded in local slots buffers.
      > After evacuation all local slots are added to the remembered set.
      >
      > BUG=chromium:578883
      > LOG=NO
      >
      > Committed: https://crrev.com/2285a99ef6f7d52f4f0c4d88a7db4224443ee152
      > Cr-Commit-Position: refs/heads/master@{#34212}
      
      TBR=jochen@chromium.org,hpayer@chromium.org,mlippautz@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:578883
      
      Review URL: https://codereview.chromium.org/1725073003
      
      Cr-Commit-Position: refs/heads/master@{#34238}
      9146bc5e
  17. 23 Feb, 2016 1 commit
    • ulan's avatar
      Replace slots buffer with remembered set. · 2285a99e
      ulan authored
      Slots pointing to evacuation candidates are now recorded in the new RememberedSet<OLD_TO_OLD>.
      
      The remembered set is extended to support typed slots.
      
      During parallel evacuation all migration slots are recorded in local slots buffers.
      After evacuation all local slots are added to the remembered set.
      
      BUG=chromium:578883
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1703823002
      
      Cr-Commit-Position: refs/heads/master@{#34212}
      2285a99e
  18. 22 Feb, 2016 1 commit
    • littledan's avatar
      Remove Reflect.enumerate · 0b53b7d3
      littledan authored
      The Proxy enumerate trap and Reflect.enumerate are removed from the
      ES2016 draft specification. This patch removes the Reflect.enumerate
      function, and a follow-on patch will be responsible for the Proxy
      trap changes.
      
      R=adamk
      LOG=Y
      BUG=v8:4768
      
      Review URL: https://codereview.chromium.org/1721453002
      
      Cr-Commit-Position: refs/heads/master@{#34196}
      0b53b7d3
  19. 19 Feb, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Remove the JSContextRelaxation reducer. · 8a7186b8
      bmeurer authored
      This reducer doesn't really add value, because:
      
       (a) it is only concerned with JSCallFunction and JSToNumber, but when
           we get to it, all JSCallFunction nodes will have been replaced by
           Call nodes, and in the not so far future, we will also have
           replaced almost all JSToNumber nodes with better code,
       (b) and the reducer tries to be smart and use one of the outermost
           contexts, but that might not be beneficial always; actually it
           might even create longer live ranges and lead to more spilling
           in some cases.
      
      But most importantly, the JSContextRelaxation currently blocks inlining
      based on SharedFunctionInfo, because it requires the inliner to check
      the native context, which in turn requires JSFunction knowledge. So I'm
      removing this reducer for now to unblock the more important inliner
      changes.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1715633002
      
      Cr-Commit-Position: refs/heads/master@{#34139}
      8a7186b8
  20. 16 Feb, 2016 2 commits
    • ulan's avatar
      Add a generic remembered set class. · 4fdc19ae
      ulan authored
      This new class provides a unified interface for recording and iterating slots in store and slots buffers:
      
      RememberedSet<OLD_TO_NEW>::Insert(page, slot);
      RememberedSet<OLD_TO_OLD>::Insert(page, slot);
      
      RememberedSet<OLD_TO_NEW>::Iterate(heap, callback);
      RememberedSet<OLD_TO_OLD>::Iterate(heap, callback);
      
      After this change the store buffer is responsible only for collecting slots from the generated code.
      
      Subsequent CLs will remove the slots buffer.
      
      BUG=chromium:578883
      LOG=NO
      
      Review URL: https://codereview.chromium.org/1683653002
      
      Cr-Commit-Position: refs/heads/master@{#34031}
      4fdc19ae
    • jarin's avatar
      Move FieldType to separate h/cc files. · 75cdb913
      jarin authored
      Review URL: https://codereview.chromium.org/1700923002
      
      Cr-Commit-Position: refs/heads/master@{#34026}
      75cdb913
  21. 10 Feb, 2016 2 commits
    • 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
    • yangguo's avatar
      [json parser] add position to error message. · 35b6ca25
      yangguo authored
      R=jochen@chromium.org, verwaest@chromium.org
      BUG=chromium:585724
      LOG=N
      
      Review URL: https://codereview.chromium.org/1681513002
      
      Cr-Commit-Position: refs/heads/master@{#33864}
      35b6ca25
  22. 09 Feb, 2016 1 commit