- 06 Sep, 2017 2 commits
-
-
Peter Marshall authored
This reverts commit 9b35364c. Reason for revert: Failing tests on Win64 Debug Original change's description: > [cleanup] Replace more instances of List with std::vector. > > Bug: v8:6333 > Change-Id: Ic1956d3dcfc0309fe2b65344e5af7235d5b804a2 > Reviewed-on: https://chromium-review.googlesource.com/651413 > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47854} TBR=neis@chromium.org,jgruber@chromium.org,petermarshall@chromium.org Change-Id: Ifa2cd98edd9ec5e1d67c81501f0d9e8aae69536c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6333 Reviewed-on: https://chromium-review.googlesource.com/653117Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#47855}
-
Peter Marshall authored
Bug: v8:6333 Change-Id: Ic1956d3dcfc0309fe2b65344e5af7235d5b804a2 Reviewed-on: https://chromium-review.googlesource.com/651413Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#47854}
-
- 05 Sep, 2017 1 commit
-
-
Juliana Franco authored
This CL removes the weak-list of JS functions from the context and all the code that iterares over it. This list was being used mainly during deoptimization (for code unlinking) and during garbage collection. Removing it will improve performance of programs that create many closures and trigger many scavenge GC cycles. No extra work is required during garbage collection. However, given that we no longer unlink code from JS functions during deoptimization, we leave it as it is, and on its next activation we check whether the mark_for_deoptimization bit of that code is set, and if it is, than we unlink it and jump to lazy compiled code. This check happens in the prologue of every code object. We needed to change/remove the cctests that used to check something on this list. Working in x64, ia32, arm64, arm, mips64 and mips. Bug: v8:6637 Change-Id: Ica99a12fd0351ae985e9a287918bf28caf6d2e24 TBR: mstarzinger@chromium.org Reviewed-on: https://chromium-review.googlesource.com/647596 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#47808}
-
- 04 Sep, 2017 2 commits
-
-
Michael Achenbach authored
This reverts commit 84c2dfce. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/14876 Original change's description: > Remove weak-list of optimized JS functions. > > This CL removes the weak-list of JS functions from the context > and all the code that iterares over it. This list was being used > mainly during deoptimization (for code unlinking) and during > garbage collection. Removing it will improve performance of > programs that create many closures and trigger many scavenge GC > cycles. > > No extra work is required during garbage collection. However, > given that we no longer unlink code from JS functions during > deoptimization, we leave it as it is, and on its next activation > we check whether the mark_for_deoptimization bit of that code is > set, and if it is, than we unlink it and jump to lazy compiled > code. This check happens in the prologue of every code object. > > We needed to change/remove the cctests that used to check > something on this list. > > Working in x64, ia32, arm64, arm, mips64 and mips. > > Bug: v8:6637 > Change-Id: I7f192652c8034b16a9ea71303fa8e78cda3c48f3 > Reviewed-on: https://chromium-review.googlesource.com/600427 > Commit-Queue: Juliana Patricia Vicente Franco <jupvfranco@google.com> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47790} TBR=mstarzinger@chromium.org,jarin@chromium.org,leszeks@chromium.org,bmeurer@chromium.org,jupvfranco@google.com Change-Id: Ia4f1a8acf6ca5cd5c74266437a03d854b3739af2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6637 Reviewed-on: https://chromium-review.googlesource.com/647540Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#47792}
-
Juliana Franco authored
This CL removes the weak-list of JS functions from the context and all the code that iterares over it. This list was being used mainly during deoptimization (for code unlinking) and during garbage collection. Removing it will improve performance of programs that create many closures and trigger many scavenge GC cycles. No extra work is required during garbage collection. However, given that we no longer unlink code from JS functions during deoptimization, we leave it as it is, and on its next activation we check whether the mark_for_deoptimization bit of that code is set, and if it is, than we unlink it and jump to lazy compiled code. This check happens in the prologue of every code object. We needed to change/remove the cctests that used to check something on this list. Working in x64, ia32, arm64, arm, mips64 and mips. Bug: v8:6637 Change-Id: I7f192652c8034b16a9ea71303fa8e78cda3c48f3 Reviewed-on: https://chromium-review.googlesource.com/600427 Commit-Queue: Juliana Patricia Vicente Franco <jupvfranco@google.com> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#47790}
-
- 30 Aug, 2017 1 commit
-
-
Sergei D authored
To enable executing code in a context of a particular time or date (e.g. when codepath depends on whether it's say evening or New Year) there is a need for a way to provide it bypassing actual system time. Bug: chromium:751993 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Iee35d97b74345f63fff814a65a6f134d7c970341 Reviewed-on: https://chromium-review.googlesource.com/598666 Commit-Queue: Sergei Datsenko <dats@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47700}
-
- 23 Aug, 2017 1 commit
-
-
Michael Starzinger authored
R=ishell@chromium.org BUG=v8:6409 Change-Id: Ic01d4f1a8b251bb5480840d4943d9ebec713b9c1 Reviewed-on: https://chromium-review.googlesource.com/626016Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47534}
-
- 10 Aug, 2017 1 commit
-
-
Jaroslav Sevcik authored
This also changes logging of code address to Code::instruction_start rather than Code::address(). Bug: v8:6239 Change-Id: I4ef975630574e23409123468a3f7fb8fe6ad39e7 Reviewed-on: https://chromium-review.googlesource.com/605887Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#47266}
-
- 07 Aug, 2017 1 commit
-
-
Clemens Hammacher authored
The interpreter was not able to call imported wasm functions (hitting UNIMPLEMENTED). This CL fixes this by creating a "CWasmEntry", which is signature-specific. It has JS linkage and receives the wasm code object to call and a buffer containing all arguments (similar to the interpreter entry). It loads all arguments from the buffer and calls the given code object. The c-wasm-entry code objects are cached per instance, such that we only create them once per signature. These wasm entry stubs will also allow us to call back to compiled code from the interpreter, which we might want to do to reduce the slowdown of executing wasm for debugging. R=titzer@chromium.org Bug: chromium:735792 Change-Id: I7fecec3a7bec62a9de40fff115b684759b12a28b Reviewed-on: https://chromium-review.googlesource.com/600308 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47195}
-
- 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}
-
- 28 Jul, 2017 1 commit
-
-
Jaroslav Sevcik authored
Bug: v8:6239 Change-Id: I87f72cb97616e28cb44f7160d5170ff740422419 Reviewed-on: https://chromium-review.googlesource.com/584612 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46958}
-
- 26 Jul, 2017 1 commit
-
-
Jaroslav Sevcik authored
Bug: v8:6520 Change-Id: I3d5a019885516d7cbc4f43bfb3892bed655a9628 Reviewed-on: https://chromium-review.googlesource.com/586708Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#46901}
-
- 25 Jul, 2017 1 commit
-
-
Jaroslav Sevcik authored
Bug: v8:6520 Change-Id: Id1249b293fc6aafbeddb7fb9f4b522dfbec7fc78 Reviewed-on: https://chromium-review.googlesource.com/584608 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46867}
-
- 18 Jul, 2017 1 commit
-
-
Jakob Kummerow authored
Bug: v8:6550 Change-Id: I888f91db1fd842d1fef8a5fb749da229dfb6ab97 Reviewed-on: https://chromium-review.googlesource.com/575756Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Daniel Clifford <danno@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#46746}
-
- 10 Jul, 2017 1 commit
-
-
jgruber authored
This adds a convenience method for the common Smi to int conversion pattern. Bug: Change-Id: I7d7b171c36cfec5f6d10c60f1d9c3e06e3aed0fa Reviewed-on: https://chromium-review.googlesource.com/563205 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Andreas Rossberg <rossberg@chromium.org> Cr-Commit-Position: refs/heads/master@{#46516}
-
- 22 Jun, 2017 1 commit
-
-
Michael Starzinger authored
This switches all uses of the patching {BinaryOpICStub} over to the respective existing and non-patching CSA-builtins, and removes some supporting code. It also removes the inlined SMI handling. R=verwaest@chromium.org BUG=v8:6408 Change-Id: If547c0127bfcafbd01ccb33b702b1868006ebcb1 Reviewed-on: https://chromium-review.googlesource.com/541398 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#46122}
-
- 21 Jun, 2017 1 commit
-
-
Michael Starzinger authored
This switches all uses of the patching {ToBooleanICStub} over to the existing and non-patching {ToBoolean} CSA-builtin, and removes some supporting code. R=verwaest@chromium.org BUG=v8:6408 Change-Id: Iab60c95e6b54e426408390e056b679f6227e7ce0 Reviewed-on: https://chromium-review.googlesource.com/539576Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46089}
-
- 30 May, 2017 1 commit
-
-
ulan authored
This is consistent with C++ memory model and avoids confusion with GC write barrier. BUG= Review-Url: https://codereview.chromium.org/2912773002 Cr-Commit-Position: refs/heads/master@{#45584}
-
- 07 Apr, 2017 1 commit
-
-
Igor Sheludko authored
... by avoiding reads through timer objects allocated on stack of another thread and explicitly maintaining current RuntimeCallCounter object in RuntimeCallStats instead. Change-Id: I54eaf078dc1e77dc47ded963903d54ffb583f377 Reviewed-on: https://chromium-review.googlesource.com/471667Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#44491}
-
- 06 Apr, 2017 1 commit
-
-
jarin authored
Perhaps it would be better to always start the timer, but that would require some refactoring of tests. Review-Url: https://codereview.chromium.org/2786493006 Cr-Commit-Position: refs/heads/master@{#44425}
-
- 24 Mar, 2017 1 commit
-
-
Igor Sheludko authored
The former will handle stores to global variables, lets and undeclared variables. The latter will handle named stores to explicit receiver. BUG=chromium:576312, v8:5561 Change-Id: I335fa21db47c3d001da8cc79fa8cb6f8abcbb7e2 Reviewed-on: https://chromium-review.googlesource.com/458639Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#44085}
-
- 22 Mar, 2017 1 commit
-
-
jarin authored
This adds optimization and deoptimization counts to the Web UI. Also, the function timeline now shows optimization and deoptimization marks. Review-Url: https://codereview.chromium.org/2753543006 Cr-Commit-Position: refs/heads/master@{#44033}
-
- 10 Mar, 2017 1 commit
-
-
Leszek Swirski authored
Note that this changes the sampling interval from milliseconds to microseconds -- this shouldn't cause issues except for tools that use 'profiler,"begin",<interval>' somehow. Change-Id: I20222de91f7820e26eb3fc505a4752b0bc7e1642 Reviewed-on: https://chromium-review.googlesource.com/451658 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#43726}
-
- 06 Mar, 2017 1 commit
-
-
jarin authored
Drive by: remove two unused methods in optimized code visitor. Review-Url: https://codereview.chromium.org/2730323002 Cr-Commit-Position: refs/heads/master@{#43611}
-
- 20 Feb, 2017 1 commit
-
-
Toon Verwaest authored
BUG= Change-Id: Ib7cc2a04a7c8e314e1f4a8720eef569a6a4a3b18 Reviewed-on: https://chromium-review.googlesource.com/444406Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#43307}
-
- 02 Feb, 2017 1 commit
-
-
bmeurer authored
We don't need Code::CALL_IC for anything now that the CallICStub is migrated and no longer hooks into the traditional IC system. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2669193002 Cr-Commit-Position: refs/heads/master@{#42890}
-
- 23 Jan, 2017 1 commit
-
-
yangguo authored
R=jgruber@chromium.org BUG=v8:5530 Review-Url: https://codereview.chromium.org/2642253005 Cr-Original-Commit-Position: refs/heads/master@{#42543} Committed: https://chromium.googlesource.com/v8/v8/+/e26a58e43c51a680a0a6363e0066886f4971a41f Review-Url: https://codereview.chromium.org/2642253005 Cr-Commit-Position: refs/heads/master@{#42595}
-
- 20 Jan, 2017 2 commits
-
-
yangguo authored
Revert of [debugger api] remove legacy JSON debug protocol. (patchset #2 id:20001 of https://codereview.chromium.org/2642253005/ ) Reason for revert: Node.js relies on this Original issue's description: > [debugger api] remove legacy JSON debug protocol. > > R=jgruber@chromium.org > BUG=v8:5530 > > Review-Url: https://codereview.chromium.org/2642253005 > Cr-Commit-Position: refs/heads/master@{#42543} > Committed: https://chromium.googlesource.com/v8/v8/+/e26a58e43c51a680a0a6363e0066886f4971a41f TBR=jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5530 Review-Url: https://codereview.chromium.org/2644233003 Cr-Commit-Position: refs/heads/master@{#42549}
-
yangguo authored
R=jgruber@chromium.org BUG=v8:5530 Review-Url: https://codereview.chromium.org/2642253005 Cr-Commit-Position: refs/heads/master@{#42543}
-
- 11 Jan, 2017 1 commit
-
-
clemensh authored
and rename WasmFrame to WasmCompiledFrame. The WasmToInterpreterFrames are not used yet; this will follow in a follow-up CL (see tracking bug for the overall picture). Those frames will represent frames for WASM_TO_INTERPRETER stubs, which call from wasm code to the wasm interpreter, implemented in C++. They will support the Summarize method to inspect the stack frames in the wasm interpreter. R=yangguo@chromium.org, titzer@chromium.org BUG=v8:5822 Review-Url: https://codereview.chromium.org/2623773004 Cr-Commit-Position: refs/heads/master@{#42213}
-
- 03 Jan, 2017 1 commit
-
-
leszeks authored
The heap traversal for SFI code objects when logging compiled functions was previously accessing the abstract code of an SFI, logging its bytecode if it exists or code object otherwise. However, there are some (rare) cases where an SFI has both bytecode and a non-interpreter code object -- for example, after baseline tier-up -- in which case we want to log both, as both could be executing (at different points on the stack). BUG=v8:5758 Review-Url: https://codereview.chromium.org/2603333002 Cr-Commit-Position: refs/heads/master@{#42025}
-
- 21 Dec, 2016 1 commit
-
-
alph authored
BUG=chromium:664286 Review-Url: https://codereview.chromium.org/2595673002 Cr-Commit-Position: refs/heads/master@{#41884}
-
- 24 Nov, 2016 1 commit
-
-
cbruni authored
RuntimeTimerScopes always subtract their own time from the parent timer's counter to properly account for the own time. Once a scope is destructed it adds it own timer to the current active counter. However, if the current counter is changed with CorrectCurrentCounterId we will attribute all the subtimers to the previous counter, and add the own time to the new counter. This way it is possible to end up with negative times in certain counters but the overall would still be correct. BUG= Review-Url: https://codereview.chromium.org/2511093002 Cr-Commit-Position: refs/heads/master@{#41254}
-
- 23 Nov, 2016 2 commits
-
-
machenbach authored
Revert of [counters] RuntimeStats: fix wrong bookkeeping when dynamically changing counters. (patchset #15 id:320001 of https://codereview.chromium.org/2511093002/ ) Reason for revert: The test is very flaky on the bots, e.g.: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20ASAN/builds/17031 https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared/builds/14776 Original issue's description: > [counters] RuntimeStats: fix wrong bookkeeping when dynamically changing counters > > RuntimeTimerScopes always subtract their own time from the parent timer's > counter to properly account for the own time. Once a scope is destructed it > adds it own timer to the current active counter. However, if the current > counter is changed with CorrectCurrentCounterId we will attribute all the > subtimers to the previous counter, and add the own time to the new counter. > This way it is possible to end up with negative times in certain counters but > the overall would still be correct. > > BUG= > > Committed: https://crrev.com/f6c74d964d9387df4bed3d8c1ded51eb9e8aa6e8 > Committed: https://crrev.com/491651792d7818aed04eaeffb9890b5a309b543e > Cr-Original-Commit-Position: refs/heads/master@{#41142} > Cr-Commit-Position: refs/heads/master@{#41214} TBR=ishell@chromium.org,fmeawad@chromium.org,lpy@chromium.org,cbruni@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2526843002 Cr-Commit-Position: refs/heads/master@{#41229}
-
cbruni authored
RuntimeTimerScopes always subtract their own time from the parent timer's counter to properly account for the own time. Once a scope is destructed it adds it own timer to the current active counter. However, if the current counter is changed with CorrectCurrentCounterId we will attribute all the subtimers to the previous counter, and add the own time to the new counter. This way it is possible to end up with negative times in certain counters but the overall would still be correct. BUG= Committed: https://crrev.com/f6c74d964d9387df4bed3d8c1ded51eb9e8aa6e8 Review-Url: https://codereview.chromium.org/2511093002 Cr-Original-Commit-Position: refs/heads/master@{#41142} Cr-Commit-Position: refs/heads/master@{#41214}
-
- 14 Nov, 2016 1 commit
-
-
tebbi authored
This CL enables precise source positions for all V8 compilers. It merges compiler::SourcePosition and internal::SourcePosition to a single class used throughout the codebase. The new internal::SourcePosition instances store an id identifying an inlined function in addition to a script offset. SourcePosition::InliningId() refers to a the new table DeoptimizationInputData::InliningPositions(), which provides the following data for every inlining id: - The inlined SharedFunctionInfo as an offset into DeoptimizationInfo::LiteralArray - The SourcePosition of the inlining. Recursively, this yields the full inlining stack. Before the Code object is created, the same information can be found in CompilationInfo::inlined_functions(). If SourcePosition::InliningId() is SourcePosition::kNotInlined, it refers to the outer (non-inlined) function. So every SourcePosition has full information about its inlining stack, as long as the corresponding Code object is known. The internal represenation of a source position is a positive 64bit integer. All compilers create now appropriate source positions for inlined functions. In the case of Turbofan, this required using AstGraphBuilderWithPositions for inlined functions too. So this class is now moved to a header file. At the moment, the additional information in source positions is only used in --trace-deopt and --code-comments. The profiler needs to be updated, at the moment it gets the correct script offsets from the deopt info, but the wrong script id from the reconstructed deopt stack, which can lead to wrong outputs. This should be resolved by making the profiler use the new inlining information for deopts. I activated the inlined deoptimization tests in test-cpu-profiler.cc for Turbofan, changing them to a case where the deopt stack and the inlining position agree. It is currently still broken for other cases. The following additional changes were necessary: - The source position table (internal::SourcePositionTableBuilder etc.) supports now 64bit source positions. Encoding source positions in a single 64bit int together with the difference encoding in the source position table results in very little overhead for the inlining id, since only 12% of the source positions in Octane have a changed inlining id. - The class HPositionInfo was effectively dead code and is now removed. - SourcePosition has new printing and information facilities, including computing a full inlining stack. - I had to rename compiler/source-position.{h,cc} to compiler/compiler-source-position-table.{h,cc} to avoid clashes with the new src/source-position.cc file. - I wrote the new wrapper PodArray for ByteArray. It is a template working with any POD-type. This is used in DeoptimizationInputData::InliningPositions(). - I removed HInlinedFunctionInfo and HGraph::inlined_function_infos, because they were only used for the now obsolete Crankshaft inlining ids. - Crankshaft managed a list of inlined functions in Lithium: LChunk::inlined_functions. This is an analog structure to CompilationInfo::inlined_functions. So I removed LChunk::inlined_functions and made Crankshaft use CompilationInfo::inlined_functions instead, because this was necessary to register the offsets into the literal array in a uniform way. This is a safe change because LChunk::inlined_functions has no other uses and the functions in CompilationInfo::inlined_functions have a strictly longer lifespan, being created earlier (in Hydrogen already). BUG=v8:5432 Review-Url: https://codereview.chromium.org/2451853002 Cr-Commit-Position: refs/heads/master@{#40975}
-
- 04 Nov, 2016 1 commit
-
-
lpy authored
This patch is a follow-up patch to enable runtime statistics to use TracingCategoryObserver. BUG=v8:5590 Review-Url: https://codereview.chromium.org/2460973003 Cr-Commit-Position: refs/heads/master@{#40745}
-
- 03 Nov, 2016 1 commit
-
-
lpy authored
Revert of [Tracing] Use TracingCategoryObserver in runtime statistics (patchset #6 id:140001 of https://codereview.chromium.org/2460973003/ ) Reason for revert: Static-Initializers failed on Ubuntu-12.04 Original issue's description: > [Tracing] Use TracingCategoryObserver in runtime statistics > > This patch is a follow-up patch to enable runtime statistics to use > TracingCategoryObserver. > > BUG=v8:5590 TBR=cbruni@chromium.org,fmeawad@chromium.org,alph@chromium.org,bmeurer@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5590 Review-Url: https://codereview.chromium.org/2469403005 Cr-Commit-Position: refs/heads/master@{#40743}
-