1. 13 Jun, 2016 3 commits
    • bmeurer's avatar
      [builtins] Introduce proper Float64Atan and Float64Atan2 operators. · 89d8c57b
      bmeurer authored
      Import base::ieee754::atan() and base::ieee754::atan2() from fdlibm and
      introduce Float64Atan and Float64Atan2 TurboFan operators based on those,
      similar to what we already did for Float64Log and Float64Log1p. Rewrite
      Math.atan() and Math.atan2() as TurboFan builtin and use the operators
      to also inline Math.atan() and Math.atan2() into optimized TurboFan functions.
      
      R=yangguo@chromium.org
      BUG=v8:5086,v8:5095
      
      Review-Url: https://codereview.chromium.org/2065503002
      Cr-Commit-Position: refs/heads/master@{#36916}
      89d8c57b
    • bmeurer's avatar
      [builtins] Introduce proper Float64Log1p operator. · 7ceed92a
      bmeurer authored
      Import base::ieee754::log1p() from fdlibm and introduce a Float64Log1p
      TurboFan operator based on that, similar to what we do for Float64Log.
      Rewrite Math.log1p() as TurboFan builtin and use that operator to also
      inline Math.log1p() into optimized TurboFan functions.
      
      Also unify the handling of the special IEEE 754 functions somewhat in
      the TurboFan backends. At some point we can hopefully express this
      completely in the InstructionSelector (once we have an idea what to do
      with the ST(0) return issue on IA-32/X87).
      
      Drive-by-fix: Add some more test coverage for the log function.
      
      R=yangguo@chromium.org
      BUG=v8:5086,v8:5092
      
      Review-Url: https://codereview.chromium.org/2060743002
      Cr-Commit-Position: refs/heads/master@{#36914}
      7ceed92a
    • bmeurer's avatar
      [ieee754] Import ANSIfied msun log from FreeBSD. · b01622c3
      bmeurer authored
      Instead of manually adopting the ancient fdlibm sources, import the msun
      versions from FreeBSD instead, which were already adopted to ANSI C.
      Still under the same copyright.
      
      R=yangguo@chromium.org
      BUG=v8:5065,v8:5086
      
      Review-Url: https://codereview.chromium.org/2065473002
      Cr-Commit-Position: refs/heads/master@{#36913}
      b01622c3
  2. 10 Jun, 2016 1 commit
    • bmeurer's avatar
      [builtins] Introduce proper base::ieee754::log. · d0c7775d
      bmeurer authored
      This switches Math.log to use an fdlibm based version of log, imported
      as base::ieee754::log, and use that consistently everywhere, i.e. change
      the Float64Log TurboFan operators on Intel to use the C++ implementation
      as well (same for Crankshaft).
      
      R=yangguo@chromium.org
      BUG=v8:5065,v8:5086
      
      Review-Url: https://codereview.chromium.org/2053893003
      Cr-Commit-Position: refs/heads/master@{#36880}
      d0c7775d
  3. 09 Jun, 2016 1 commit
    • lpy's avatar
      Move hashmap into src/base. · 2fd55667
      lpy authored
      We ported hashmap.h into libsampler as a workaround before, so the main focus of
      this patch is to reduce code duplication. This patch moves the hashmap into
      src/base as well as creates DefaultAllocationPolicy using malloc and free.
      
      BUG=v8:5050
      LOG=n
      
      Review-Url: https://codereview.chromium.org/2010243003
      Cr-Commit-Position: refs/heads/master@{#36873}
      2fd55667
  4. 08 Jun, 2016 3 commits
  5. 06 Jun, 2016 2 commits
  6. 01 Jun, 2016 2 commits
    • lpy's avatar
      [base] Implement CPU time on Windows. · ee43805a
      lpy authored
      We already implemented CPU time for OS X and POSIX, this path is a
      follow up for the implementation on Windows.
      
      BUG=v8:5000
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1977983003
      Cr-Commit-Position: refs/heads/master@{#36656}
      ee43805a
    • pierre.langlois's avatar
      [turbofan] ARM64: Match 64 bit compare with zero and branch · 27bd1747
      pierre.langlois authored
      This patch enables the following transformations in the instruction
      selector:
      
      | Before           | After                  |
      |------------------+------------------------|
      | and x3, x1, #0x1 | tb{,n}z w1, #0, #+0x78 |
      | cmp x3, #0x0     |                        |
      | b.{eq,ne} #+0x80 |                        |
      |------------------+------------------------|
      | cmp x0, #0x0     | cb{,n}z x0, #+0x48     |
      | b.{eq,ne} #+0x4c |                        |
      
      I have not seen these patterns beeing generated by turbofan, however the
      stubs hit these cases frequently. A particular reason is that we are
      turning operations that check for a Smi into a single `tbz`.
      
      As a concequence, the interpreter is affected thanks to inlining
      turbofan stubs into it's bytecode handlers. I have noticed the size of
      the interpreter was reduced by 200 instructions.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2022073002
      Cr-Commit-Position: refs/heads/master@{#36632}
      27bd1747
  7. 27 May, 2016 1 commit
  8. 20 May, 2016 1 commit
    • ulan's avatar
      Workaround for glibc semaphore bug. · 84ee9470
      ulan authored
      Instead of dynamically creating semaphore for each page parallel job,
      we create one semaphore for MarkCompact and reuse it.
      
      This patch also removes all instrumentation code that was added to
      help with investigation.
      
      BUG=chromium:609249
      LOG=NO
      
      Review-Url: https://codereview.chromium.org/1998213002
      Cr-Commit-Position: refs/heads/master@{#36407}
      84ee9470
  9. 13 May, 2016 2 commits
  10. 12 May, 2016 1 commit
  11. 11 May, 2016 2 commits
  12. 09 May, 2016 2 commits
  13. 06 May, 2016 2 commits
  14. 03 May, 2016 1 commit
  15. 02 May, 2016 1 commit
  16. 27 Apr, 2016 1 commit
  17. 25 Apr, 2016 2 commits
  18. 22 Apr, 2016 1 commit
  19. 12 Apr, 2016 1 commit
  20. 11 Apr, 2016 2 commits
  21. 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
  22. 05 Apr, 2016 1 commit
    • mlippautz's avatar
      [heap] Non-contiguous young generation · 3f921372
      mlippautz authored
      This change removes the large contiguous backing store from the young generation
      and replaces it regular pages.
      
      We keep a pool of pages that are committed/uncommitted to avoid creating virtual
      memory maps during growing and shrinking.
      
      BUG=chromium:581412
      LOG=N
      
      Review URL: https://codereview.chromium.org/1853783002
      
      Cr-Commit-Position: refs/heads/master@{#35261}
      3f921372
  23. 01 Apr, 2016 2 commits
  24. 31 Mar, 2016 1 commit
  25. 29 Mar, 2016 2 commits
    • jacob.bramley's avatar
      [arm] Correctly detect ARMv8 platforms with old kernels. · 4ee76daf
      jacob.bramley authored
      AArch64 kernels older than 3.18 presented a different cpuinfo format
      than what V8 expects. Most of V8's logic still works, but it misreads
      the "CPU architecture" field.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1841733002
      
      Cr-Commit-Position: refs/heads/master@{#35114}
      4ee76daf
    • 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