- 17 Aug, 2017 3 commits
-
-
Ross McIlroy authored
This is a reland of 21da12a9 Original change's description: > [Compiler] Remove CompileDebugCode and EnsureBytecode and replace with Compile > > Removes the Compiler::CompileDebugCode and Compiler::EnsureBytecode functions > and replaces them with a Compiler::Compile(Handle<SharedFunctionInfo> shared) > function. The code in compiler.cc is refactored to use this function to compile > the SharedFunctionInfo when compiling a JSFunction. > > Also does some other cleanup: > - Removes CompileUnoptimizedFunction and inlines into new Compiler function > - Moves code to create top level SharedFunctionInfo into CompilerTopLevel and > out of FinalizeUnoptimizedCompile. > > BUG=v8:6409 > > Change-Id: Ic54afcd8eb005c17f3ae6b2355060846e3091ca3 > Reviewed-on: https://chromium-review.googlesource.com/613760 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47394} TBR=yangguo@chromium.org TBR=jarin@chromium.org Bug: v8:6409 Change-Id: If2eae66a85f129e746a5ca5c04935540f3f86b04 Reviewed-on: https://chromium-review.googlesource.com/618886Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47399}
-
Ross McIlroy authored
This reverts commit 21da12a9. Reason for revert: Failing on arm64 simulator Original change's description: > [Compiler] Remove CompileDebugCode and EnsureBytecode and replace with Compile > > Removes the Compiler::CompileDebugCode and Compiler::EnsureBytecode functions > and replaces them with a Compiler::Compile(Handle<SharedFunctionInfo> shared) > function. The code in compiler.cc is refactored to use this function to compile > the SharedFunctionInfo when compiling a JSFunction. > > Also does some other cleanup: > - Removes CompileUnoptimizedFunction and inlines into new Compiler function > - Moves code to create top level SharedFunctionInfo into CompilerTopLevel and > out of FinalizeUnoptimizedCompile. > > BUG=v8:6409 > > Change-Id: Ic54afcd8eb005c17f3ae6b2355060846e3091ca3 > Reviewed-on: https://chromium-review.googlesource.com/613760 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47394} TBR=rmcilroy@chromium.org,yangguo@chromium.org,jarin@chromium.org,leszeks@chromium.org Change-Id: I4ba63e82417a185f1528ff2633eb6c8872fbbfe5 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6409 Reviewed-on: https://chromium-review.googlesource.com/618687Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47397}
-
Ross McIlroy authored
Removes the Compiler::CompileDebugCode and Compiler::EnsureBytecode functions and replaces them with a Compiler::Compile(Handle<SharedFunctionInfo> shared) function. The code in compiler.cc is refactored to use this function to compile the SharedFunctionInfo when compiling a JSFunction. Also does some other cleanup: - Removes CompileUnoptimizedFunction and inlines into new Compiler function - Moves code to create top level SharedFunctionInfo into CompilerTopLevel and out of FinalizeUnoptimizedCompile. BUG=v8:6409 Change-Id: Ic54afcd8eb005c17f3ae6b2355060846e3091ca3 Reviewed-on: https://chromium-review.googlesource.com/613760 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#47394}
-
- 10 Aug, 2017 1 commit
-
-
Ross McIlroy authored
Deletes AstGraphBuilder and associated classes now that it is unreachable. The following classes are also removed: - ControlBuilders - JSFrameSpecialization - AstLoopAssignmentAnalysis Also removes flags from compilation-info which are no longer used, and removes the no-deoptimization paths from TypedOptimization, JsTypedLowering, JSIntrinsicLowering and JSBuiltinLowering. BUG=v8:6409 Change-Id: I63986e8e3497bf63c4a27ea8ae827b8a633d4a26 Reviewed-on: https://chromium-review.googlesource.com/583652 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47284}
-
- 09 Aug, 2017 2 commits
-
-
Mythri authored
Currently, we do not inline recursive functions. This is in general a good idea but could be useful in some cases. For example, in rayTrace there is a class.create function to create new classes, which basically calls the initialize function on the object. When there are classes which instantiate other classes this leads to recursion. These are really small functions (within the small function budget) and it is good to inline them. Allowing such functions to inline improves the score on rayTrace by 12-16% and box2d by 24-30%. There is also an absolute limit on the maximum levels of inlining to avoid any corner cases and to ensure inlining always terminates. Bug: v8:6682 Change-Id: I6784f68d6395097d126c0850b1a1336b6583d958 Reviewed-on: https://chromium-review.googlesource.com/608235Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#47255}
-
Mostyn Bramley-Moore authored
To speed up compilation times, jumbo allows files to be compiled together. This is a well known method ("unity builds") to both compile faster and create a poor man's "full program optimization". We are only interested in compile times. Background: https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md Note that jumbo builds are not enabled by default. To try this out, add use_jumbo_build=true to your GN args. BUG=chromium:746958 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ieb9fdccb6c135e9806dbed91c09a29aa8b8bee11 Reviewed-on: https://chromium-review.googlesource.com/579090 Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#47239}
-
- 04 Aug, 2017 1 commit
-
-
Ross McIlroy authored
Moves the construction of CompilationInfo for unoptimized code into GenerateUnoptimizedCode in preparation for making it owned by the unoptimized compilation jobs (to be done in a followup CL). This CL also adds a new constructor for creation of unoptimized CompilationInfos with fields correctly initialized and updates the existing constructor to he exclusively for optimized compilation. Finally, also moves the call to RecordFunctionCompilation with LAZY_COMPILE_TAG recording into FinalizeUnoptimizedCompilationJob where it is called for other unoptimized compiles. BUG=v8:5203,v8:6659 Change-Id: Icfd7f56588073f2fc547e002db9fa99843ed2e8b Reviewed-on: https://chromium-review.googlesource.com/598908 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47160}
-
- 03 Aug, 2017 1 commit
-
-
Ross McIlroy authored
Don't hold a pointer to parse_info in compilation_info, and instead explicitly add the fields needed in compiation_info. The intention is to make ParseInfo only actually needed for parsing, and eventually make it possible to compile with only a CompileInfo. BUG=v8:5203 Change-Id: Iecd39245e44c218874401c3991eeaf3ceef2816f Reviewed-on: https://chromium-review.googlesource.com/595738Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47119}
-
- 01 Aug, 2017 1 commit
-
-
jgruber authored
This is a reland of 2f79e035 Original change's description: > [builtins] Remove Builtins::Name() accessors > > Instead of auto-generating the Name() convenience accessor, use a macro to > avoid wasting code space. > > BUILTIN_CODE(isolate, Name) > > expands to > > isolate->builtins()->builtin_handle(Builtins::kName); > > This reduces the size of libv8.so by 134,752 bytes on a x64 release build. > > Bug: v8:6624 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: Idff7ee5c45e344e73412c0f47e92553c7c7ff75f > Reviewed-on: https://chromium-review.googlesource.com/593607 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47010} TBR=bmeurer@chromium.org,ahaas@chromium.org Bug: v8:6624 Change-Id: I4733731e56dc8873ee06c2b36cac1918c0a658b2 Reviewed-on: https://chromium-review.googlesource.com/594087 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47037}
-
- 31 Jul, 2017 2 commits
-
-
Jakob Gruber authored
This reverts commit 2f79e035. Reason for revert: Conflicts with successor CL. Original change's description: > [builtins] Remove Builtins::Name() accessors > > Instead of auto-generating the Name() convenience accessor, use a macro to > avoid wasting code space. > > BUILTIN_CODE(isolate, Name) > > expands to > > isolate->builtins()->builtin_handle(Builtins::kName); > > This reduces the size of libv8.so by 134,752 bytes on a x64 release build. > > Bug: v8:6624 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: Idff7ee5c45e344e73412c0f47e92553c7c7ff75f > Reviewed-on: https://chromium-review.googlesource.com/593607 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47010} TBR=yangguo@chromium.org,ahaas@chromium.org,jgruber@chromium.org,bmeurer@chromium.org Change-Id: Ia9ef5c755b26c3f4e143d87a7c51033614ea435e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6624 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/594048Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47012}
-
jgruber authored
Instead of auto-generating the Name() convenience accessor, use a macro to avoid wasting code space. BUILTIN_CODE(isolate, Name) expands to isolate->builtins()->builtin_handle(Builtins::kName); This reduces the size of libv8.so by 134,752 bytes on a x64 release build. Bug: v8:6624 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Idff7ee5c45e344e73412c0f47e92553c7c7ff75f Reviewed-on: https://chromium-review.googlesource.com/593607Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47010}
-
- 26 Jul, 2017 1 commit
-
-
Alexandre Talon authored
Reland of https://chromium-review.googlesource.com/c/543042/. Now the OSR phase is only used when OSRing from the ast graph builder. When OSRing from Turbofan, the implementation is now in the graph building phase, at the beginning of the VisitBytecode function. We are no longer generating any OSRLoopEntry or OSRNormalEntry nodes, nor nodes for the possible code of the OSRed function which is before the OSRed loops. The trimming and reducing of the OSR phase is not done either. This change in the way the way the OSR is done enabled to remove the workaround to the bug mentioned below. Bug: v8:6112 Bug: v8:6518 Change-Id: Ia02f2138f54fc79cab2f02fed68d9bb522d6ce14 Reviewed-on: https://chromium-review.googlesource.com/584756 Commit-Queue: Alexandre Talon <alexandret@google.com> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46899}
-
- 21 Jul, 2017 2 commits
-
-
Ross McIlroy authored
This reverts commit 69c8f16d. Reason for revert: Causing crashes on Clusterfuzz - http://crbug.com/747154 BUG=chromium:747154 Original change's description: > [Turbofan] Merged the OSR phase into the graph building phase. > > Now the OSR phase is only used when OSRing from the ast graph builder. > When OSRing from Turbofan, the implementation is now in the graph > building phase, at the beginning of the VisitBytecode function. > We are no longer generating any OSRLoopEntry or OSRNormalEntry nodes, > nor nodes for the possible code of the OSRed function which is before > the OSRed loops. > > The trimming and reducing of the OSR phase is not done either. This > change in the way the way the OSR is done enabled to remove the > workaround to the bug mentioned below. > > Bug: v8:6112 > Bug: v8:6518 > Change-Id: I1c9231810b923486d55ea618d550d981d695d797 > Reviewed-on: https://chromium-review.googlesource.com/543042 > Commit-Queue: Alexandre Talon <alexandret@google.com> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46801} TBR=rmcilroy@chromium.org,mstarzinger@chromium.org,leszeks@chromium.org,alexandret@google.com Change-Id: Ifa9bf5d86e888a47cad7fb10446b36fda5029604 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6112, v8:6518 Reviewed-on: https://chromium-review.googlesource.com/581288Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46817}
-
Ross McIlroy authored
Removes the SharedFunctionInfo field from the ParseInfo structure. Instead require a SharedFunctionInfo to be explicitly passed to ParseFunction. Also renames GetUnoptimizedCode to CompileUnoptimizedFunction to make it clear it should only be called for non-top-level code. BUG=v8:5203 Change-Id: Ibce016e6a5290c3685f7f0a2f5fb1eb2df2ffc3b Reviewed-on: https://chromium-review.googlesource.com/574589 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#46814}
-
- 20 Jul, 2017 1 commit
-
-
Alexandre Talon authored
Now the OSR phase is only used when OSRing from the ast graph builder. When OSRing from Turbofan, the implementation is now in the graph building phase, at the beginning of the VisitBytecode function. We are no longer generating any OSRLoopEntry or OSRNormalEntry nodes, nor nodes for the possible code of the OSRed function which is before the OSRed loops. The trimming and reducing of the OSR phase is not done either. This change in the way the way the OSR is done enabled to remove the workaround to the bug mentioned below. Bug: v8:6112 Bug: v8:6518 Change-Id: I1c9231810b923486d55ea618d550d981d695d797 Reviewed-on: https://chromium-review.googlesource.com/543042 Commit-Queue: Alexandre Talon <alexandret@google.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46801}
-
- 13 Jul, 2017 1 commit
-
-
Adam Klein authored
The tail call implementation is hidden behind the --harmony-tailcalls flag, which is off-by-default (and has been unstaged since February). It is known to be broken in a variety of cases, including clusterfuzz security issues (see sample Chromium issues below). To avoid letting the implementation bitrot further on trunk, this patch removes it. Bug: v8:4698, chromium:636914, chromium:724746 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I9cb547101456a582374fdf7b1a3f044a9ef33e5c Reviewed-on: https://chromium-review.googlesource.com/569069 Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46651}
-
- 08 Jun, 2017 1 commit
-
-
Mythri authored
ThrowIfHole bytecodes were handled by introducing deopt points to check for a hole. To avoid deopt loops a hole check protector was used to generate control flow if there was a deopt due to a hole. However, the normal control flow version should be as fast as the deopt version in general. The deopt version could potentially consume less compile time but it may not be worth the complexity added. Hence simplifying it to only construct the control flow. Bug: v8:6383 Change-Id: Icace11f7a6e21e64e1cebd104496e3f559bc85f7 Reviewed-on: https://chromium-review.googlesource.com/525573Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#45783}
-
- 06 Jun, 2017 1 commit
-
-
Mythri authored
Introduces ThrowReferenceErrorIfHole / ThrowSuperNotCalledIfHole / ThrowSuperAlreadyCalledIfNotHole bytecodes to handle hole checks. In the bytecode-graph builder they are handled by introducing a deopt point instead of adding explicit control flow. JumpIfNotHole / JumpIfNotHoleConstant bytecodes are removed since they are no longer required. Bug: v8:4280, v8:6383 Change-Id: I58b70c556b0ffa30e41a0cd44016874c3e9c5fe1 Reviewed-on: https://chromium-review.googlesource.com/509613 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45720}
-
- 31 May, 2017 1 commit
-
-
jgruber authored
DebugInfo was very closely tied to break point support: * It contained only information relevant to break points. * It was created and freed by break point implementation. * Existence of a DebugInfo on the shared function info implied existence of break points. This CL is a step towards making DebugInfo usable by other debugging functionality such as block coverage by decoupling it from break point support, which is now only one kind of information stored on the DebugInfo object. BUG=v8:6000 Review-Url: https://codereview.chromium.org/2909893002 Cr-Commit-Position: refs/heads/master@{#45640}
-
- 29 May, 2017 1 commit
-
-
Michael Starzinger authored
This removes special support in the compilation pipeline to keep alive unoptimized code for inlined functions (i.e. preventing the code flusher from clearing it). Now that the code flusher is gone, this is obsolete. R=jarin@chromium.org Change-Id: I00361d12f2d17556056d06c10ad19f09a4772cd8 Reviewed-on: https://chromium-review.googlesource.com/517948Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45568}
-
- 19 May, 2017 1 commit
-
-
Tobias Tebbi authored
Bug: chromium:723802 Change-Id: I8f23d016a5aaf785fcd27cd139a196a148a37069 Reviewed-on: https://chromium-review.googlesource.com/508712 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45424}
-
- 10 May, 2017 1 commit
-
-
Tobias Tebbi authored
[turbofan] [builtins] Unify construct builtins for JS functions and classes and add inlining and deoptimizer support BUG=v8:6180 R=mstarzinger@chromium.org Change-Id: Iac5782a0f6b0ff92293421656d907073cfc3f5dd Reviewed-on: https://chromium-review.googlesource.com/489525 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45232}
-
- 03 May, 2017 1 commit
-
-
bmeurer authored
When we don't know the call count for a given call site (i.e. for inlined accessors), we put 0 as call frequency so far. But as of https://codereview.chromium.org/2859433002, this would completely disable the inlining of those calls, since 0 is interpreted as never called, which is not what we want. So instead of defaulting to 0, add a dedicated sentinel, whose value is NaN, which makes the call site eligible for inlining, but not high priority (as it was before the CL mentioned above). BUG=v8:4493,v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2856103002 Cr-Commit-Position: refs/heads/master@{#45053}
-
- 25 Apr, 2017 1 commit
-
-
jarin authored
BUG=chromium:714483 Review-Url: https://codereview.chromium.org/2833423004 Cr-Commit-Position: refs/heads/master@{#44830}
-
- 12 Apr, 2017 2 commits
-
-
bmeurer authored
Add the notion of reliable vs. unreliable receiver map information to the NodeProperties::InferReceiverMaps machinery. The information is considered reliable here if the maps are known to be valid based on the effect chain, and unreliable if there was a side-effect in between that might have changed the receiver map. Use this unreliable information for Array.prototype.push, guarded by either stability dependencies or map checks, which might present a potential deoptimization loop, which is very unlikely, but still needs fixing in the future. This is important to optimize calls to push even in cases like this array.push(something.func()); where we have a side-effect (the call to something.func) between the load of array.push and the actual call. R=jarin@chromium.org BUG=v8:5267,v8:6241 Review-Url: https://codereview.chromium.org/2812233002 Cr-Commit-Position: refs/heads/master@{#44595}
-
Sathya Gunasekaran authored
This change mirrors the semantics for derived class constructors. This change doesn't affect non class constructors. This change could potentially break web compat. More details: https://github.com/tc39/ecma262/pull/469 Bug=v8:5536 Change-Id: I519599949523733332d0b35e4f8d9ecb01cac495 Reviewed-on: https://chromium-review.googlesource.com/461225Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#44594}
-
- 30 Mar, 2017 1 commit
-
-
bmeurer authored
The inlining logic doesn't account for the fact that the derived constructor could return a primitive, thus leaking the implicit receiver (which is the hole). R=jarin@chromium.org BUG=chromium:706642 Review-Url: https://codereview.chromium.org/2788603002 Cr-Commit-Position: refs/heads/master@{#44264}
-
- 27 Mar, 2017 1 commit
-
-
Wiktor Garbacz authored
A step towards removing isolate from ParseInfo. Removing isolate from ParseInfo will make it easier to create and execute parse tasks on background threads. BUG=v8:6093 Change-Id: I25b23b3bf64502f84c28ce688ad2997c9665a069 Reviewed-on: https://chromium-review.googlesource.com/458003Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Daniel Vogelheim <vogelheim@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#44140}
-
- 17 Mar, 2017 1 commit
-
-
Michael Starzinger authored
This is a first stab at extending the existing early lowering approach to property access operations. Currently we only handle the case where named property loads are lowered to a soft deoptimize operation, due to insufficient type feedback. R=jarin@chromium.org Change-Id: I779ffb99978023237da5ad9eaf0241fe74243882 Reviewed-on: https://chromium-review.googlesource.com/456316 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#43899}
-
- 15 Mar, 2017 1 commit
-
-
Michael Starzinger authored
This changes the IR to no longer require single {IfSuccess} projection nodes unless there is a corresponding {IfException} node that links the potentially throwing call to an exception handler. This reduces graph size as well as compilation time when exception handlers aren't present. The new invariant for potentially throwing nodes is: Nodes that can potentially throw either have both IfSuccess/IfException projections as the only control uses and no direct control uses, or no projections at all and solely direct control uses. R=jarin@chromium.org Change-Id: I3d9cd816d74ad5af13e0673da7ec7a98f1ecdc7e Reviewed-on: https://chromium-review.googlesource.com/449715 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#43814}
-
- 02 Mar, 2017 1 commit
-
-
Michael Starzinger authored
This unifies the search for a potential {IfException} projection with the existing predicate on {NodeProperties} used by the rest of the system. Also contains a related drive-by change to graph builders. This is in preparation of eliding {IfSuccess} projections when possible. R=jarin@chromium.org Change-Id: I8ba0ae9e9fdb69a77bce01578200ceea434535f7 Reviewed-on: https://chromium-review.googlesource.com/448039Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43540}
-
- 20 Feb, 2017 1 commit
-
-
bmeurer authored
Unify the three different implementations of InferReceiverMaps, which were basically copy&paste with slightly different optimizations applied later into a single NodeProperties::InferReceiverMaps helper, which also returns a ZoneHandleSet of maps, rather than only a single map. BUG=v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2703133003 Cr-Commit-Position: refs/heads/master@{#43318}
-
- 17 Feb, 2017 1 commit
-
-
bmeurer authored
In the JSInliner we shouldn't introduce JSConvertReceiver needlessly if the input is already known to produce a receiver, i.e. if it's a JSCreate or something like that. BUG=v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2697513010 Cr-Commit-Position: refs/heads/master@{#43273}
-
- 13 Feb, 2017 1 commit
-
-
Michael Starzinger authored
This adds support for deoptimizing into the JSConstructStub after the receiver instantiation but before the actual constructor invocation. Such a deoptimization point is needed for cases where instantiation might be observed (e.g. when new.target is a proxy) and hence might trigger a deopt. We use this new deoptimization point for the "after" frame-state the inliner attaches to {JSCreate} nodes being inserted when constructor calls are being inlined. R=jarin@chromium.org TEST=mjsunit/regress/regress-5638b BUG=v8:5638 Change-Id: I7c72c807ee8fb76d12e0e9ccab86d970ab1a0efd Reviewed-on: https://chromium-review.googlesource.com/440125Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43149}
-
- 10 Feb, 2017 1 commit
-
-
rmcilroy authored
In order to allow parallel compilation of eager inner functions, we need to seperate the zone used for parsing (which will be shared between all the parallel compile jobs) and the zone used for compilation. This CL changes CompilationInfo to require a zone (which can be different from the zone in ParseInfo). We then seal the ParseInfo zone after parsing and analysis is done to prevent any further allocation in that zone, so that it can be shared (read-only) with the parallel compile jobs. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2645403002 Cr-Commit-Position: refs/heads/master@{#43089}
-
- 07 Feb, 2017 5 commits
-
-
hablich authored
Reland of land: [Parse] ParseInfo owns the parsing Zone. (patchset #1 id:1 of https://codereview.chromium.org/2683733002/ ) Reason for revert: False alarm, bot hiccup Original issue's description: > Revert of Reland: [Parse] ParseInfo owns the parsing Zone. (patchset #7 id:140001 of https://codereview.chromium.org/2632123006/ ) > > Reason for revert: > Speculative revert because of revert needed for https://codereview.chromium.org/2632123006 > > Original issue's description: > > Reland: [Parse] ParseInfo owns the parsing Zone. > > > > Moves ownership of the parsing Zone to ParseInfo with a shared_ptr. This is > > in preperation for enabling background compilation jobs for inner functions > > share the AST in the outer-function's parse zone memory (read-only), with the > > and zone being released when all compilation jobs have completed. > > > > BUG=v8:5203,v8:5215 > > > > Review-Url: https://codereview.chromium.org/2632123006 > > Cr-Original-Commit-Position: refs/heads/master@{#42993} > > Committed: https://chromium.googlesource.com/v8/v8/+/14fb337200d5da09c77438ddd40bea935b1dc823 > > Review-Url: https://codereview.chromium.org/2632123006 > > Cr-Commit-Position: refs/heads/master@{#42996} > > Committed: https://chromium.googlesource.com/v8/v8/+/9e7d5a6065470ca03411d4c8dbc61d1be5c3f84a > > TBR=marja@chromium.org,mstarzinger@chromium.org,ahaas@chromium.org,verwaest@chromium.org,rmcilroy@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:5203,v8:5215 > > Review-Url: https://codereview.chromium.org/2683733002 > Cr-Commit-Position: refs/heads/master@{#43008} > Committed: https://chromium.googlesource.com/v8/v8/+/9fe08ec067051c5b46e694568bd01c6dba44cc4d TBR=marja@chromium.org,mstarzinger@chromium.org,ahaas@chromium.org,verwaest@chromium.org,rmcilroy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5203,v8:5215 Review-Url: https://codereview.chromium.org/2679303003 Cr-Commit-Position: refs/heads/master@{#43015}
-
hablich authored
Revert of Reland: [Parse] ParseInfo owns the parsing Zone. (patchset #7 id:140001 of https://codereview.chromium.org/2632123006/ ) Reason for revert: Speculative revert because of revert needed for https://codereview.chromium.org/2632123006 Original issue's description: > Reland: [Parse] ParseInfo owns the parsing Zone. > > Moves ownership of the parsing Zone to ParseInfo with a shared_ptr. This is > in preperation for enabling background compilation jobs for inner functions > share the AST in the outer-function's parse zone memory (read-only), with the > and zone being released when all compilation jobs have completed. > > BUG=v8:5203,v8:5215 > > Review-Url: https://codereview.chromium.org/2632123006 > Cr-Original-Commit-Position: refs/heads/master@{#42993} > Committed: https://chromium.googlesource.com/v8/v8/+/14fb337200d5da09c77438ddd40bea935b1dc823 > Review-Url: https://codereview.chromium.org/2632123006 > Cr-Commit-Position: refs/heads/master@{#42996} > Committed: https://chromium.googlesource.com/v8/v8/+/9e7d5a6065470ca03411d4c8dbc61d1be5c3f84a TBR=marja@chromium.org,mstarzinger@chromium.org,ahaas@chromium.org,verwaest@chromium.org,rmcilroy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5203,v8:5215 Review-Url: https://codereview.chromium.org/2683733002 Cr-Commit-Position: refs/heads/master@{#43008}
-
ishell@chromium.org authored
BUG= Change-Id: I31b8da09f4728d55c2da91966edcad49528b554b Reviewed-on: https://chromium-review.googlesource.com/439146Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#43003}
-
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}
-
rmcilroy authored
Moves ownership of the parsing Zone to ParseInfo with a shared_ptr. This is in preperation for enabling background compilation jobs for inner functions share the AST in the outer-function's parse zone memory (read-only), with the and zone being released when all compilation jobs have completed. BUG=v8:5203,v8:5215 Review-Url: https://codereview.chromium.org/2632123006 Cr-Original-Commit-Position: refs/heads/master@{#42993} Committed: https://chromium.googlesource.com/v8/v8/+/14fb337200d5da09c77438ddd40bea935b1dc823 Review-Url: https://codereview.chromium.org/2632123006 Cr-Commit-Position: refs/heads/master@{#42996}
-