- 13 Jun, 2016 3 commits
-
-
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}
-
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}
-
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}
-
- 10 Jun, 2016 1 commit
-
-
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}
-
- 09 Jun, 2016 1 commit
-
-
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}
-
- 08 Jun, 2016 3 commits
-
-
machenbach authored
This allows using icu data, bundled in the icudtl.dat file, to be loaded automatically from a default location side-by-side with the executable. The v8 stand-alone default is still to use statically linked ICU data, but this will be switched in a separate follow-up CL. BUG=chromium:616033 LOG=y Review-Url: https://codereview.chromium.org/2042253002 Cr-Commit-Position: refs/heads/master@{#36823}
-
mstarzinger authored
This workaround had been added because sanitizer interceptors were linking against an old version of GLIBC. The respective sanitizers within LLVM have by now be fixed, workaround can be removed. The original workaround: https://codereview.chromium.org/1407463002 R=machenbach@chromium.org BUG=chromium:536813 Review-Url: https://codereview.chromium.org/2045993003 Cr-Commit-Position: refs/heads/master@{#36816}
-
hpayer authored
Revert of [heap] Uncommit unused large object page memory. (patchset #13 id:230001 of https://codereview.chromium.org/2032393002/ ) Reason for revert: Needs fixing of slot set. Original issue's description: > [heap] Uncommit unused large object page memory. > > As a first step I uncommit the memory on the main thread. Also to measure impact and stability of that optimization. In a follow-up CL, the uncommitting should be moved on the concurrent thread. > > BUG= > > Committed: https://crrev.com/d61a5c376ba51145dc4684e39d5d3a9ce75bcfa6 > Cr-Commit-Position: refs/heads/master@{#36763} TBR=ulan@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG= Review-Url: https://codereview.chromium.org/2043263002 Cr-Commit-Position: refs/heads/master@{#36807}
-
- 06 Jun, 2016 2 commits
-
-
hpayer authored
As a first step I uncommit the memory on the main thread. Also to measure impact and stability of that optimization. In a follow-up CL, the uncommitting should be moved on the concurrent thread. BUG= Review-Url: https://codereview.chromium.org/2032393002 Cr-Commit-Position: refs/heads/master@{#36763}
-
yangguo authored
Prior to this change, both 0 and 1 as RNG seed would result in the same internal state. state0 and state1 cannot both be zero, but murmur hash maps 0 back to 0. R=cbruni@chromium.org BUG=v8:5069 Review-Url: https://codereview.chromium.org/2040953002 Cr-Commit-Position: refs/heads/master@{#36757}
-
- 01 Jun, 2016 2 commits
-
-
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}
-
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}
-
- 27 May, 2016 1 commit
-
-
lpy authored
Currently Mac ComputeThreadTicks only uses user time, this patch adds system time in order to get more accurate CPU time. BUG=v8:4984 LOG=n Review-Url: https://codereview.chromium.org/2016513002 Cr-Commit-Position: refs/heads/master@{#36538}
-
- 20 May, 2016 1 commit
-
-
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}
-
- 13 May, 2016 2 commits
-
-
hablich authored
Reland of [Reland] Implement CPU time for OS X and POSIX. (patchset #1 id:1 of https://codereview.chromium.org/1977753002/ ) Reason for revert: Not the culprit sorry. Original issue's description: > Revert of [Reland] Implement CPU time for OS X and POSIX. (patchset #1 id:1 of https://codereview.chromium.org/1966183003/ ) > > Reason for revert: > Blocks roll: https://codereview.chromium.org/1972303002/ > > Original issue's description: > > [Reland] Implement CPU time for OS X and POSIX. > > > > V8 tracing controller uses 2 clocks: wall clock and cpu clock. This patch > > implements CPU time for OS X and POSIX to provide more accurate > > accounting of CPU time used by each thread. > > > > BUG=v8:4984 > > LOG=n > > > > Committed: https://crrev.com/efa27fb25e1fa5b8465f4af710086b73b0cba660 > > Cr-Commit-Position: refs/heads/master@{#36213} > > TBR=fmeawad@chromium.org,jochen@chromium.org,rsesek@chromium.org,bmeurer@chromium.org,lpy@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:4984 > > Committed: https://crrev.com/31b9ba3bc8fb93601cc73c83213b30e639d448b3 > Cr-Commit-Position: refs/heads/master@{#36225} TBR=fmeawad@chromium.org,jochen@chromium.org,rsesek@chromium.org,bmeurer@chromium.org,lpy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4984 Review-Url: https://codereview.chromium.org/1976603005 Cr-Commit-Position: refs/heads/master@{#36233}
-
hablich authored
Revert of [Reland] Implement CPU time for OS X and POSIX. (patchset #1 id:1 of https://codereview.chromium.org/1966183003/ ) Reason for revert: Blocks roll: https://codereview.chromium.org/1972303002/ Original issue's description: > [Reland] Implement CPU time for OS X and POSIX. > > V8 tracing controller uses 2 clocks: wall clock and cpu clock. This patch > implements CPU time for OS X and POSIX to provide more accurate > accounting of CPU time used by each thread. > > BUG=v8:4984 > LOG=n > > Committed: https://crrev.com/efa27fb25e1fa5b8465f4af710086b73b0cba660 > Cr-Commit-Position: refs/heads/master@{#36213} TBR=fmeawad@chromium.org,jochen@chromium.org,rsesek@chromium.org,bmeurer@chromium.org,lpy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4984 Review-Url: https://codereview.chromium.org/1977753002 Cr-Commit-Position: refs/heads/master@{#36225}
-
- 12 May, 2016 1 commit
-
-
lpy authored
V8 tracing controller uses 2 clocks: wall clock and cpu clock. This patch implements CPU time for OS X and POSIX to provide more accurate accounting of CPU time used by each thread. BUG=v8:4984 LOG=n Review-Url: https://codereview.chromium.org/1966183003 Cr-Commit-Position: refs/heads/master@{#36213}
-
- 11 May, 2016 2 commits
-
-
lpy authored
Revert of Implement CPU time for OS X and POSIX. (patchset #10 id:180001 of https://codereview.chromium.org/1959103004/ ) Reason for revert: Buildbot is failing on Mac release build. Original issue's description: > Implement CPU time for OS X and POSIX. > > V8 tracing controller uses 2 clocks: wall clock and cpu clock. This patch > implements CPU time for OS X and POSIX to provide more accurate > accounting of CPU time used by each thread. > > BUG=v8:4984 > LOG=n > > Committed: https://crrev.com/025f3d262bab2748362374f1b90ac723a9655ee4 > Cr-Commit-Position: refs/heads/master@{#36188} TBR=jochen@chromium.org,bmeurer@chromium.org,fmeawad@chromium.org,rsesek@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4984 Review-Url: https://codereview.chromium.org/1966173003 Cr-Commit-Position: refs/heads/master@{#36189}
-
lpy authored
V8 tracing controller uses 2 clocks: wall clock and cpu clock. This patch implements CPU time for OS X and POSIX to provide more accurate accounting of CPU time used by each thread. BUG=v8:4984 LOG=n Review-Url: https://codereview.chromium.org/1959103004 Cr-Commit-Position: refs/heads/master@{#36188}
-
- 09 May, 2016 2 commits
-
-
lpy authored
atomic-utils.h only uses functionality from base/, and also by moving it into base/, code outside of v8_base can benefit from it. BUG=v8:4991 LOG=n Review-Url: https://codereview.chromium.org/1954603002 Cr-Commit-Position: refs/heads/master@{#36114}
-
ulan authored
flaky crashes. BUG=chromium:609249 LOG=NO Review-Url: https://codereview.chromium.org/1961893002 Cr-Commit-Position: refs/heads/master@{#36106}
-
- 06 May, 2016 2 commits
-
-
lpy authored
Currently we have Time and TimeTicks sharing some methods. This patch creates TimeBase, and makes Time and TimeTicks inherits from it, so that time related classes won't have to implement common methods and it's easier to introduce new time related classes. BUG=v8:4990 LOG=n Review-Url: https://codereview.chromium.org/1952843002 Cr-Commit-Position: refs/heads/master@{#36088}
-
jkummerow authored
This ports https://codereview.chromium.org/1323293005 to V8. I'm not aware of any evidence that such crashes are currently happening, but it's probably good to ship this workaround anyway. BUG=chromium:517681 LOG=n Review-Url: https://codereview.chromium.org/1959643002 Cr-Commit-Position: refs/heads/master@{#36087}
-
- 03 May, 2016 1 commit
-
-
bjaideep authored
native_handle_ on AIX64 is of type int, and therefore fails on an operation with a pointer type. Use kSemaphoreAlignmentMask as sizeof(int) on AIX and sizeof(pointer) otherwise. R=jochen@chromium.org, mbrandy@us.ibm.com BUG=v8:4767 LOG=N Review-Url: https://codereview.chromium.org/1936003002 Cr-Commit-Position: refs/heads/master@{#35988}
-
- 02 May, 2016 1 commit
-
-
fedor authored
When exporting `shared-library` in profile log, additionally export a slide offset. This is required to parse profile logs generated on systems with ASLR (OS X), otherwise it is impossible to assign C++ symbol names to their addresses in the log. See: https://github.com/nodejs/node/issues/6466 BUG= Review-Url: https://codereview.chromium.org/1934453003 Cr-Commit-Position: refs/heads/master@{#35921}
-
- 27 Apr, 2016 1 commit
-
-
ulan authored
BUG=chromium:605349 LOG=NO Review URL: https://codereview.chromium.org/1921213004 Cr-Commit-Position: refs/heads/master@{#35825}
-
- 25 Apr, 2016 2 commits
-
-
ulan authored
Reland "Check for semaphore alignment on posix platforms. (patchset #1 id:1 of https://codereview.chromium.org/1912923003/ )" This patch also fixed three misaligned semaphores. This reverts commit 80c73e2c. BUG=chromium:605349 LOG=NO Review URL: https://codereview.chromium.org/1917923002 Cr-Commit-Position: refs/heads/master@{#35773}
-
hablich authored
Revert of Check for semaphore alignment on posix platforms. (patchset #1 id:1 of https://codereview.chromium.org/1912923003/ ) Reason for revert: blocks rolling. See https://bugs.chromium.org/p/chromium/issues/detail?id=605349 for more information. This CL only triggers the problem earlier but is not the culprit. The real bug is under investigation by the GC team. Original issue's description: > Check for semaphore alignment on posix platforms. > > BUG=chromium:605349 > LOG=NO > > Committed: https://crrev.com/8d24472acfaf7e67ca20106cb1f405fc0590c849 > Cr-Commit-Position: refs/heads/master@{#35717} TBR=mlippautz@chromium.org,ulan@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:605349 LOG=N Review URL: https://codereview.chromium.org/1921533002 Cr-Commit-Position: refs/heads/master@{#35755}
-
- 22 Apr, 2016 1 commit
-
-
ulan authored
BUG=chromium:605349 LOG=NO Review URL: https://codereview.chromium.org/1912923003 Cr-Commit-Position: refs/heads/master@{#35717}
-
- 12 Apr, 2016 1 commit
-
-
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. Original CL: https://codereview.chromium.org/1869433004 Reverted in: https://codereview.chromium.org/1867383002 Reverted again in: https://codereview.chromium.org/1877823003 Reverts due to non-CQ bots: - First: v8_win_dbg, v8_win64_dbg, v8_mac_dbg - Second: gc mole (added to v8_linux_rel_ng for this patch) R= jochen@chromium.org TBR= ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org Review URL: https://codereview.chromium.org/1872203005 Cr-Commit-Position: refs/heads/master@{#35423}
-
- 11 Apr, 2016 2 commits
-
-
https://codereview.chromium.org/1877453002/machenbach authored
Reason for revert: Breaks gc mole: https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/9421 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. > > Original CL: https://codereview.chromium.org/1869433004 > Reverted in: https://codereview.chromium.org/1867383002 > > R= jochen@chromium.org > TBR= bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org > > Committed: https://crrev.com/bf505329288e1b75bab0e6800371a9aac40fa5cc > Cr-Commit-Position: refs/heads/master@{#35394} TBR=jochen@chromium.org,ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,jfb@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/1877823003 Cr-Commit-Position: refs/heads/master@{#35396}
-
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. Original CL: https://codereview.chromium.org/1869433004 Reverted in: https://codereview.chromium.org/1867383002 R= jochen@chromium.org TBR= bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org Review URL: https://codereview.chromium.org/1877453002 Cr-Commit-Position: refs/heads/master@{#35394}
-
- 08 Apr, 2016 2 commits
-
-
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}
-
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}
-
- 05 Apr, 2016 1 commit
-
-
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}
-
- 01 Apr, 2016 2 commits
-
-
jochen authored
We expect that the majority of malloc'd memory held by V8 is allocated in Zone objects. Introduce an Allocator class that is used by Zones to manage memory, and allows for querying the current usage. BUG=none R=titzer@chromium.org,bmeurer@chromium.org,jarin@chromium.org LOG=n TBR=rossberg@chromium.org Review URL: https://codereview.chromium.org/1847543002 Cr-Commit-Position: refs/heads/master@{#35196}
-
ahaas authored
R=titzer@chromium.org, bmeurer@chromium.org Review URL: https://codereview.chromium.org/1847413002 Cr-Commit-Position: refs/heads/master@{#35195}
-
- 31 Mar, 2016 1 commit
-
-
jbriance authored
ARM specific CONFIG_KUSER_HELPERS kernel feature for Linux can be disabled, and in this case, we shouldn't crash. Use a __sync_synchronize() call instead for Linux platforms. BUG=chromium:599051 LOG=Y Review URL: https://codereview.chromium.org/1840203004 Cr-Commit-Position: refs/heads/master@{#35170}
-
- 29 Mar, 2016 2 commits
-
-
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}
-
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}
-