- 22 May, 2018 1 commit
-
-
Peter Marshall authored
This map is often quite small and holds small items (ints) so wastes quite a bit of overhead in the backing tree representation. This CL changes the std::map to a sorted vector of pairs. This reduces the size significantly (2.13 MiB -> 598 KiB on the node server example). Bug: v8:7719 Change-Id: Ic829693f007732ae145fae02850a1ed913cd941e Reviewed-on: https://chromium-review.googlesource.com/1064233 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#53278}
-
- 18 May, 2018 1 commit
-
-
Peter Marshall authored
This was set very regularly in FillFunctionInfo, but it was almost always set to kNoReason, because the associated SFI had no bailout reason. Given that having a bailout reason is the rare case, we just assume an empty bailout reason, and use the rare_data_ struct to store the string pointer if we do need it. This saves another pointer of space on the CodeEntry object (approx 1.4 MiB on the node server example). Bug: v8:7719 Change-Id: I8e2272b572285ddf353ba0b303e6da095b7d5272 Reviewed-on: https://chromium-review.googlesource.com/1064370 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#53244}
-
- 17 May, 2018 1 commit
-
-
Marja Hölttä authored
BUG=v8:7490 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I83061dac1b255b239738f900b5149828bd2203ec Reviewed-on: https://chromium-review.googlesource.com/1061496Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#53237}
-
- 16 May, 2018 1 commit
-
-
Alexei Filippov authored
Currently ProfilerListener holds all the CodeEntries it ever created during the profiling session. It is not capable of removing entries corresponding to the code objects discarded by GC as there's no such code event. However it is sometimes possible to tell if a code object was GCed. Hook up to the CodeMap code entry removal and if the entry has never been hit by a sample we can safely delete it. As a bonus the CodeEntryInfo size has been reduced on x64, which also saves 8 x <number of code entries> bytes. BUG=v8:7719 Change-Id: I988bc5b59f3fba07157a9f472cbcf68596fcd969 Reviewed-on: https://chromium-review.googlesource.com/1054346Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#53222}
-
- 11 May, 2018 1 commit
-
-
Alexei Filippov authored
Change-Id: I8b9308d7628d7efc2a2212ef3a3aa52ccddbfb36 Reviewed-on: https://chromium-review.googlesource.com/1048036 Commit-Queue: Alexei Filippov <alph@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#53133}
-
- 09 May, 2018 3 commits
-
-
Clemens Hammacher authored
This is a reland of e084eea6. Undefined behavious was fixed in https://crrev.com/c/1051235. Original change's description: > Fix SourcePositionInfo for wasm > > In wasm we often don't have a SharedFunctionInfo associated with a > compilation job, so we can't get a Script. Just print "unknown" in > these cases (instead of crashing). > > R=titzer@chromium.org > CC=herhut@chromium.org > > Bug: chromium:840757, v8:7738 > Change-Id: I850c6adfd9e07c9a0f6dd018f1a9314feb89d887 > Reviewed-on: https://chromium-review.googlesource.com/1049632 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53080} TBR=titzer@chromium.org Bug: chromium:840757, v8:7738 Change-Id: If04040a33766955cfed78e7c27226dd04c3f9b9f Reviewed-on: https://chromium-review.googlesource.com/1051266Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53111}
-
Peter Marshall authored
The handles created for each SharedFunctionInfo within SourcePosition::InliningStack live for the life of the profile, reaching 5MiB+ on an example server application for Node. This HandleScope limits their lifetime locally, given that the handles do not escape. This saves ~10% of peak memory. Bug: v8:7719 Change-Id: I97ce0fd3658be89fdd9cb9c1369ea5bfae0ce579 Reviewed-on: https://chromium-review.googlesource.com/1049647Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#53085}
-
Michael Achenbach authored
This reverts commit e084eea6. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20UBSanVptr/builds/3163 Original change's description: > Fix SourcePositionInfo for wasm > > In wasm we often don't have a SharedFunctionInfo associated with a > compilation job, so we can't get a Script. Just print "unknown" in > these cases (instead of crashing). > > R=titzer@chromium.org > CC=herhut@chromium.org > > Bug: chromium:840757, v8:7738 > Change-Id: I850c6adfd9e07c9a0f6dd018f1a9314feb89d887 > Reviewed-on: https://chromium-review.googlesource.com/1049632 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53080} TBR=titzer@chromium.org,clemensh@chromium.org Change-Id: Ib2020ea3f2b778df9fe50ccbe803938f2f4fd709 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:840757, v8:7738 Reviewed-on: https://chromium-review.googlesource.com/1051265Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#53082}
-
- 08 May, 2018 2 commits
-
-
Clemens Hammacher authored
In wasm we often don't have a SharedFunctionInfo associated with a compilation job, so we can't get a Script. Just print "unknown" in these cases (instead of crashing). R=titzer@chromium.org CC=herhut@chromium.org Bug: chromium:840757, v8:7738 Change-Id: I850c6adfd9e07c9a0f6dd018f1a9314feb89d887 Reviewed-on: https://chromium-review.googlesource.com/1049632 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53080}
-
Marja Hölttä authored
- Make FeedbackVector backing store a WeakFixedArray. - "feedback" is always strong but "extra" might be weak. - Whenever the handler stored in FeedbackVector is a WeakCell to a transition Map, replace it with an in-place weak reference. For a more detailed description of the changes, see the design doc https://docs.google.com/document/d/1P8cIme2wKszdYt64ObAiuh6pXgLnrrn80Hpl1ejJbOU/edit#heading=h.ijx1oculrikp BUG=v8:7308 Change-Id: I72c5cf6597ef24d4c22a1fe8e25b67ca196d4ec8 Reviewed-on: https://chromium-review.googlesource.com/1027855 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#53051}
-
- 07 May, 2018 4 commits
-
-
Alexei Filippov authored
The RareData objects contain fields that often absent in CodeEntry'es. They are created as needed when a corresponding field is added. This reduces CodeEntry size on x64 by 40% from 136 to 80 bytes. BUG=v8:7719 Change-Id: I1f3c6255aa2f228895e835b536c743396131db31 Reviewed-on: https://chromium-review.googlesource.com/1045885Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#53039}
-
Peter Marshall authored
Trying to reduce use of our self-baked data structures. Bug: v8:7570 Change-Id: I419a932b6b8904810844d40a5636e423df832197 Reviewed-on: https://chromium-review.googlesource.com/1032739 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53033}
-
Peter Marshall authored
Change-Id: Iccc86d0116f5d23f523e25ff02696a9fb8312223 Reviewed-on: https://chromium-review.googlesource.com/1044545 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#53022}
-
Peter Marshall authored
We can save a pointer of space for each CodeEntry by removing this field which we don't really need. Instead of concatenating the name string on demand, concatenate the prefix eagerly. Reduces sizeof(CodeEntry) from 136 to 128 on 64-bit. Bug: v8:7719 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Id346a8f36794e337e8c886f8d1969431424539b0 Reviewed-on: https://chromium-review.googlesource.com/1039825Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#53014}
-
- 04 May, 2018 2 commits
-
-
Alexei Filippov authored
Change-Id: I450efa4916bd774265991f987f4be618ba2eb1d2 Reviewed-on: https://chromium-review.googlesource.com/1045168 Commit-Queue: Alexei Filippov <alph@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#53005}
-
Alexei Filippov authored
ProfilerListener which holds CodeEntries has been moved from Logger to CpuProfiler. This way we can clear entries when all the profiles produced by a particular CpuProfiler are deleted. BUG=v8:7719 Change-Id: I31d47dc7da44648c8fb8e87b47e2e6260d3dc5c3 Reviewed-on: https://chromium-review.googlesource.com/1043050Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#53004}
-
- 03 May, 2018 1 commit
-
-
Toon Verwaest authored
There are likely cleanups that can be done after this CL: - context-related functions in the interpreter and compiler take ScopeInfo as well as ScopeType and slot-count as input. The latter 2 should be directly derived from the former. We should be able to drop FunctionContextParameters. - ContextExtension is probably not needed anymore, since we now always have the correct scope_info directly in the SCOPE_INFO_INDEX slot. Bug: v8:7066 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ie1f6134c686a9f2183e54730d9cdd598a9e5ab67 Reviewed-on: https://chromium-review.googlesource.com/785151 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52952}
-
- 02 May, 2018 1 commit
-
-
Marja Hölttä authored
BUG=v8:5402,v8:7570 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I56beb15109a3557ba514e8d17880b1a37a109031 Reviewed-on: https://chromium-review.googlesource.com/1032552Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52908}
-
- 27 Apr, 2018 1 commit
-
-
Peter Marshall authored
Trying to reduce use of our self-baked data structures. Bug: v8:7570 Change-Id: I3c8598ece74b6434c8baa69810a384b5209dd107 Reviewed-on: https://chromium-review.googlesource.com/1032442Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#52842}
-
- 23 Apr, 2018 1 commit
-
-
Peter Marshall authored
There doesn't seem to be any reason to use our custom hashmap here, which has a more complicated interface. Change-Id: Ib08c2e400a3cb402a5984b925034aac29750c2ec Reviewed-on: https://chromium-review.googlesource.com/1019445Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#52724}
-
- 18 Apr, 2018 3 commits
-
-
Alexei Filippov authored
This is a reland of 9a19ce25 Original change's description: > [profiler] Ensure there's a single ProfilerListener per isolate. > > BUG=v8:7662 > > Change-Id: I8128ac96bcd2dc01b318c55843c4416bdd17c7ae > Reviewed-on: https://chromium-review.googlesource.com/1013318 > Commit-Queue: Alexei Filippov <alph@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52653} Bug: v8:7662 Change-Id: I28c5e693290057ad2bc90161c82419fb109ef1ae Reviewed-on: https://chromium-review.googlesource.com/1015747Reviewed-by:
Alexei Filippov <alph@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#52678}
-
Marja Hölttä authored
BUG=v8:7308 Change-Id: I1976cd7e542a0304f6e14744e634c62dd06a83f5 Reviewed-on: https://chromium-review.googlesource.com/1014090 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#52672}
-
Peter Marshall authored
Previously when we put offsets into the SourcePositionTable, we added the header size of the code object as well. When we pull the positions out of the table (see ProfileGenerator::RecordTickSample) we already account for the header size. This means the offsets in the table should just be the offset of the PC within the actual code, not the offset within the code object, which is what we currently store. Currently this bug is probably not very noticeable, as it causes the reported line numbers to be slightly too low, but still within the same function. For a sampling profiler, we don't have any way to confirm which lines were actually sampled, so we don't notice that the results are wrong. The only way to see this bug is that there are some lines within a function (towards the end of the function) that we will never see ticks inside of, because the offset in the position table is not reachable with valid PC offsets. This CL removes the header size offset from values put into the source position table stored by the profiler. Bug: v8:7018 Change-Id: I00b17cec5f9c81d993d4e64c3c021052745a791e Reviewed-on: https://chromium-review.googlesource.com/1016560Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#52671}
-
- 17 Apr, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit 9a19ce25. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/20359 Original change's description: > [profiler] Ensure there's a single ProfilerListener per isolate. > > BUG=v8:7662 > > Change-Id: I8128ac96bcd2dc01b318c55843c4416bdd17c7ae > Reviewed-on: https://chromium-review.googlesource.com/1013318 > Commit-Queue: Alexei Filippov <alph@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52653} TBR=alph@chromium.org,yangguo@chromium.org Change-Id: I3c3b6eb8d6f9911fa318f24a2e6e74180b83398e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7662 Reviewed-on: https://chromium-review.googlesource.com/1015561Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52654}
-
Alexei Filippov authored
BUG=v8:7662 Change-Id: I8128ac96bcd2dc01b318c55843c4416bdd17c7ae Reviewed-on: https://chromium-review.googlesource.com/1013318 Commit-Queue: Alexei Filippov <alph@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52653}
-
- 16 Apr, 2018 1 commit
-
-
Marja Hölttä authored
BUG=v8:7308 Change-Id: I5e9f371b1db5515b723d9a2864bf2038706e2015 Reviewed-on: https://chromium-review.googlesource.com/960032 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#52613}
-
- 14 Apr, 2018 1 commit
-
-
Jakob Kummerow authored
The "Address" type is V8's general-purpose type for manipulating memory addresses. Per the C++ spec, pointer arithmetic and pointer comparisons are undefined behavior except within the same array; since we generally don't operate within a C++ array, our general-purpose type shouldn't be a pointer type. Bug: v8:3770 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779 Reviewed-on: https://chromium-review.googlesource.com/988657 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52601}
-
- 12 Apr, 2018 1 commit
-
-
Peter Marshall authored
Looking up line numbers with the JITLineInfoTable would sometimes give wrong answers. Fix these bugs and add a cctest for this data structure. Also do some cleanup while we're here like inlining the (empty) constructor and destructor and removing the empty() method which is only used unnecessarily anyway, to make the contract of GetSourceLineNumber a bit clearer. Also rename the data structure to SourcePositionTable, because it doesn't just provide info for JIT code, but also bytecode, and 'Info' is pretty ambiguous. Bug: v8:7018 Change-Id: I126581c844d85df6b2b3f80f2f5acbce01c16ba1 Reviewed-on: https://chromium-review.googlesource.com/1006795Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#52571}
-
- 11 Apr, 2018 1 commit
-
-
Alexei Filippov authored
Previously embedder had to create an instance of TracingCpuProfiler explicitly. The patch makes the profiler created automatically for every isolate. The profiler has no overhead unless tracing with v8.cpu_profiler category is enabled. Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I9369c2c56bcddc72093eda33dc2bc185c9253b4a Reviewed-on: https://chromium-review.googlesource.com/1006049 Commit-Queue: Alexei Filippov <alph@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52552}
-
- 09 Apr, 2018 1 commit
-
-
Ulan Degenbaev authored
Currently a WeakMap key edge shows up as '<id> / WeakMap'. This patch changes it to '<id> / key <KeyName> in WeakMap'. Bug: chromium:827713 Change-Id: I0306bacdc331ab69739be88cf29d16a21187625f Reviewed-on: https://chromium-review.googlesource.com/992035Reviewed-by:
Alexei Filippov <alph@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#52465}
-
- 06 Apr, 2018 1 commit
-
-
Leszek Swirski authored
Merge the outer_scope_info and feedback_metadata fields on SharedFunctionInfo. outer_scope_info is only used during parsing, and feedback_metadata is only available after compilation, so the two never exist at the same time. Thus, they can share a field slot. The exception is un-compiling and re-compiling a function, where we need the outer_scope_info again. Fortunately, the outer_scope_info can be re-calculated from the SFI's scope_info. Bug: v8:7606 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I6b97fefe859e89df75ad870da4a0bfa4b869772a Reviewed-on: https://chromium-review.googlesource.com/992432Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52454}
-
- 05 Apr, 2018 4 commits
-
-
Marja Hölttä authored
Previous: https://chromium-review.googlesource.com/972962 BUG=v8:7308 Change-Id: I6882e36ad9f9360d006937a2f41b07839a73a768 Reviewed-on: https://chromium-review.googlesource.com/995014Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52404}
-
Peter Marshall authored
This is a reland of 63ecddc8 Original change's description: > [runtime] Remove the construct_stub field of the SFI > > Don't dispatch based on the construct_stub field anymore. Rather than > read it out and jump to the construct stub, we can switch on the > builtin_id. > > Builtins will always have builtin_id as a Smi, so this signals we need > to jump to JSBuiltinsConstructStub. The only exception is for uncompiled > functions, which will have kCompileLazy as the builtin_id, but need to > jump to the generic stub instead. > > API function calls will have a FunctionTemplateInfo in the SFI > function_data field, and need to go to the builtins stub as well. > > The final case is everything else, which should go to the generic stub. > > Bug: v8:7503 > Change-Id: I14790a5f9784dc0d940bf10a05f5310026e1d482 > Reviewed-on: https://chromium-review.googlesource.com/980941 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52345} TBR=bmeurer@chromium.org Bug: v8:7503 Change-Id: Ie46bfb0af173ad7ac8cbdfeed1865e60f3f413f7 Reviewed-on: https://chromium-review.googlesource.com/997712Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#52389}
-
jgruber authored
In order to clarify the difference between, e.g., InstructionStart and instruction_start, rename as follows: Code::instruction_start -> raw_instruction_start Code::instruction_end -> raw_instruction_end Code::instruction_size -> raw_instruction_size The difference between the camel-case and raw_* function families is in how they handle off-heap-trampoline Code objects. For example, when called on an off-heap-trampoline: raw_instruction_start returns the trampoline's entry point, while InstructionStart returns the off-heap code's entry point (located in the .text section of the binary). Some callsites were updated to call the camel-case function family as appropriate. Bug: v8:6666 Change-Id: I4a572f47c2d161a853599d7c17879e263b0d1a87 Reviewed-on: https://chromium-review.googlesource.com/997532 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52387}
-
Alexey Kozyatinskiy authored
This is a reland of 7a2c3713 Original change's description: > [debug] introduced runtime side effect check > > This CL demonstrates minimum valuable addition to existing debug evaluate > without side effects mechanism. > With this CL user can evaluate expressions like: > [a,b] // create any kind of temporary array literals > [a,b].reduce((x,y) => x + y, 0); // use reduce method > [1,2,3].fill(2); // change temporary arrays > > The core idea: any change of the object created during evaluation without > side effects is side effect free. As soon as we try to store this temporary > object to object existed before evaluation we will terminate execution. > > Implementation: > - track all objects allocated during evaluation and mark them as temporary, > - patch all bytecodes which change objects. > > A little more details (including performance analysis): [1]. > > [1] https://docs.google.com/document/d/10qqAtZADspPnpYa6SEdYRxrddfKIZJIzbLtGpsZQkRo/edit# > > Bug: v8:7588 > Change-Id: I69f7b96e1ebd7ad0022219e8213211c7be72a111 > Reviewed-on: https://chromium-review.googlesource.com/972615 > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52370} Bug: v8:7588 Change-Id: Ibc92bf19155f2ddaedae39b0c576b994e84afcf8 Reviewed-on: https://chromium-review.googlesource.com/996760Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#52373}
-
- 04 Apr, 2018 4 commits
-
-
Aleksey Kozyatinskiy authored
This reverts commit 7a2c3713. Reason for revert: msan is broken Original change's description: > [debug] introduced runtime side effect check > > This CL demonstrates minimum valuable addition to existing debug evaluate > without side effects mechanism. > With this CL user can evaluate expressions like: > [a,b] // create any kind of temporary array literals > [a,b].reduce((x,y) => x + y, 0); // use reduce method > [1,2,3].fill(2); // change temporary arrays > > The core idea: any change of the object created during evaluation without > side effects is side effect free. As soon as we try to store this temporary > object to object existed before evaluation we will terminate execution. > > Implementation: > - track all objects allocated during evaluation and mark them as temporary, > - patch all bytecodes which change objects. > > A little more details (including performance analysis): [1]. > > [1] https://docs.google.com/document/d/10qqAtZADspPnpYa6SEdYRxrddfKIZJIzbLtGpsZQkRo/edit# > > Bug: v8:7588 > Change-Id: I69f7b96e1ebd7ad0022219e8213211c7be72a111 > Reviewed-on: https://chromium-review.googlesource.com/972615 > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52370} TBR=ulan@chromium.org,rmcilroy@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org,leszeks@chromium.org Change-Id: Ied1739c6308b13a4981189e0999f5912316cf456 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7588 Reviewed-on: https://chromium-review.googlesource.com/996135Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#52371}
-
Alexey Kozyatinskiy authored
This CL demonstrates minimum valuable addition to existing debug evaluate without side effects mechanism. With this CL user can evaluate expressions like: [a,b] // create any kind of temporary array literals [a,b].reduce((x,y) => x + y, 0); // use reduce method [1,2,3].fill(2); // change temporary arrays The core idea: any change of the object created during evaluation without side effects is side effect free. As soon as we try to store this temporary object to object existed before evaluation we will terminate execution. Implementation: - track all objects allocated during evaluation and mark them as temporary, - patch all bytecodes which change objects. A little more details (including performance analysis): [1]. [1] https://docs.google.com/document/d/10qqAtZADspPnpYa6SEdYRxrddfKIZJIzbLtGpsZQkRo/edit# Bug: v8:7588 Change-Id: I69f7b96e1ebd7ad0022219e8213211c7be72a111 Reviewed-on: https://chromium-review.googlesource.com/972615 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#52370}
-
Michael Achenbach authored
This reverts commit 63ecddc8. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20internal%20snapshot/builds/14773 Original change's description: > [runtime] Remove the construct_stub field of the SFI > > Don't dispatch based on the construct_stub field anymore. Rather than > read it out and jump to the construct stub, we can switch on the > builtin_id. > > Builtins will always have builtin_id as a Smi, so this signals we need > to jump to JSBuiltinsConstructStub. The only exception is for uncompiled > functions, which will have kCompileLazy as the builtin_id, but need to > jump to the generic stub instead. > > API function calls will have a FunctionTemplateInfo in the SFI > function_data field, and need to go to the builtins stub as well. > > The final case is everything else, which should go to the generic stub. > > Bug: v8:7503 > Change-Id: I14790a5f9784dc0d940bf10a05f5310026e1d482 > Reviewed-on: https://chromium-review.googlesource.com/980941 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52345} TBR=petermarshall@chromium.org,leszeks@chromium.org,bmeurer@chromium.org Change-Id: I2031913ab5a12018ad932f920792aa1f6faa5e22 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7503 Reviewed-on: https://chromium-review.googlesource.com/995293Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52346}
-
Peter Marshall authored
Don't dispatch based on the construct_stub field anymore. Rather than read it out and jump to the construct stub, we can switch on the builtin_id. Builtins will always have builtin_id as a Smi, so this signals we need to jump to JSBuiltinsConstructStub. The only exception is for uncompiled functions, which will have kCompileLazy as the builtin_id, but need to jump to the generic stub instead. API function calls will have a FunctionTemplateInfo in the SFI function_data field, and need to go to the builtins stub as well. The final case is everything else, which should go to the generic stub. Bug: v8:7503 Change-Id: I14790a5f9784dc0d940bf10a05f5310026e1d482 Reviewed-on: https://chromium-review.googlesource.com/980941Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#52345}
-
- 28 Mar, 2018 1 commit
-
-
Marja Hölttä authored
This reverts commit 61195eb6. Reason for revert: breaks gc stress Original change's description: > [in-place weak refs] Replace the WeakCell potentially in Map::raw_transitions_. > > BUG=v8:7308 > > Change-Id: I3021df5f6dfd02d85ed9fe1903f9c0850f92168d > Reviewed-on: https://chromium-review.googlesource.com/972962 > Commit-Queue: Marja Hölttä <marja@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52272} TBR=ulan@chromium.org,marja@chromium.org Change-Id: I218b4d767da5095e5c5fee650567eb41343b347e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7308 Reviewed-on: https://chromium-review.googlesource.com/983812Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52275}
-