1. 18 May, 2016 2 commits
  2. 13 May, 2016 1 commit
  3. 12 May, 2016 1 commit
    • oth's avatar
      [interpreter] Introduce bytecode generation pipeline. · 02b7373a
      oth authored
      This change introduces a pipeline for the final stages of
      bytecode generation.
      
      The peephole optimizer is made distinct from the BytecodeArrayBuilder.
      
      A new BytecodeArrayWriter is responsible for writing bytecode. It
      also keeps track of the maximum register seen and offers a potentially
      smaller frame size.
      
      R=rmcilroy@chromium.org
      LOG=N
      BUG=v8:4280
      
      Review-Url: https://codereview.chromium.org/1947403002
      Cr-Commit-Position: refs/heads/master@{#36220}
      02b7373a
  4. 09 May, 2016 1 commit
  5. 02 May, 2016 1 commit
  6. 21 Apr, 2016 1 commit
    • mstarzinger's avatar
      [profiler] Remove obsolete CompilationInfo argument. · 6f43e1f5
      mstarzinger authored
      This removes the CompilationInfo argument from one of the logging
      functions where it is unused. The long-term goal is to not pass around
      the CompilationInfo at all. The assumption that the CompilationInfo is
      available is incompatible with serialized code, where compilation has
      happened during building time of V8 itself.
      
      R=yangguo@chromium.org
      
      Review URL: https://codereview.chromium.org/1901353003
      
      Cr-Commit-Position: refs/heads/master@{#35705}
      6f43e1f5
  7. 18 Apr, 2016 1 commit
    • ssanfilippo's avatar
      Portable Linux perf map formatting. · 15defcc4
      ssanfilippo authored
      Linux perf expects hex literals without a leading 0x, while some
      implementations of printf might prepend one when using the %p format
      for pointers, leading to wrongly formatted JIT symbols maps.
      
      Instead, use V8PRIxPTR format string and cast pointer to uintpr_t,
      since we have control over the exact output format of integers.
      
      LOG=N
      
      Review URL: https://codereview.chromium.org/1885033005
      
      Cr-Commit-Position: refs/heads/master@{#35571}
      15defcc4
  8. 12 Apr, 2016 1 commit
  9. 11 Apr, 2016 2 commits
  10. 08 Apr, 2016 2 commits
    • jfb's avatar
      Revert of Fix printf formats (patchset #8 id:140001 of... · 4c4fdc2d
      jfb authored
      Revert of Fix printf formats (patchset #8 id:140001 of https://codereview.chromium.org/1869433004/ )
      
      Reason for revert:
      One small issue easily fixed here: https://codereview.chromium.org/1867333003/
      
      But it looks like MSVS 2013 doesn't like some of the formats and exists with the unhelpful:
      Stderr:
      f:\dd\vctools\crt\crtw32\stdio\output.c(1125) : Assertion failed: ("Incorrect
      format specifier", 0)
      
      It's easier to revert for now, I'll dig more into the docs:
      https://msdn.microsoft.com/en-us/library/56e442dc(v=vs.120).aspx
      https://msdn.microsoft.com/en-us/library/tcxf1dw6(v=vs.120).aspx
      
      And then resubmit, making sure I run these bots.
      
      Original issue's description:
      > Fix printf formats
      >
      > The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL:
      >
      >  - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h.
      >  - Uses it appropriately.
      >  - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done).
      >  - Fixes a bunch of incorrect formats.
      >
      > R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org
      >
      > Committed: https://crrev.com/6ebf9fbb93d31f9be41156a3325d58704ed4933d
      > Cr-Commit-Position: refs/heads/master@{#35365}
      
      TBR=jochen@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,ahaas@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1867383002
      
      Cr-Commit-Position: refs/heads/master@{#35366}
      4c4fdc2d
    • jfb's avatar
      Fix printf formats · 6ebf9fbb
      jfb authored
      The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL:
      
       - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h.
       - Uses it appropriately.
       - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done).
       - Fixes a bunch of incorrect formats.
      
      R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org
      
      Review URL: https://codereview.chromium.org/1869433004
      
      Cr-Commit-Position: refs/heads/master@{#35365}
      6ebf9fbb
  11. 05 Apr, 2016 2 commits
  12. 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
  13. 21 Mar, 2016 1 commit
    • 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
  14. 10 Mar, 2016 1 commit
    • joransiu's avatar
      S390: Platform specific includes in common files · daea0e75
      joransiu authored
      Add S390 platform specific \#includes across various common files.
      Add S390 CPU features to enum.
      Add S390 implementation to extract sp/fp/pc from signal context.
      
      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/1777593003
      
      Cr-Commit-Position: refs/heads/master@{#34674}
      daea0e75
  15. 09 Mar, 2016 1 commit
  16. 08 Mar, 2016 1 commit
  17. 04 Mar, 2016 3 commits
  18. 02 Mar, 2016 1 commit
  19. 27 Feb, 2016 1 commit
  20. 26 Feb, 2016 2 commits
    • rmcilroy's avatar
      [Interpreter] Add support for cpu profiler logging. · cb29f9cd
      rmcilroy authored
      Adds support for cpu profiler logging to the interpreter. Modifies the
      the API to be passed AbstractCode objects instead of Code objects, and
      adds extra functions to AbstractCode which is required by log.cc and
      cpu-profiler.cc.
      
      The main change in sampler.cc is to determine if a stack frame is an
      interpreter stack frame, and if so, use the bytecode address as the pc
      for that frame. This allows sampling of bytecode functions. This
      requires adding support to SafeStackIterator to determine if a frame is
      interpreted, which we do by checking the PC against pre-stored addresses
      for the start and end of interpreter entry builtins.
      
      Also removes CodeDeleteEvents which are dead code and haven't
      been reported for some time.
      
      Still to do is tracking source positions which will be done in a
      followup CL.
      
      BUG=v8:4766
      LOG=N
      
      Review URL: https://codereview.chromium.org/1728593002
      
      Cr-Commit-Position: refs/heads/master@{#34321}
      cb29f9cd
    • adamk's avatar
      Revert of [compiler] Drop the CompareNilIC. (patchset #4 id:60001 of... · fca68bac
      adamk authored
      Revert of [compiler] Drop the CompareNilIC. (patchset #4 id:60001 of https://codereview.chromium.org/1722193002/ )
      
      Reason for revert:
      Speculative revert in attempt to fix #2 crasher on canary.
      
      Original issue's description:
      > [compiler] Drop the CompareNilIC.
      >
      > 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=danno@chromium.org
      >
      > Committed: https://crrev.com/666aec0348c8793e61c8633dee7ad29a514239ba
      > Cr-Commit-Position: refs/heads/master@{#34237}
      
      TBR=danno@chromium.org,verwaest@chromium.org,bmeurer@chromium.org
      LOG=y
      BUG=chromium:589897
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1743433002
      
      Cr-Commit-Position: refs/heads/master@{#34308}
      fca68bac
  21. 24 Feb, 2016 1 commit
    • bmeurer's avatar
      [compiler] Drop the CompareNilIC. · 666aec03
      bmeurer authored
      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=danno@chromium.org
      
      Review URL: https://codereview.chromium.org/1722193002
      
      Cr-Commit-Position: refs/heads/master@{#34237}
      666aec03
  22. 18 Feb, 2016 1 commit
  23. 18 Jan, 2016 1 commit
  24. 04 Dec, 2015 1 commit
  25. 01 Dec, 2015 1 commit
  26. 28 Oct, 2015 1 commit
    • mbrandy's avatar
      Fix external callback logging in profiler. · 2bd5914b
      mbrandy authored
      For platforms that use function descriptors (currently AIX and
      PPC64BE), log an external callback's entrypoint address rather than
      its function descriptor address.  This allows proper lookup in the
      tick processor's symbol table.
      
      R=jkummerow@chromium.org, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1409993006
      
      Cr-Commit-Position: refs/heads/master@{#31633}
      2bd5914b
  27. 13 Oct, 2015 1 commit
  28. 09 Oct, 2015 2 commits
  29. 07 Oct, 2015 1 commit
    • jkummerow's avatar
      Revert of improve perf_basic_prof filename reporting (patchset #1 id:1 of... · e03df522
      jkummerow authored
      Revert of improve perf_basic_prof filename reporting (patchset #1 id:1 of https://codereview.chromium.org/1388543002/ )
      
      Reason for revert:
      Suspected to cause crbug.com/539892
      
      Original issue's description:
      > improve perf_basic_prof filename reporting
      >
      > The buffer used for appending filenames to the string printed to the
      > perf_basic_prof log was unnecessarily too small. Bump it up to be at least
      > kUtf8BufferSize.
      >
      > Truncation of filenames makes it really hard to work with profiles gathered on
      > Node.js. Because of the way Node.js works, you can have node module dependencies
      > in deeply nested directories. The last thing you want when investigating a
      > performance problem is to have script names be truncated.
      >
      > This patch is a stop-gap. Ideally, I want no truncation of the filename at all
      > and use a dynamically growing buffer. That would be a larger change, and I
      > wanted to have a quick fix available that can be back-ported to Node.js LTS
      > release.
      >
      > R=yangguo@chromium.org,yurys@chromium.org
      > BUG=
      >
      > Committed: https://crrev.com/03ef3cd004c2fd31ae7e48772f106df67b8c2feb
      > Cr-Commit-Position: refs/heads/master@{#31092}
      
      TBR=yangguo@chromium.org,yurys@chromium.org,ofrobots@google.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review URL: https://codereview.chromium.org/1390923004
      
      Cr-Commit-Position: refs/heads/master@{#31137}
      e03df522
  30. 03 Oct, 2015 1 commit
    • ofrobots's avatar
      improve perf_basic_prof filename reporting · 03ef3cd0
      ofrobots authored
      The buffer used for appending filenames to the string printed to the
      perf_basic_prof log was unnecessarily too small. Bump it up to be at least
      kUtf8BufferSize.
      
      Truncation of filenames makes it really hard to work with profiles gathered on
      Node.js. Because of the way Node.js works, you can have node module dependencies
      in deeply nested directories. The last thing you want when investigating a
      performance problem is to have script names be truncated.
      
      This patch is a stop-gap. Ideally, I want no truncation of the filename at all
      and use a dynamically growing buffer. That would be a larger change, and I
      wanted to have a quick fix available that can be back-ported to Node.js LTS
      release.
      
      R=yangguo@chromium.org,yurys@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1388543002
      
      Cr-Commit-Position: refs/heads/master@{#31092}
      03ef3cd0
  31. 28 Sep, 2015 1 commit
  32. 23 Sep, 2015 1 commit