- 29 Mar, 2016 9 commits
-
-
titzer authored
In JavaScript code and stubs, JSSP mirrors the CSP but may be unaligned. But in WASM code only CSP is used, like native code, and it must be aligned. Calls into WASM from JS need to carefully align the C stack pointer (csp) and restore the previous JSSP, while calls from WASM to JS need to compute a new JSSP and restore their CSP after the call. R=ahaas@chromium.org BUG= Review URL: https://codereview.chromium.org/1811283003 Cr-Commit-Position: refs/heads/master@{#35096}
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1836213002 Cr-Commit-Position: refs/heads/master@{#35095}
-
bmeurer authored
Fix and re-enable the flexible representation for Math.floor (which is used to implement Math.ceil) and Math.round, which allows Math.floor and Math.round to return double results instead of int32, and therefore allows values outside the int32 range, especially -0 is now a valid result, which doesn't deopt. Also port this feature to x64 and ia32 when the CPU supports the SSE4.1 extension. This addresses all the known deoptimization loops related to Math.round in the Kraken benchmark suite, and seems to also address most of the deoptimization loops related to Math.floor in the Oort Online benchmark. Drive-by-fix: Import the regression tests for the broken HMathFloorOfDiv optimization that caused the initial revert of the feature (for arm64 only back then). BUG=chromium:476477,v8:2890,v8:4059 R=jarin@chromium.org LOG=n Review URL: https://codereview.chromium.org/1841513003 Cr-Commit-Position: refs/heads/master@{#35094}
-
hpayer authored
BUG= NOTRY=true Review URL: https://codereview.chromium.org/1842523004 Cr-Commit-Position: refs/heads/master@{#35093}
-
jarin authored
This fixes support for debug info in perf. Thanks to Stephane Eranian for identifying the problem - debug info event has to be emitted before the code load event. It also seems that perf does not yet support the shorthand for repeated source files in the debug info entry ("\xff\0"), so I changed it to always write the script name. Review URL: https://codereview.chromium.org/1843563002 Cr-Commit-Position: refs/heads/master@{#35092}
-
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}
-
bmeurer authored
The NumberFloor operator matches exactly the semantics of the Math.floor builtin on Numbers. It uses hardware rounding instructions if available, but provides a full fallback solution that is compatible with Math.floor. The lowering is optimizable based on types if needed later, i.e. we already optimize it for the case that the input is already an Integer (in the EcmaScript sense, including NaN and -0), but we could add more optimizations, like combining NumberFloor and NumberDivide in the future, if necessary. R=jarin@chromium.org BUG=v8:2890,v8:4059 LOG=n Review URL: https://codereview.chromium.org/1843533003 Cr-Commit-Position: refs/heads/master@{#35090}
-
bmeurer authored
The timezone part of the Date string representation might contain non-ASCII characters depending on the exact platform configuration, so we cannot safely assume that the whole date string is ASCII encoded. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel R=yangguo@chromium.org BUG=chromium:581925 LOG=n Review URL: https://codereview.chromium.org/1838063002 Cr-Commit-Position: refs/heads/master@{#35089}
-
v8-autoroll authored
Rolling v8/tools/clang to 51bba1037858028f42141689ed1b3b63a20f0b52 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1838013003 Cr-Commit-Position: refs/heads/master@{#35088}
-
- 28 Mar, 2016 7 commits
-
-
jyan authored
Implement Left/Right Logical/Arithmetic Shift Pair operations for s390 R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1835973003 Cr-Commit-Position: refs/heads/master@{#35087}
-
littledan authored
The getter RegExp.prototype.source is specified in ES2015 to throw when called on a non-RegExp instance, such as RegExp.prototype. We had previously put in a compatibility workaround for all RegExp getters to make them throw on access specifically with RegExp.prototype as the receiver; however, we only have evidence that this is needed for properties other than source. This patch removes the compatibility workaround for get RegExp.prototype.source and gives it semantics precisely as per the ES2015 specification. R=adamk BUG=chromium:581577,v8:4827 LOG=Y Review URL: https://codereview.chromium.org/1837843002 Cr-Commit-Position: refs/heads/master@{#35086}
-
adamk authored
Previously, they would check for Symbol.match/Symbol.search, and then do another check for Symbol.match in the RegExp constructor. This patch avoids the second one by skipping the RegExp constructor, as the spec does. Review URL: https://codereview.chromium.org/1840723002 Cr-Commit-Position: refs/heads/master@{#35085}
-
jyan authored
when needs_return_buffer == true and result_size() > 2, the 3rd return value is placed in r4 register. But when debug code is emited, it uses r4 register for checking exceptions, which corrupts the 3rd return value. R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1839663002 Cr-Commit-Position: refs/heads/master@{#35084}
-
bmeurer authored
This way we avoid the second deoptimization for the Math.floor and Math.ceil builtins when -0 is involved. We still deoptimize the inlined Crankshaft version in various cases, that's a separate issue. The algorithm used for implement CodeStubAssembler::Float64Floor is vaguely based on the fast math version used in the libm of various BSDs, but had to be reengineered to match the EcmaScript specification. R=epertoso@chromium.org BUG=v8:2890, v8:4059 LOG=n Review URL: https://codereview.chromium.org/1828253002 Cr-Commit-Position: refs/heads/master@{#35083}
-
bryleun authored
Clang optimizes away CheckOverflowForIntSub at any opt level (includes -O1, -O2, -O3) into a false statement, resulting in incorrect values being returned. As the C++ standard considers overflows to be undefined behaviour, this is technically correct as compilers can assume that overflows never occur, but problematic in our case (where overflows do occur, and a specific result is expected). This change replaces the original check with a call to a function that is optimized in a manner that returns correct output. R=michael_dawson@ca.ibm.com,jyan@ca.ibm.com,mtbrandyberry@ca.ibm.com,joransiu@ca.ibm.com,danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org BUG= Review URL: https://codereview.chromium.org/1826043002 Cr-Commit-Position: refs/heads/master@{#35082}
-
caitpotter88 authored
Add support for optimizing objects with elements, which do not invoke JS and cannot change the shape of the Object. BUG=v8:4663 LOG=N Review URL: https://codereview.chromium.org/1767113004 Cr-Commit-Position: refs/heads/master@{#35081}
-
- 27 Mar, 2016 1 commit
-
-
v8-autoroll authored
Rolling v8/build/gyp to 28340b46df65f2c84f7793470189a0b395e1c9a4 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1839563002 Cr-Commit-Position: refs/heads/master@{#35080}
-
- 26 Mar, 2016 3 commits
-
-
machenbach authored
BUG=v8:4680 LOG=n NOTRY=true TBR=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1836763002 Cr-Commit-Position: refs/heads/master@{#35079}
-
machenbach authored
TBR=ishell@chromium.org NOTRY=true Review URL: https://codereview.chromium.org/1834083002 Cr-Commit-Position: refs/heads/master@{#35078}
-
v8-autoroll authored
Rolling v8/tools/clang to 43ef5b7210286664ce0ed7581c90e7797d80ea28 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1831303005 Cr-Commit-Position: refs/heads/master@{#35077}
-
- 25 Mar, 2016 8 commits
-
-
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}
-
adamk authored
"IS_RECEIVER" used to be called "IS_SPEC_OBJECT", which might be a better name: it's what the spec means when it says "Type(O) is Object". R=littledan@chromium.org BUG=v8:4602 LOG=n Review URL: https://codereview.chromium.org/1838593002 Cr-Commit-Position: refs/heads/master@{#35075}
-
binji authored
BUG=v8:4737 LOG=n R=jarin@chromium.org Review URL: https://codereview.chromium.org/1676613002 Cr-Commit-Position: refs/heads/master@{#35074}
-
balazs.kilvady authored
Use macro instructions for min, max ops to get the same functionality on pre-r6 and r6 targets. BUG= TEST=mjsunit/math-min-max, cctest/test-macro-assembler-mips64/min_max_nan, cctest/test-macro-assembler-mips/min_max_nan, cctest/test-assembler-mips64/min_max, cctest/test-assembler-mips/min_max Review URL: https://codereview.chromium.org/1694833002 Cr-Commit-Position: refs/heads/master@{#35073}
-
balazs.kilvady authored
Port b6419fa2 Now implemented as a builtin that delegates to the InstanceOfStub. That stub was parameterized to fallback to either Runtime_InstanceOf or to Runtime_OrdinaryHasInstance depending on the --harmony-instanceof flag. Once the feature stabilizes and the flag is no longer needed, we can get rid of this parameterization again. BUG=v8:4447 LOG=n Review URL: https://codereview.chromium.org/1832053002 Cr-Commit-Position: refs/heads/master@{#35072}
-
Miran.Karic authored
This is another set of changes that replace JR and JALR instructions with JIC and JIALC for mips32r6. Macroassembler Jump and Call functions now use JIC and JIALC if branch delay slot is not used. Code patching is adjusted to work with new changes and few minor fixes are added. BUG= Review URL: https://codereview.chromium.org/1807263003 Cr-Commit-Position: refs/heads/master@{#35071}
-
v8-autoroll authored
Rolling v8/buildtools to 80b5126f91be4eb359248d28696746ef09d5be67 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1834743004 Cr-Commit-Position: refs/heads/master@{#35070}
-
littledan authored
A bug in error printing meant that we failed to do proper type checks before calling into C++ code, which could lead to RUNTIME_ASSERT failures if methods are called on alternative receivers. This patch adds the right type checks. BUG=chromium:596718 LOG=Y R=adamk Review URL: https://codereview.chromium.org/1831053003 Cr-Commit-Position: refs/heads/master@{#35069}
-
- 24 Mar, 2016 12 commits
-
-
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}
-
titzer authored
R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/1830703003 Cr-Commit-Position: refs/heads/master@{#35067}
-
rmcilroy authored
Makes --ignition cause eager compilation if we aren't building the startup snapshot. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1811553003 Cr-Commit-Position: refs/heads/master@{#35066}
-
machenbach authored
Revert of [Interpreter] Adds support to fetch return value on break at return. (patchset #9 id:160001 of https://codereview.chromium.org/1818873003/ ) Reason for revert: [Sheriff] Seems to break nosnap debug: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/6019 Original issue's description: > [Interpreter] Adds support to fetch return value on break at return. > > Debugger fetches the return value of a function when we break at return. > Interpreter holds the return value in accumulator. This is not stored in a > specified location on stack and hence it is not possible to look it up from > stack similar to full-codegen or optimized frames. This cl adds support to > store the value of accumulator on debug breaks. The value of accumulator is > passed to the runtime function and is then stored in thread local data. > > Also changes full-codegen implementation to match that of ignition. > The return value from full-codegen is also stored in thread local data. > The return value is fetched directly thread local data instead of > finding it by iterating over frames. > > BUG=v8:4280, v8:4690 > LOG=N > > Committed: https://crrev.com/fb65527b75754bcf3b173f16f5d0b04a1c6d9b99 > Cr-Commit-Position: refs/heads/master@{#35060} TBR=rmcilroy@chromium.org,yangguo@chromium.org,weiliang.lin@intel.com,balazs.kilvady@imgtec.com,jyan@ca.ibm.com,mythria@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280, v8:4690 Review URL: https://codereview.chromium.org/1834733002 Cr-Commit-Position: refs/heads/master@{#35065}
-
bradnelson authored
This previously tickled the failure fixed in this issue: https://crrev.com/6a806a558158cbab55ad9a1a456942a7c509c810 BUG= https://code.google.com/p/v8/issues/detail?id=4203 TEST=asm-wasm-deopt R=aseemgarg@chromium.org,titzer@chromium.org LOG=N Review URL: https://codereview.chromium.org/1766153002 Cr-Commit-Position: refs/heads/master@{#35064}
-
bradnelson authored
gc-stress failure believed to have been fixed in: https://crrev.com/6a806a558158cbab55ad9a1a456942a7c509c810 BUG= https://code.google.com/p/v8/issues/detail?id=4203 TEST=mjsunit/wasm/embenchen R=aseemgarg@chromium.org,titzer@chromium.org LOG=N Review URL: https://codereview.chromium.org/1827813006 Cr-Commit-Position: refs/heads/master@{#35063}
-
mbrandy authored
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1830723003 Cr-Commit-Position: refs/heads/master@{#35062}
-
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}
-
mythria authored
Debugger fetches the return value of a function when we break at return. Interpreter holds the return value in accumulator. This is not stored in a specified location on stack and hence it is not possible to look it up from stack similar to full-codegen or optimized frames. This cl adds support to store the value of accumulator on debug breaks. The value of accumulator is passed to the runtime function and is then stored in thread local data. Also changes full-codegen implementation to match that of ignition. The return value from full-codegen is also stored in thread local data. The return value is fetched directly thread local data instead of finding it by iterating over frames. BUG=v8:4280, v8:4690 LOG=N Review URL: https://codereview.chromium.org/1818873003 Cr-Commit-Position: refs/heads/master@{#35060}
-
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}
-
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}
-
machenbach authored
BUG=chromium:568949 LOG=n TBR=kjellander@chromium.org, tandrii@chromium.org NOTRY=true NOPRESUBMIT=true Review URL: https://codereview.chromium.org/1830153002 Cr-Commit-Position: refs/heads/master@{#35057}
-