- 14 Mar, 2017 1 commit
-
-
Jochen Eisinger authored
As the code isn't used, but would have to be ported from hand-written assembly to CodeStubAssembler anyways, I propose to remove it and restore it if we decide that we actually need it. R=vogelheim@chromium.org BUG= Change-Id: Iffd7fc6ec534b1dd7a9144da900424355c8a7a02 Reviewed-on: https://chromium-review.googlesource.com/453461 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43763}
-
- 13 Mar, 2017 6 commits
-
-
binji authored
This reverts the previous revert, commit 5a04f4fd. Previously reverted changes: > Revert "[SAB] Move Atomics builtins to C++" > > This reverts commit 2b9840d8. > > Revert "[SAB] Remove unreachable Uint8Clamped atomics paths" > > This reverts commit d1160fb1. > > Revert "Remove tiny unit test for MinSimple/MaxSimple" > > This reverts commit 837760ec. > > Revert "Remove infrastructure for experimental JS natives" > > This reverts commit 8cfe45b6. These changes were reverted to improve a perf regression on a Chrome bot. Since then, the regression has reappeared, then disappeared again all from seemingly unrelated changes. BUG=v8:6033 TBR=adamk@chromium.org,hpayer@chromium.org,yangguo@chromium.org Review-Url: https://codereview.chromium.org/2732213005 Cr-Commit-Position: refs/heads/master@{#43758}
-
Peter Marshall authored
Part of the performance and refactoring work to move the TypedArray constructors into CSA. This CL moves ConstructByArrayBuffer from JS to CSA. BUG=v8:5977 Change-Id: I0a200e6b3f6261ea2372ea9c3d3ca98e313cf2c5 Reviewed-on: https://chromium-review.googlesource.com/451620 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#43747}
-
danno authored
In the process, re-factor the implementation of Array.prototype.forEach so that the bulk of the implementation can be re-used, since much of the spec is identical. The refactor should also make it more straight-forward to implement map and filter. The re-factored version only have a single slow path for processing elements which is used for both the overall slow path and for the bailout from the FAST_ELEMENTS case. Review-Url: https://codereview.chromium.org/2709773002 Cr-Commit-Position: refs/heads/master@{#43745}
-
Caitlin Potter authored
Add a mechanic to set these Builtin exception predictions per-Isolate rather than per-Context in the Bootstrapper. Also add Debugger tests which would fail without these prediction modes set. Does not yet test for AsyncFromSyncIteratorPrototypeReturn, as this requires AsyncGenerators and `yield*` to be hit. BUG=chromium:691875 R=yangguo@chromium.org, jgruber@chromium.org, gsathya@chromium.org Change-Id: Ic2d2aba3870cce2f7321080f4278875edf253c76 Reviewed-on: https://chromium-review.googlesource.com/451967Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#43742}
-
cwhan.tunz authored
- Remove TypedArrayIndexOf in src/js/typedarray.js - Implement it to C++ using the IndexOfValue in ElementsAccessor - Add buffer neutering check also for %TypedArray%.prototype.includes BUG=v8:5929 Review-Url: https://codereview.chromium.org/2733193002 Cr-Commit-Position: refs/heads/master@{#43741}
-
bmeurer authored
These operations don't need the context, so no need to pass the context to them. Also avoids the loading of context in the interpreter bytecode handlers for StrictEqual and Typeof. BUG=v8:5268,v8:5269 R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2744173002 Cr-Commit-Position: refs/heads/master@{#43733}
-
- 10 Mar, 2017 2 commits
-
-
jyan authored
R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com BUG= Review-Url: https://codereview.chromium.org/2743803002 Cr-Commit-Position: refs/heads/master@{#43728}
-
Sathya Gunasekaran authored
This fixes the catch predictions for the following builtins -- AsyncFunctionAwaitCaught AsyncFunctionAwaitUncaught PromiseResolveClosure ResolvePromise PromiseResolve Added tests for each. Added whitelist for builtins behind a flag. BUG=chromium:691875 Change-Id: I816cafdb69f0c9f1eefc440a0a44c36713d0b7dc Reviewed-on: https://chromium-review.googlesource.com/450894 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#43725}
-
- 09 Mar, 2017 1 commit
-
-
jkummerow authored
Review-Url: https://codereview.chromium.org/2734323004 Cr-Commit-Position: refs/heads/master@{#43695}
-
- 08 Mar, 2017 1 commit
-
-
bjaideep authored
Port 301c1237 R=binji@chromium.org, aseemgarg@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:4614 LOG=N Review-Url: https://codereview.chromium.org/2733953004 Cr-Commit-Position: refs/heads/master@{#43680}
-
- 07 Mar, 2017 7 commits
-
-
Sathya Gunasekaran authored
The receiver in the case of Promise.resolve is the promise constructor, not an instance of Promise. BUG=chromium:691875 Change-Id: I43e914aac51077b28c7954c8023780b9174df825 Reviewed-on: https://chromium-review.googlesource.com/450884Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#43648}
-
jgruber authored
This inlines common LoadIC cases into the LdaNamedProperty bytecode handler. Smi handlers resulting in constant/field loads for monomorphic ICs omit frame construction. The same counts for the polymorphic case as long as the target handler is in the first two vector slots. Other cases (megamorphic, uninitialized) call the new LoadIC_Noninlined stub. Local benchmarks show up to 6% improvement on Sunspider with --future. BUG=v8:5917 Review-Url: https://codereview.chromium.org/2733563002 Cr-Commit-Position: refs/heads/master@{#43630}
-
Camillo Bruni authored
Change-Id: I58fc4ad8104f9a334a24de181168122f215a0505 BUG=chromium:678427 Change-Id: I58fc4ad8104f9a334a24de181168122f215a0505 Reviewed-on: https://chromium-review.googlesource.com/447980Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#43628}
-
Michael Starzinger authored
The parser already changes all negative equality comparison operations to their positive pendants in {ParserBase::ParseBinaryExpression}. No other source of the Token::NE exists in the system. We can remove all handling from the compiler and interpreter backends. R=bmeurer@chromium.org Change-Id: I58722c08dd8e498f20c65886fce86b8172737b10 Reviewed-on: https://chromium-review.googlesource.com/449716Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43627}
-
Peter Marshall authored
Part of the performance and refactoring work to move the TypedArray constructors into CSA. This CL moves ConstructByLength from JS to CSA. There are still other callers to typed_array_initialize in typedarray.js, so we share the implementation using DoInitialize. In a later CL we can split apart DoInitialize once we have more TA constructors written in CSA, so that we can reuse specific parts more easily. BUG=v8:5977 Change-Id: Ia51e8363970e9a025a82933e56a7baaf82cb1eec Reviewed-on: https://chromium-review.googlesource.com/448220Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#43626}
-
cwhan.tunz authored
- Remove TypedArrayIncludes in src/js/typedarray.js - Implement it to C++ using the IncludesValue implementation in ElementsAccessor BUG=v8:5929 Review-Url: https://codereview.chromium.org/2732823002 Cr-Commit-Position: refs/heads/master@{#43625}
-
aseemgarg authored
BUG=v8:4614 R=binji@chromium.org Review-Url: https://codereview.chromium.org/2623633003 Cr-Commit-Position: refs/heads/master@{#43623}
-
- 04 Mar, 2017 1 commit
-
-
vabr authored
BUG=v8:6026 Review-Url: https://codereview.chromium.org/2728463006 Cr-Commit-Position: refs/heads/master@{#43600}
-
- 03 Mar, 2017 2 commits
-
-
bmeurer authored
We don't need the JSStrictNotEqual operator in the compiler, because this is never generated by the BytecodeGraphBuilder, and the code in the AstGraphBuilder was dead code. Also remove the backing builtin StrictNotEqual. R=mstarzinger@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2727003006 Cr-Commit-Position: refs/heads/master@{#43594}
-
loorongjie authored
Original issue: https://codereview.chromium.org/2724833002/ BUG=v8:6005 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel R=bmeurer@chromium.org,yangguo@chromium.org Review-Url: https://codereview.chromium.org/2725053007 Cr-Commit-Position: refs/heads/master@{#43566}
-
- 02 Mar, 2017 6 commits
-
-
Camillo Bruni authored
This makes the assumption about new-space allocation in the CSA more clear. Additionally AllocateInNewSpace asserts that the allocation will fit in the new-space in a debug build. Change-Id: Ica5e7e12656dcdaa2c739b3d300fdcbaeb2355a2 Reviewed-on: https://chromium-review.googlesource.com/448043Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#43557}
-
tebbi authored
BinopMatcher does not notify the reducers using it when it flips inputs to commutative operators. This leads to value numbering not being re-executed in this case. Together with the fact that value numbering might still reduce such a modified node in the case of a hash collision merging the buckets of two equivalent nodes, this leads to unpredictable behaviour. This is the easiest fix for the problem: Always running value numbering last. This is also a performance improvement because value numbering never changes but only replaces nodes. R=mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2728983002 Cr-Commit-Position: refs/heads/master@{#43552}
-
Peter Marshall authored
Turbofan is a lot slower than Crankshaft at constructing TypedArrays, because we always go to the C++ builtin. Port the builtin to CSA to improve performance, and to clean up the implementation, which is split across multiple files and pieces at the moment. This CL increases the performance with --future to roughly the same as with crankshaft. BUG=v8:5977 Change-Id: Id0d91a4592de41a3a308846d79bd44a608931762 Reviewed-on: https://chromium-review.googlesource.com/448537Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#43548}
-
machenbach authored
Revert of Migrate Object.prototype.valueOf to CSA (patchset #4 id:80001 of https://codereview.chromium.org/2724833002/ ) Reason for revert: Breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/13900 See also: https://github.com/v8/v8/wiki/Blink-layout-tests Original issue's description: > Migrate Object.prototype.valueOf to CSA > > BUG=v8:6005 > > Review-Url: https://codereview.chromium.org/2724833002 > Cr-Commit-Position: refs/heads/master@{#43539} > Committed: https://chromium.googlesource.com/v8/v8/+/f93b27e639cca6a93ce9b6c535ece9b6cc399a01 TBR=bmeurer@chromium.org,yangguo@chromium.org,loorongjie@gmail.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6005 Review-Url: https://codereview.chromium.org/2730573004 Cr-Commit-Position: refs/heads/master@{#43547}
-
Igor Sheludko authored
... instead of inlining the dispatchers' code. This should reduce the size of the generated builtins code. BUG= Change-Id: Ia3f68ea8b398f049bad87f6ce93c818f0af4674f Reviewed-on: https://chromium-review.googlesource.com/447938Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43542}
-
loorongjie authored
BUG=v8:6005 Review-Url: https://codereview.chromium.org/2724833002 Cr-Commit-Position: refs/heads/master@{#43539}
-
- 01 Mar, 2017 3 commits
-
-
Peter Marshall authored
This reverts commit b23b2c10. Reason for revert: Makes Linux debug bot sad Original change's description: > [builtins] Port TypedArrayInitialize to CodeStubAssembler. > > Turbofan is a lot slower than Crankshaft at constructing TypedArrays, > because we always go to the C++ builtin. Port the builtin to CSA > to improve performance, and to clean up the implementation, which is > split across multiple files and pieces at the moment. > > This CL increases the performance with --future to roughly the same > as with crankshaft. > > BUG=v8:5977 > > Change-Id: I5a4c4b544a735a56290b85bf33c2f3718df7e2b8 > Reviewed-on: https://chromium-review.googlesource.com/445717 > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/master@{#43518} TBR=cbruni@chromium.org,petermarshall@chromium.org,bmeurer@chromium.org,v8-reviews@googlegroups.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5977 Change-Id: I5d5bc8b4677a405c716d78e688af80ae9c737b4a Reviewed-on: https://chromium-review.googlesource.com/448558Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#43520}
-
Peter Marshall authored
Turbofan is a lot slower than Crankshaft at constructing TypedArrays, because we always go to the C++ builtin. Port the builtin to CSA to improve performance, and to clean up the implementation, which is split across multiple files and pieces at the moment. This CL increases the performance with --future to roughly the same as with crankshaft. BUG=v8:5977 Change-Id: I5a4c4b544a735a56290b85bf33c2f3718df7e2b8 Reviewed-on: https://chromium-review.googlesource.com/445717 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#43518}
-
zhengxing.li authored
port 69747e26(r42680) original commit message: We turn a JSCallFunction node for f.apply(receiver, arguments) into a JSCallForwardVarargs node, when the arguments refers to the arguments of the outermost optimized code object, i.e. not an inlined arguments, and the apply method refers to Function.prototype.apply, and there's no other user of arguments except in frame states. We also replace the arguments node in the graph with a marker for the Deoptimizer similar to Crankshaft to make sure we don't materialize unused arguments just for the sake of deoptimization. We plan to replace this with a saner EscapeAnalysis based solution soon. BUG= Review-Url: https://codereview.chromium.org/2681783002 Cr-Commit-Position: refs/heads/master@{#43516}
-
- 28 Feb, 2017 5 commits
-
-
binji authored
This will be useful for sharing the implementation with SharedArrayBuffer.prototype.slice. BUG=v8:5897 Review-Url: https://codereview.chromium.org/2697013009 Cr-Commit-Position: refs/heads/master@{#43503}
-
Toon Verwaest authored
This is mostly prework to also support prototype chain checks using data handlers BUG= Change-Id: I70aac1e86e45c78dfdc9f02d06b7e821494a4c9c Reviewed-on: https://chromium-review.googlesource.com/447679 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43495}
-
Marja Hölttä authored
The x64 side is included in https://chromium-review.googlesource.com/c/444226/ BUG=v8:5294 Change-Id: Ie255604c5e38c72e3c2b76e1ca3557a5fde108ee Reviewed-on: https://chromium-review.googlesource.com/446394Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#43481}
-
tebbi authored
The new NewUnmappedArgumentsElements node now takes two inputs: - the frame holding the arguments (current frame or arguments adaptor frame) - the length of the suffix of passed arguments to be copied into the backing store These inputs are computed with two new node types: ArgumentsFrame() ArgumentsLength[formal_parameter_count,is_rest_length](Node* arguments_frame) The node type NewRestParameterElements can now be expressed with NewUnmappedArgumentsElements and an appropriate length and is thus not needed anymore. In escape analysis, we lower loads from the length field of NewUnmappedArgumentsElements with its length input and if we find out that no write access to the arguments elements exists, we replace element loads with direct stack access and replace the NewUnmappedArgumentsElements node with a node of the new node type ArgumentsElementsState. This corresponds to an ObjectState node and gets translated into a deoptimizer instruction to allocate the backing store. Together with the already existing deoptimizer support for the actual arguments object/rest parameters, this allows to remove all allocations for arguments objects/rest parameters in this case. In the deoptimizer, we read the actual parameters from the stack while transforming the static deopt info into TranslatedValue objects. If escape analysis cannot remove the backing store allocation, NewUnmappedArgumentsElements gets lo BUG=v8:5726 Review-Url: https://codereview.chromium.org/2692753004 Cr-Commit-Position: refs/heads/master@{#43475}
-
jkummerow authored
Avoiding runtime call overhead. There's a fast path for Function.prototype loads, which are very common. BUG=v8:5269 Review-Url: https://codereview.chromium.org/2711353002 Cr-Commit-Position: refs/heads/master@{#43474}
-
- 27 Feb, 2017 2 commits
-
-
binji authored
perf regression. See crbug.com/695653 for more info. Revert "[SAB] Move Atomics builtins to C++" This reverts commit 2b9840d8. Revert "[SAB] Remove unreachable Uint8Clamped atomics paths" This reverts commit d1160fb1. Revert "Remove tiny unit test for MinSimple/MaxSimple" This reverts commit 837760ec. Revert "Remove infrastructure for experimental JS natives" This reverts commit 8cfe45b6. BUG=695653 TBR=hablich@chromium.org Review-Url: https://codereview.chromium.org/2715223003 Cr-Commit-Position: refs/heads/master@{#43462}
-
Toon Verwaest authored
When an instance of a constructor goes dictionary mode, this changes the initial map of that constructor to also be in dictionary mode. This avoids spurious hidden class creation, that also results in IC misses. BUG= Change-Id: I0e70f822ac345d0224f2092ec473621a603d4cc5 Reviewed-on: https://chromium-review.googlesource.com/446361Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43452}
-
- 26 Feb, 2017 1 commit
-
-
vabr authored
Currently, ArrayIncludes handles the hypothetical case of an array with a fast ElementsKind and non-SMI length. This should not happen (and is checked against in JSArray::JSArrayVerify of objects_debug.cc). Therefore this CL replaces that handling with a CSA_ASSERT that the length is indeed SMI. The CL also simplifies loading of the (SMI) length on 64 bit architectures by using LoadAndUntagObjectField instead of LoadObjectField+SmiToWord. BUG=v8:5985 Review-Url: https://codereview.chromium.org/2714193002 Cr-Commit-Position: refs/heads/master@{#43433}
-
- 25 Feb, 2017 2 commits
-
-
vabr authored
Currently, Generate_ArrayIndexOf handles the hypothetical case of an array with a fast ElementsKind and non-SMI length. This should not happen (and is checked against in JSArray::JSArrayVerify of objects_debug.cc). Therefore this CL replaces that handling with a CSA_ASSERT that the length is indeed SMI. The CL also simplifies loading of the (SMI) length on 64 bit architectures by using LoadAndUntagObjectField instead of LoadObjectField+SmiToWord. The CL does not add new tests, because test/mjsunit/array-length.js should cover this already. BUG=v8:5985 Review-Url: https://codereview.chromium.org/2714173002 Cr-Commit-Position: refs/heads/master@{#43431}
-
cwhan.tunz authored
- If no comparison function is given for %TypedArray%.prototype.sort, sort the typedarray using std::sort in C++. This gets 20 times more benchmark score in Float64Array. - Move ValidateTypedArray in builtin-typedarray.cc to static inline method of JSTypedArray class. BUG=v8:5953 Review-Url: https://codereview.chromium.org/2693043009 Cr-Commit-Position: refs/heads/master@{#43427}
-