- 04 Jul, 2016 14 commits
-
-
mlippautz authored
- Remove unused flags (SweepingParallelism, SweepingMode) - Make them runtime parameters rather then template parameters - Deduce skip list rebuilding from the page itself BUG= Review-Url: https://codereview.chromium.org/2124433002 Cr-Commit-Position: refs/heads/master@{#37502}
-
bmeurer authored
This is compatible with what Crankshaft does, and therefore should be safe. The runtime doesn't perform any JavaScript-observable side effects during the stack check. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2118253002 Cr-Commit-Position: refs/heads/master@{#37501}
-
jgruber authored
Stack trace generation requires access to the receiver; and while the receiver is already on the stack, we cannot determine its position during stack trace generation (it's stored in argv[0], and argc is only stored in a callee-saved register). This patch grants access to the receiver by pushing argc onto builtin exit frames as an extra argument. Compared to simply pushing the receiver, this requires an additional dereference during stack trace generation, but one fewer during builtin calls. BUG=v8:4815 Review-Url: https://codereview.chromium.org/2106883003 Cr-Commit-Position: refs/heads/master@{#37500}
-
akos.palfi authored
Port bd0d9e7d BUG= Review-Url: https://codereview.chromium.org/2122643003 Cr-Commit-Position: refs/heads/master@{#37499}
-
bbudge authored
LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2116203002 Cr-Commit-Position: refs/heads/master@{#37498}
-
ishell authored
[fullcode][mips][mips64][ppc][s390] Avoid trashing of a home object when doing a keyed store to a super. BUG=chromium:625590 Review-Url: https://codereview.chromium.org/2120963002 Cr-Commit-Position: refs/heads/master@{#37497}
-
zhengxing.li authored
port 0a0fe8fb (r37476) original commit message: Import fdlibm versions of acos, acosh, asin and asinh, which are more precise and produce the same result across platforms (we were using libm versions for asin and acos so far, where both speed and precision depended on the operating system so far). Introduce appropriate TurboFan operators for these functions and use them both for inlining and for the generic builtin. Also migrate the Math.imul and Math.fround builtins to TurboFan builtins to ensure that their behavior is always exactly the same as the inlined TurboFan version (i.e. C++ truncation semantics for double to float don't necessarily meet the JavaScript semantics). For completeness, also migrate Math.sign, which can even get some nice love in TurboFan. Drive-by-fix: Some alpha-sorting on the Math related functions, and cleanup the list of Math intrinsics that we have to export via the native context currently. BUG= Review-Url: https://codereview.chromium.org/2122643002 Cr-Commit-Position: refs/heads/master@{#37496}
-
ishell authored
[crankshaft] Use canonical nan_value or minus_zero_value objects instead of constant heap numbers with NaN or -0.0 values. BUG=chromium:625547 Review-Url: https://codereview.chromium.org/2115413002 Cr-Commit-Position: refs/heads/master@{#37495}
-
zhengxing.li authored
The CL #37448 (https://codereview.chromium.org/2105313002) exposed one hidden bug in x87 turbofan compiler's code generation. This CL fixed that bugs. BUG= Review-Url: https://codereview.chromium.org/2117003002 Cr-Commit-Position: refs/heads/master@{#37494}
-
jarin authored
The re-typer now only types a node if its inputs are all typed with the exception of phi nodes. This works because all cycles in the graph have to contain a phi node. BUG=chromium:625558 Review-Url: https://codereview.chromium.org/2120243002 Cr-Commit-Position: refs/heads/master@{#37493}
-
machenbach authored
BUG=chromium:474921 Review-Url: https://codereview.chromium.org/2109293004 Cr-Commit-Position: refs/heads/master@{#37492}
-
zhengxing.li authored
port cede9ce5 (r37424) original commit message: BUG= Review-Url: https://codereview.chromium.org/2118133002 Cr-Commit-Position: refs/heads/master@{#37491}
-
zhengxing.li authored
port 5febc27b (r37416) original commit message: Prior to this commit, calls to C++ builtins created standard exit frames, which are skipped when constructing JS stack traces. In order to show these calls on traces, we introduce a new builtin exit frame type. Builtin exit frames contain target and new.target on the stack and are not skipped during stack trace construction. BUG= Review-Url: https://codereview.chromium.org/2120873002 Cr-Commit-Position: refs/heads/master@{#37490}
-
zhengxing.li authored
port c0d4bb89 (r37370) original commit message: Operand(reg) -> reg Operand(reg, 0) -> [reg] BUG= Review-Url: https://codereview.chromium.org/2119103002 Cr-Commit-Position: refs/heads/master@{#37489}
-
- 03 Jul, 2016 1 commit
-
-
honggyu.kp authored
Since python3 does not use the old print statement, it may not be able to load gdb-v8-support.py script in gdb as below: (gdb) source tools/gdb-v8-support.py File "tools/gdb-v8-support.py", line 170 print result ^ SyntaxError: Missing parentheses in call to 'print' This fixes print statement for both python2 and python3. R=jochen@chromium.org BUG= Review-Url: https://codereview.chromium.org/2084163004 Cr-Commit-Position: refs/heads/master@{#37488}
-
- 02 Jul, 2016 2 commits
-
-
hablich authored
Revert of Amends the TypedArray constructor to use the path for primitives for all (patchset #4 id:60001 of https://codereview.chromium.org/2096873002/ ) Reason for revert: Speculative revert to unblock roll https://codereview.chromium.org/2114113002/ Original issue's description: > Amends the TypedArray constructor to use the path for primitives for all > types of primitives, not just undefined, booleans, numbers, and strings. > (The missing cases were null and Symbol.) This is required by the > specification, and there are test262 tests which we were failing due to > this bug. > > BUG=v8:5124 > > Committed: https://crrev.com/f788bd9cce19815cba746e47bb65abfe25c16208 > Committed: https://crrev.com/f772c22cd1c492aa0235a8e6012d0386146d2eb2 > Cr-Original-Commit-Position: refs/heads/master@{#37234} > Cr-Commit-Position: refs/heads/master@{#37407} TBR=littledan@chromium.org,bakkot@google.com NOTREECHECKS=true BUG=v8:5124 Review-Url: https://codereview.chromium.org/2120763002 Cr-Commit-Position: refs/heads/master@{#37487}
-
v8-autoroll authored
Rolling v8/build to 76d9f8b4fcae07fb82f28295468cf92bade935bd Rolling v8/buildtools to db6179b29f90d28026b0cb23ef71d56ec31b8bd6 Rolling v8/tools/clang to 775e2f874b9f53f0e82c4e7c61dc29f3cdcb3379 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review-Url: https://codereview.chromium.org/2117993002 Cr-Commit-Position: refs/heads/master@{#37486}
-
- 01 Jul, 2016 23 commits
-
-
caitpotter88 authored
BUG=v8:4663 R=littledan@chromium.org, adamk@chromium.org Review-Url: https://codereview.chromium.org/2116053003 Cr-Commit-Position: refs/heads/master@{#37485}
-
caitpotter88 authored
Corrects a small problem with the current implementation of the AsyncFunction constructor. See https://tc39.github.io/ecmascript-asyncawait/#async-function-constructor for details. BUG=v8:4483 R=littledan@chromium.org, adamk@chromium.org, jwolfe@igalia.com Review-Url: https://codereview.chromium.org/2118653004 Cr-Commit-Position: refs/heads/master@{#37484}
-
bbudge authored
LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2117703003 Cr-Commit-Position: refs/heads/master@{#37483}
-
littledan authored
This patch implements "immutable prototype exotic objects" from the ECMAScript spec, which are objects whose __proto__ cannot be changed, but are not otherwise frozen. They are introduced in order to prevent a Proxy from being introduced to the prototype chain of the global object. The API is extended by a SetImmutablePrototype() call in ObjectTemplate, which can be used to vend new immutable prototype objects. Additionally, Object.prototype is an immutable prototype object. In the implementation, a new bit is added to Maps to say whether the prototype is immutable, which is read by SetPrototype. Map transitions to the immutable prototype state are not saved in the transition tree because the main use case is just for the prototype chain of the global object, which there will be only one of per Context, so no need to take up the extra word for a pointer in each full transition tree. BUG=v8:5149 Review-Url: https://codereview.chromium.org/2108203002 Cr-Commit-Position: refs/heads/master@{#37482}
-
balazs.kilvady authored
Port b86ac0e0 Original commit message: Both of these were broken in different ways: * On arm, the loop counter was passed as argc on the stack. * On arm64, we passed argc + 1 instead of argc. The result in both cases was an incorrect receiver for the builtin frame when generating stack traces. BUG=v8:4815 Review-Url: https://codereview.chromium.org/2120463002 Cr-Commit-Position: refs/heads/master@{#37481}
-
mstarzinger authored
This makes the elimination of checkpoints flowing effect-wise into nodes having the {Return} operator more permissive. We can cut out checkpoints even when they are not wholly owned by the return. This also alleviates a problem where TCO no longer applies. R=jarin@chromium.org TEST=mjsunit/regress/regress-crbug-624747 BUG=chromium:624747 Review-Url: https://codereview.chromium.org/2118793002 Cr-Commit-Position: refs/heads/master@{#37480}
-
bmeurer authored
R=jarin@chromium.org BUG=chromium:625121 Review-Url: https://codereview.chromium.org/2116533004 Cr-Commit-Position: refs/heads/master@{#37479}
-
titzer authored
R=mstarzinger@chromium.org,bradnelson@chromium.org BUG= Review-Url: https://codereview.chromium.org/2118733003 Cr-Commit-Position: refs/heads/master@{#37478}
-
danno authored
This optimizes the passing of stack parameters in function calls. For some architectures (ia32/x64), using pushes when possible instead of bumping the stack and then storing parameters generates much smaller code, and in some cases is faster (e.g. when a push of a memory location can implement a memory-to-memory copy and thus elide an intermediate load. On others (e.g. ARM), the benefit is smaller, where it's only possible to elide direct stack pointer adjustment in certain cases or combine multiple register stores into a single instruction in other limited situations. On yet other platforms (ARM64, MIPS), there are no push instructions, and this optimization isn't used at all. Ideally, this mechanism would be used for both tail calls and normal calls, but "normal" calls are currently pretty efficient, and tail calls are very inefficient, so this CL sets the bar low for building a new mechanism to handle parameter pushing that only needs to raise the bar on tail calls for now. The key aspect of this change is that adjustment to the stack pointer for tail calls (and perhaps later real calls) is an explicit step separate from instruction selection and gap resolution, but aware of both, making it possible to safely recognize gap moves that are actually pushes. Review-Url: https://codereview.chromium.org/2082263002 Cr-Commit-Position: refs/heads/master@{#37477}
-
bmeurer authored
Import fdlibm versions of acos, acosh, asin and asinh, which are more precise and produce the same result across platforms (we were using libm versions for asin and acos so far, where both speed and precision depended on the operating system so far). Introduce appropriate TurboFan operators for these functions and use them both for inlining and for the generic builtin. Also migrate the Math.imul and Math.fround builtins to TurboFan builtins to ensure that their behavior is always exactly the same as the inlined TurboFan version (i.e. C++ truncation semantics for double to float don't necessarily meet the JavaScript semantics). For completeness, also migrate Math.sign, which can even get some nice love in TurboFan. Drive-by-fix: Some alpha-sorting on the Math related functions, and cleanup the list of Math intrinsics that we have to export via the native context currently. BUG=v8:3266,v8:3496,v8:3509,v8:3952,v8:5169,v8:5170,v8:5171,v8:5172 TBR=rossberg@chromium.org R=franzih@chromium.org Review-Url: https://codereview.chromium.org/2116753002 Cr-Commit-Position: refs/heads/master@{#37476}
-
mstarzinger authored
This ensures no eager bailout point is emitted after a comma expression in test context where the right-hand side omitted an eager bailout point as well. This is to stay in sync with full-codegen. R=jarin@chromium.org TEST=mjsunit/regress/regress-crbug-624919 BUG=chromium:624919 Review-Url: https://codereview.chromium.org/2113893004 Cr-Commit-Position: refs/heads/master@{#37475}
-
neis authored
BUG= Review-Url: https://codereview.chromium.org/2111153002 Cr-Commit-Position: refs/heads/master@{#37474}
-
franzih authored
Migrate Math.hypot() from JS to C++ builtins. Use normalization and Kahan summation to avoid overflow and rounding errors. R=bmeurer@chromium.org BUG=v8:5165, v8:5086 LOG=n Review-Url: https://codereview.chromium.org/2102223005 Cr-Commit-Position: refs/heads/master@{#37473}
-
zhengxing.li authored
Since the workaround (CL 36697 : 22a73e0d) for sNaN issue works, enable those test cases. BUG= Review-Url: https://codereview.chromium.org/2114853002 Cr-Commit-Position: refs/heads/master@{#37472}
-
jgruber authored
Both of these were broken in different ways: * On arm, the loop counter was passed as argc on the stack. * On arm64, we passed argc + 1 instead of argc. The result in both cases was an incorrect receiver for the builtin frame when generating stack traces. BUG=v8:4815 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2112883002 Cr-Commit-Position: refs/heads/master@{#37471}
-
bradnelson authored
Directs 'use asm' traffic through asm-wasm conversion when --validate-asm is passed. Adds a builtin that handles the fallback to JS. BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203 TEST=asm-wasm R=mstarzinger@chromium.org,titzer@chromium.org LOG=N Review-Url: https://codereview.chromium.org/2057403003 Cr-Commit-Position: refs/heads/master@{#37470}
-
zhengxing.li authored
port 588e15c0 (r37345) original commit message: The opcodes for 'cmpw r/m16, r16' and 'cmpw r16, r/m16' were swapped, causing a few issues when less than/greater than comparison were performed. Adds a regression test. BUG= Review-Url: https://codereview.chromium.org/2119793002 Cr-Commit-Position: refs/heads/master@{#37469}
-
zhengxing.li authored
port e607e12e (r37323) original commit message: Introduce a new machine operator Float64Pow that for now is backed by the existing MathPowStub to start the unification of Math.pow, and at the same time address the main performance issue that TurboFan still has with the imaging-darkroom benchmark in Kraken. Also migrate the Math.pow builtin itself to a TurboFan builtin and remove a few hundred lines of hand-written platform code for special handling of the fullcodegen Math.pow version. BUG= Review-Url: https://codereview.chromium.org/2119773003 Cr-Commit-Position: refs/heads/master@{#37468}
-
v8-autoroll authored
Rolling v8/build to c80c063b314ab9cc6c3c5955c7444c2fa514bcec Rolling v8/buildtools to 454e53abae6e4d68ee992b0a93a4174b75519393 Rolling v8/tools/mb to ea4154b4daca60a5f5c04ef764b7eaf50362250c TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review-Url: https://codereview.chromium.org/2113243002 Cr-Commit-Position: refs/heads/master@{#37467}
-
zhengxing.li authored
port 5e058540 (r37325) original commit message: The reason for reverting is: This breaks gc-stress bot: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot Abortion of compaction could cause duplicate entries in the typed-old-to-new remembered set. These duplicates could cause a DCHECK to trigger which checks that slots recorded in the remembered set neve Original issue's description: Cells were needed originally because there was no typed remembered set to record direct pointers from code space to new space. A previous CL (https://codereview.chromium.org/2003553002/) already introduced the remembered set, this CL uses it. This CL * stores direct pointers in code objects, even if the target is in new space, * records the slot of the pointer in typed-old-to-new remembered set, * adds a list which stores weak code-to-new-space references, * adds a test to test-heap.cc for weak code-to-new-space references, * removes prints in tail-call-megatest.js BUG= Review-Url: https://codereview.chromium.org/2112193002 Cr-Commit-Position: refs/heads/master@{#37466}
-
bjaideep authored
Port cede9ce5 R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:5086 LOG=N Review-Url: https://codereview.chromium.org/2113193002 Cr-Commit-Position: refs/heads/master@{#37465}
-
bakkot authored
Revert of Add errors for declarations which conflict with catch parameters. (patchset #6 id:100001 of https://codereview.chromium.org/2109733003/ ) Reason for revert: Fuzzer claims `try { \"\" ; } catch(x) { let x1 = [1,,], x = x; }` causes a crash. Original issue's description: > Add errors for declarations which conflict with catch parameters. > > Catch parameters are largely treated as lexical declarations in the > block which contains their body for the purposes of early syntax errors, > with some exceptions outlined in B.3.5. This patch introduces most of > those errors, except those from `eval('for (var e of ...);')` inside of > a catch with a simple parameter named 'e'. > > Note that annex B.3.5 allows var declarations to conflict with simple > catch parameters, except when the variable declaration is the init of a > for-of statement. > > BUG=v8:5112,v8:4231 > > Committed: https://crrev.com/2907c726b2bb5cf20b2bec639ca9e6a521585406 > Cr-Commit-Position: refs/heads/master@{#37462} TBR=littledan@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5112,v8:4231 Review-Url: https://codereview.chromium.org/2112223002 Cr-Commit-Position: refs/heads/master@{#37464}
-
bbudge authored
- Uses byte_width() to determine if spill ranges can be merged. - Modifies InstructionOperand canonicalization to ignore representation for stack slots. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2074323002 Cr-Commit-Position: refs/heads/master@{#37463}
-