- 27 Apr, 2017 1 commit
-
-
jarin authored
This also fixes incorrect type for fixed array accesses. BUG=chromium:715651,v8:6309,chromium:715204 Review-Url: https://codereview.chromium.org/2848583002 Cr-Commit-Position: refs/heads/master@{#44926}
-
- 26 Apr, 2017 3 commits
-
-
bmeurer authored
This still doesn't cover all the paths yet, since some paths are impossible to trigger at this point due to the way the CanInlineCall predicate works on the AllocationSite, which says multiple things: - In case of Array(len), the len was always a Smi so far. - In case of Array(...args), storing the args didn't change the elements kind. - In case of Array(len), the len was always less than the initial maximum fast element array size. These conditions are tailored towards Crankshaft and don't really make a lot of sense in the TurboFan world. We'd need more fine grained protections, which we will achieve by refactoring the Array constructor. BUG=chromium:715404,v8:6262 TBR=machenbach@chromium.org Review-Url: https://codereview.chromium.org/2843033002 Cr-Commit-Position: refs/heads/master@{#44901}
-
jgruber authored
Revert of [turbofan] Fix impossible type handling for TypeGuard and BooleanNot. (patchset #1 id:1 of https://codereview.chromium.org/2836203004/ ) Reason for revert: Tentative revert for https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/14886 Original issue's description: > [turbofan] Fix impossible type handling for TypeGuard and BooleanNot. > > BUG=chromium:715204 > > Review-Url: https://codereview.chromium.org/2836203004 > Cr-Commit-Position: refs/heads/master@{#44883} > Committed: https://chromium.googlesource.com/v8/v8/+/9c47a061cf325addf8bd2ba4b71a4d1ef210c5d6 TBR=bmeurer@chromium.org,jarin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:715204 Review-Url: https://codereview.chromium.org/2842793004 Cr-Commit-Position: refs/heads/master@{#44898}
-
jarin authored
BUG=chromium:715204 Review-Url: https://codereview.chromium.org/2836203004 Cr-Commit-Position: refs/heads/master@{#44883}
-
- 25 Apr, 2017 3 commits
-
-
jyan authored
Also add more local variables to regress-v8-6077 to force register spill on platform with 32 float registers. BUG= Review-Url: https://codereview.chromium.org/2822073003 Cr-Commit-Position: refs/heads/master@{#44865}
-
Tobias Tebbi authored
Bug: chromium:713367 Change-Id: I3f5960f5b2da22c6468ca5a5ea9dc847b30c7fc7 Reviewed-on: https://chromium-review.googlesource.com/486360 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#44862}
-
jarin authored
BUG=chromium:714483 Review-Url: https://codereview.chromium.org/2833423004 Cr-Commit-Position: refs/heads/master@{#44830}
-
- 24 Apr, 2017 1 commit
-
-
bmeurer authored
We already have an optimization to constant-fold access to an object's prototype via the special __proto__ accessor (specified in appendix B). We can use the same optimization to also constant-fold accesses to an object's prototype via the official Object.getPrototypeOf function. Also add the optimization for Reflect.getPrototypeOf, which is equivalent for object inputs. This is commonly used by Babel to implement various new language features, for example subclassing and certain property lookups. R=yangguo@chromium.org BUG=v8:6292 Review-Url: https://codereview.chromium.org/2841463002 Cr-Commit-Position: refs/heads/master@{#44788}
-
- 19 Apr, 2017 1 commit
-
-
bmeurer authored
Move JSOrdinaryHasInstance lowering to JSNativeContextSpecialization, which was previously mostly done in JSTypedLowering (for no reason). Add new logic to the lowering to constant-fold OrdinaryHasInstance checks when the map of the left-hand side and the "prototype" of the right-hand side is known. This address the performance issue with the (base) class constructors generated by Babel, i.e.: function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var C = function C() { _classCallCheck(this, C); }; for class C {} Also ensure that a known constructor being used inside an instanceof get's a proper initial map on-demand. BUG=v8:6275 R=mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2827013002 Cr-Commit-Position: refs/heads/master@{#44727}
-
- 27 Mar, 2017 1 commit
-
-
Ross McIlroy authored
Since we no longer support the ignition-staging configuration any longer, we can retire the three tier pipeline and the CompileBaseline functionallity. We still need support for JSFunction self healing due to liveedit (which for --no-turbo might end up replacing a forced Ignition function with a FCG function) - we can remove this once we remove --no-turbo support. BUG=v8:4280 Change-Id: I5482abd17785324654e022affd6bdb555b19b181 Reviewed-on: https://chromium-review.googlesource.com/452620 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44141}
-
- 24 Mar, 2017 1 commit
-
-
tebbi authored
BUG=chromium:699251 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2766383003 Cr-Commit-Position: refs/heads/master@{#44095}
-
- 22 Mar, 2017 1 commit
-
-
jarin authored
BUG=v8:6077 Review-Url: https://codereview.chromium.org/2765323002 Cr-Commit-Position: refs/heads/master@{#44035}
-
- 15 Mar, 2017 2 commits
-
-
jarin authored
BUG=chromium:700883 Review-Url: https://codereview.chromium.org/2751513006 Cr-Commit-Position: refs/heads/master@{#43812}
-
jarin authored
BUG=chromium:693425 Review-Url: https://codereview.chromium.org/2749193003 Cr-Commit-Position: refs/heads/master@{#43811}
-
- 13 Mar, 2017 1 commit
-
-
Ilija.Pavlovic authored
Test regress-694088.js is adapted for execution on big endian platforms. TEST=test/mjsunit/compiler/regress-694088.js BUG= Review-Url: https://codereview.chromium.org/2739403002 Cr-Commit-Position: refs/heads/master@{#43746}
-
- 10 Mar, 2017 1 commit
-
-
Michael Starzinger authored
Now that the --turbo flag is on by default, this implication makes it impossible to disable the runtime profiler to prevent functions from being considered hot. Essentially the --nocrankshaft flag was borked. R=machenbach@chromium.org Change-Id: I698008b4b69038e8bfab6d8ec3ccf57e2fd71701 Reviewed-on: https://chromium-review.googlesource.com/452619Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43720}
-
- 28 Feb, 2017 3 commits
-
-
tebbi authored
R=bmeurer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2680973013 Cr-Original-Commit-Position: refs/heads/master@{#43163} Committed: https://chromium.googlesource.com/v8/v8/+/f01c8a6e4b24ab38e58bb141fc251bc6b75dbe21 Review-Url: https://codereview.chromium.org/2680973013 Cr-Commit-Position: refs/heads/master@{#43478}
-
jarin authored
BUG=chromium:694088 Review-Url: https://codereview.chromium.org/2725593002 Cr-Commit-Position: refs/heads/master@{#43477}
-
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}
-
- 24 Feb, 2017 1 commit
-
-
neis authored
If the RHS is 0 and we have Smi feedback, speculate that the result (the LHS) will continue to be in the Unsigned31 range. This helps us avoid converting the result to double when merging with Signed32. R=jarin@chromium.org BUG= Review-Url: https://codereview.chromium.org/2709423002 Cr-Commit-Position: refs/heads/master@{#43415}
-
- 22 Feb, 2017 1 commit
-
-
bakkot authored
This implements the proposal at https://github.com/tc39/proposal-template-literal-revision staged behind a flag --harmony-template-escapes. The proposal allows invalid octal, unicode, and hexadecimal escape sequences to appear in tagged template literals, instead of being a syntax error. These have a 'cooked' value of 'undefined', but are still accessible through the 'raw' property. BUG=v8:5546 Review-Url: https://codereview.chromium.org/2665513002 Cr-Commit-Position: refs/heads/master@{#43384}
-
- 15 Feb, 2017 1 commit
-
-
ishell@chromium.org authored
BUG= Change-Id: I859fef6b18e51cca80343a89e2b6f38eee95d408 Reviewed-on: https://chromium-review.googlesource.com/442428 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#43206}
-
- 10 Feb, 2017 1 commit
-
-
ishell authored
This CL includes runtime and IC parts of the tracking. It is controlled by compile-time flag FLAG_constant_field_tracking and currently disabled. Transition from kConst to kMutable still involves map deprecation. BUG=v8:5495 Review-Url: https://codereview.chromium.org/2598543003 Cr-Commit-Position: refs/heads/master@{#43081}
-
- 07 Feb, 2017 1 commit
-
-
ishell@chromium.org authored
... and TypeFeedbackMetadata to FeedbackMetadata. BUG= Change-Id: I2556d1c2a8f37b8cf3d532cc98d973b6dc7e9e6c Reviewed-on: https://chromium-review.googlesource.com/439244 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#42999}
-
- 30 Jan, 2017 1 commit
-
-
tebbi authored
R=bmeurer@chromium.org BUG=chromium:682570 Review-Url: https://codereview.chromium.org/2664683003 Cr-Commit-Position: refs/heads/master@{#42769}
-
- 28 Jan, 2017 1 commit
-
-
jarin authored
This avoids using kTaggedSigned and kTaggedPointer because the semantic information of those type could be invalid in unreachable code. For example, SmiCheck(0.1) has representation TaggedSigned, but it is later compiled to DeoptimizeUnless(ObjectIsSmi(0.1)) with the constant 0.1 directly connected to the uses. If the use is state-values, which recorded the TaggedSigned representation of CheckSmi, the code generator will be confused because it will see constant 0.1 that claims to be TaggedSigned value. BUG=chromium:675704 Review-Url: https://codereview.chromium.org/2656243004 Cr-Commit-Position: refs/heads/master@{#42756}
-
- 27 Jan, 2017 2 commits
-
-
tebbi authored
R=mstarzinger@chromium.org BUG=chromium:683566 Review-Url: https://codereview.chromium.org/2653953010 Cr-Commit-Position: refs/heads/master@{#42737}
-
ishell authored
The mentioned asserts did not work properly with interpreted and turbofanned functions. To fix this issue %GetOptimizationStatus() now returns a set of flags instead of a single value. This CL also adds more helper functions to mjsunit, like isNeverOptimize(), isAlwaysOptimize(), isOptimized(fun), etc. BUG=v8:5890 Review-Url: https://codereview.chromium.org/2654733004 Cr-Original-Commit-Position: refs/heads/master@{#42703} Committed: https://chromium.googlesource.com/v8/v8/+/d1ddec785725a184fe6d01bd0813262e3ba24966 Review-Url: https://codereview.chromium.org/2654733004 Cr-Commit-Position: refs/heads/master@{#42731}
-
- 26 Jan, 2017 3 commits
-
-
ishell authored
This CL adds --crankshaft and --no-always-opt flags to the tests that use assertOptimized() and assertUnoptimized() respectively. This CL also adds presubmit checks that ensure that tests have the proper flags set. BUG=v8:5890 Review-Url: https://codereview.chromium.org/2653753007 Cr-Commit-Position: refs/heads/master@{#42709}
-
machenbach authored
Revert of [tests] Make assertOptimized()/assertUnoptimized() great again. (patchset #6 id:130042 of https://codereview.chromium.org/2654733004/ ) Reason for revert: Mac gc stress failures: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/11195 There's also this flake, but maybe unrelated: https://build.chromium.org/p/client.v8/builders/V8%20Win64/builds/15422 Original issue's description: > [tests] Make assertOptimized()/assertUnoptimized() great again. > > The mentioned asserts did not work properly with interpreted and turbofanned functions. > > To fix this issue %GetOptimizationStatus() now returns a set of flags instead of a single value. > > This CL also adds more helper functions to mjsunit, like isNeverOptimize(), isAlwaysOptimize(), > isOptimized(fun), etc. > > BUG=v8:5890 > > Review-Url: https://codereview.chromium.org/2654733004 > Cr-Commit-Position: refs/heads/master@{#42703} > Committed: https://chromium.googlesource.com/v8/v8/+/d1ddec785725a184fe6d01bd0813262e3ba24966 TBR=mstarzinger@chromium.org,ishell@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5890 Review-Url: https://codereview.chromium.org/2655223003 Cr-Commit-Position: refs/heads/master@{#42704}
-
ishell authored
The mentioned asserts did not work properly with interpreted and turbofanned functions. To fix this issue %GetOptimizationStatus() now returns a set of flags instead of a single value. This CL also adds more helper functions to mjsunit, like isNeverOptimize(), isAlwaysOptimize(), isOptimized(fun), etc. BUG=v8:5890 Review-Url: https://codereview.chromium.org/2654733004 Cr-Commit-Position: refs/heads/master@{#42703}
-
- 11 Jan, 2017 1 commit
-
-
mstarzinger authored
R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2624113002 Cr-Commit-Position: refs/heads/master@{#42216}
-
- 23 Dec, 2016 1 commit
-
-
jarin authored
BUG=v8:5756 Review-Url: https://codereview.chromium.org/2596843002 Cr-Commit-Position: refs/heads/master@{#41942}
-
- 20 Dec, 2016 1 commit
-
-
tebbi authored
R=jarin@chromium.org BUG=chromium:673243 Review-Url: https://codereview.chromium.org/2578133002 Cr-Commit-Position: refs/heads/master@{#41848}
-
- 15 Dec, 2016 1 commit
-
-
jarin authored
Review-Url: https://codereview.chromium.org/2579743002 Cr-Commit-Position: refs/heads/master@{#41718}
-
- 13 Dec, 2016 1 commit
-
-
tebbi authored
R=epertoso@chromium.org,mstarzinger@chromium.org BUG=671324 Review-Url: https://codereview.chromium.org/2571793002 Cr-Commit-Position: refs/heads/master@{#41679}
-
- 12 Dec, 2016 1 commit
-
-
jarin authored
BUG=chromium:673244 Review-Url: https://codereview.chromium.org/2568053002 Cr-Commit-Position: refs/heads/master@{#41634}
-
- 08 Dec, 2016 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org,titzer@chromium.org Review-Url: https://codereview.chromium.org/2557693006 Cr-Commit-Position: refs/heads/master@{#41579}
-
- 07 Dec, 2016 1 commit
-
-
jarin authored
BUG=chromium:671574 Review-Url: https://codereview.chromium.org/2560743002 Cr-Commit-Position: refs/heads/master@{#41541}
-
- 30 Nov, 2016 1 commit
-
-
rmcilroy authored
JSFrameSpecialization depends on the layout of the frame and doesn't work with interpreted frames. Disable it since it is only used for OSR from asmjs code, which shouldn't go through the bytecode graph builder in many cases. BUG=669517 Review-Url: https://codereview.chromium.org/2538823002 Cr-Commit-Position: refs/heads/master@{#41387}
-