- 04 Jul, 2017 3 commits
-
-
Leszek Swirski authored
Instead of having the "next step" state machine logic in the compiler dispatcher, move it to the compiler dispatcher job. This is a prerequisite to having more generic jobs with slightly different state sets, such as an optimizing compile job. Bug: v8:6537 Change-Id: Ib7319222f26dbc0e2afc95573b06d813825afde3 Reviewed-on: https://chromium-review.googlesource.com/554751 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46396}
-
Mike Stanton authored
Every, Some, Reduce, ReduceRight. Added a test that should improve when TurboFan inlines these builtins. Updated Map and Filter tests to include a TurboFan inline test. Bug: v8:2229 Change-Id: Ie84d414fdcccea23c734caca55a3344f9442547f Reviewed-on: https://chromium-review.googlesource.com/558935Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#46395}
-
jarin authored
Review-Url: https://codereview.chromium.org/2964633002 Cr-Commit-Position: refs/heads/master@{#46394}
-
- 03 Jul, 2017 23 commits
-
-
bgirard authored
v8.cpu_profiler has a long and variable warm up period. If you look in tracing that time shows up under V8.Execute which is very misleading. By adding a tracing category for the time spent in CpuProfiler::StartProfiling the warm up time can be easily identified or even filtered out. With this tracing event the block in StartProfiling correctly described the time spent prepare v8.cpu_profiler out from V8.Execute Test by collecting a trace with V8.Execute and look at when a trace starts generating v8 samples. BUG=chromium:733853 Review-Url: https://codereview.chromium.org/2950543002 Cr-Commit-Position: refs/heads/master@{#46393}
-
Camillo Bruni authored
Change-Id: I703c90cfbb91f4afc035fb32a44f33af9fe736f3 Reviewed-on: https://chromium-review.googlesource.com/548459 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#46392}
-
Michael Lippautz authored
Bug: chromium:738368 Change-Id: I749517391f9d5dd0827f3d37f975f6c61542d1ff Reviewed-on: https://chromium-review.googlesource.com/558914 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46391}
-
Michael Achenbach authored
This reverts commit 8840d622. Reason for revert: This requires the infra-side to be adapted to look for open rolls. There's no such feature in the gerrit recipe_module or git-cl tooling yet. Original change's description: > [release] Make gerrit the default for all release tools > > This switches also the V8->Chromium rolls to Gerrit. > > NOTRY=true > TBR=hablich@chromium.org > > Bug: chromium:685318 > Change-Id: Idc168f790541f09bd2f2d7c2f72806ac9e966843 > Reviewed-on: https://chromium-review.googlesource.com/558913 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46388} TBR=machenbach@chromium.org,hablich@chromium.org,tandrii@chromium.org Change-Id: I597538b6165b9952b5df9cde72466b95739cf56b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:685318 Reviewed-on: https://chromium-review.googlesource.com/558225Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46390}
-
Michael Achenbach authored
The release tools used to reload CL descriptions from rietveld to consider late edits. This makes no sense anymore with gerrit, so we drop the feature. NOTRY=true TBR=hablich@chromium.org Bug: chromium:685318 Change-Id: I08231795ba3b25c0939aa2b4428973086548484d Reviewed-on: https://chromium-review.googlesource.com/558915Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46389}
-
Michael Achenbach authored
This switches also the V8->Chromium rolls to Gerrit. NOTRY=true TBR=hablich@chromium.org Bug: chromium:685318 Change-Id: Idc168f790541f09bd2f2d7c2f72806ac9e966843 Reviewed-on: https://chromium-review.googlesource.com/558913Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46388}
-
Ilija Pavlovic authored
On Loongson 3A, MADD/MSUB instructions are actually fused MADD/MSUB and they can cause failure in some of the tests. Since this optimization is rarely used, and not used at all on MIPS64R6, MADD/MSUB instructions are removed from the source base. TEST= BUG= Change-Id: Ifbb5508a62731bb061f332864ffd1e210e97f963 Reviewed-on: https://chromium-review.googlesource.com/558066Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Cr-Commit-Position: refs/heads/master@{#46387}
-
Michael Lippautz authored
Bug: chromium:738368 Change-Id: Iebbfc258be7f1997dc441ccdf12c38635901f732 Reviewed-on: https://chromium-review.googlesource.com/558911Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46386}
-
Michael Achenbach authored
The test runner automatically infers certain options from the build product if it was generated with GN. This CL makes the code for inferring the options more generic and makes sure that: 1) boolean options can't be set on builds where they don't make sense (e.g. can't pass --asan in a non-asan build) 2) string options are equal to the derived option from the build (e.g. can't test arch x64 when build is x86) Bug: v8:5533 Change-Id: I4badf3a17a2fc23ddb9d129602aa15f12665821f Reviewed-on: https://chromium-review.googlesource.com/552542Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46385}
-
Michael Lippautz authored
- Avoid static methods. - Instantiate the actual visitor on the stack. - Get rid of unnecessary abstractions. Bug: chromium:738865 Change-Id: I4115d7b88f17a7118aa9ee129eb39a28ec413696 Reviewed-on: https://chromium-review.googlesource.com/558878 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46384}
-
Ulan Degenbaev authored
Change-Id: I1cb2eb715646366d516c26b11849955990dcda53 Reviewed-on: https://chromium-review.googlesource.com/558881Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46383}
-
Michael Achenbach authored
This uploads roll-branch CLs before landing and fixes an ambiguity bug when pushing tags. NOTRY=true TBR=hablich@chromium.org Bug: chromium:738679 Change-Id: I51e03d714ec97ee2d9bca4ecaf753d66038891c1 Reviewed-on: https://chromium-review.googlesource.com/558415Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46382}
-
Jochen Eisinger authored
Original change's description: > Switch tracing to use v8::TracingController > > BUG=v8:6511 > R=fmeawad@chromium.org > > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I4961e4b61a9ddc98385ed97c3ffcbcaef2d9cba7 > Reviewed-on: https://chromium-review.googlesource.com/543144 > Commit-Queue: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: Fadi Meawad <fmeawad@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46307} BUG=v8:6511 TBR=fmeawad@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux64_tsan_rel Change-Id: Ide32b409248dfd466e7c0bae1d8ae61d6a955d98 Reviewed-on: https://chromium-review.googlesource.com/558865 Commit-Queue: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#46381}
-
Igor Sheludko authored
Bug: v8:6459 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I34d6203c7f26c54423789699e4263ce815171d3f Reviewed-on: https://chromium-review.googlesource.com/558874Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46380}
-
Clemens Hammacher authored
When providing scope information (containing the value of local variables of live stack frames), decode the local variable names of all functions in a wasm module and store this in the WasmDebugInfo structure. Use these names to actually name the reported locals, instead of using the default names "param#<d>" and "local#<d>". These names are only used as fallbacks for locals which were not assigned a name. R=titzer@chromium.org,kozyatinskiy@chromium.org BUG=v8:6245 Change-Id: Ibf7d30e392248ef5590177cd8b6329239b45e018 Reviewed-on: https://chromium-review.googlesource.com/548495 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46379}
-
Miran.Karic authored
Instructions ins and ext didn't work properly when size = 32 because of incorrect mask initialization, this CL fixes this. A test for Ins is also added. BUG= Change-Id: I95cc8e13aaa2341b34ae59dae1eefb64c551b8b4 Reviewed-on: https://chromium-review.googlesource.com/558872 Commit-Queue: Miran Karić <Miran.Karic@imgtec.com> Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Cr-Commit-Position: refs/heads/master@{#46378}
-
Michael Lippautz authored
Removes the ability of allocating dominators and folded allocations which was tied to Crankshaft's allocation folding. Bug: v8:6408 Change-Id: Id2e1b5445c8357ac770c88e734b6c50d5f6c5eae Reviewed-on: https://chromium-review.googlesource.com/558093 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46377}
-
Mathias Bynens authored
Commit 26c00f4a improved the names of most FAST_* elements kinds in the enum. This patch updates the matching Has*Elements and Is*ElementsKind method names accordingly. - HasFastSmiElements => HasSmiElements - IsFastSmiElementsKind => IsSmiElementsKind - HasFastObjectElements => HasObjectElements - IsFastObjectElementsKind => IsObjectElementsKind - HasFastSmiOrObjectElements => HasSmiOrObjectElements - IsFastSmiOrObjectElementsKind => IsSmiOrObjectElementsKind - HasFastDoubleElements => HasDoubleElements - IsFastDoubleElementsKind => IsDoubleElementsKind - HasFastHoleyElements => HasHoleyElements - IsFastHoleyElementsKind => IsHoleyElementsKind Additionally, FastHoleyElementsUsage is renamed to HoleyElementsUsage. BUG=v8:6548 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ie8f3d01eb43e909cbc6c372d88c5fbc4dfc2ac04 Reviewed-on: https://chromium-review.googlesource.com/558356Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#46376}
-
Andreas Haas authored
The jsapi-harness test runs the JS-API spec tests of WebAssembly, which get fetched from github when 'gclient sync' is executed. Without 'gclient sync' the harness may executed a version of the tests which is older than required by the harness. In this CL I add a suggestion to the test to run 'gclient sync' which is shown when the test is failing. R=marja@chromium.org Change-Id: I36d03bebc4d6cc554eefd4eb376c3d309b7ee5b9 Reviewed-on: https://chromium-review.googlesource.com/558419Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#46375}
-
Marja Hölttä authored
(The test that catches the bug was test-bytecode-generator/LookupSlot) BUG=v8:5516 Change-Id: I00a02c5326b2a132383a9d72b5b894fade53bbf2 Reviewed-on: https://chromium-review.googlesource.com/558864 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46374}
-
Peter Marshall authored
This sometimes caused problems with bots (for node too) because the allocation could fail. Bug: v8:6452 Change-Id: I346a9117eba8b6ed41566efeceaf7fb190784d76 Reviewed-on: https://chromium-review.googlesource.com/558075Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#46373}
-
bmeurer authored
Revert of [turbofan] Extend escape analysis to reduce certain CheckMaps. (patchset #1 id:1 of https://codereview.chromium.org/2964473002/ ) Reason for revert: Speculative revert for tiny fire on Canary (crbug.com/738781) Original issue's description: > [turbofan] Extend escape analysis to reduce certain CheckMaps. > > Enable the experimental support in escape analysis to deal with > constant-foldable CheckMaps nodes and remove them from the effect > chain w/o blocking the scalar replacement of the object. > > BUG=v8:4586,v8:5267 > R=tebbi@chromium.org > > Review-Url: https://codereview.chromium.org/2964473002 > Cr-Commit-Position: refs/heads/master@{#46311} > Committed: https://chromium.googlesource.com/v8/v8/+/adf7f54e24c4b31207b4df0e30c28f7579b18f5c TBR=tebbi@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=v8:4586,v8:5267 Review-Url: https://codereview.chromium.org/2970663002 Cr-Commit-Position: refs/heads/master@{#46372}
-
Michael Achenbach authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/259d849..e9a4317 Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/6d102fd..3b0c0e0 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/2023fc2..a89cc89 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Change-Id: I5782e1de7c54ea4f2e1e5f637a4f166a5acc5bc6 Reviewed-on: https://chromium-review.googlesource.com/558413Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46371}
-
- 02 Jul, 2017 1 commit
-
-
Caitlin Potter authored
These were originally written as part of https://chromium-review.googlesource.com/c/550396/. I've separated them out into a separate CL with the intent of landing it first, so that it's easier to see the difference these CLs will have on generated bytecode. BUG=v8:5855 TBR=tebbi@chromium.org, rmcilroy@chromium.org Change-Id: Ib84e65847d7396e31b0e38d28f59454cf7c58fc1 Reviewed-on: https://chromium-review.googlesource.com/558221Reviewed-by: Caitlin Potter <caitp@igalia.com> Commit-Queue: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#46370}
-
- 30 Jun, 2017 13 commits
-
-
Josh Wolfe authored
Includes unit tests for the post-processing step flatten_regions_to_parts(). Bug: v8:5244 TBR: bmeurer@chromium.org, rossberg@chromium.org Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I306dd1721cc00c5820b061f14c4b6866f8d938f6 Reviewed-on: https://chromium-review.googlesource.com/529973 Commit-Queue: Josh Wolfe <jwolfe@igalia.com> Reviewed-by: Daniel Ehrenberg <littledan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46369}
-
Aaron Gable authored
Bug: chromium:685318 Change-Id: Ia603ad4a0a35bba5c5572cad32364ff3695b3a74 Reviewed-on: https://chromium-review.googlesource.com/558191 Commit-Queue: Aaron Gable <agable@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46368}
-
Mathias Bynens authored
`IsHoleyElementsKind` doesn’t just check for holeyness — it checks for dictionary elements as well. Its name should reflect that. This patch renames `IsHoleyElementsKind` to `IsHoleyOrDictionaryElementsKind`, which makes it possible to rename `IsFastHoleyElementsKind` to `IsHoleyElementsKind` in a future patch. R=jkummerow@chromium.org, cbruni@chromium.org BUG=v8:6548 Change-Id: Id799fe396442e9810426145359254d60990f8492 Reviewed-on: https://chromium-review.googlesource.com/558344Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#46367}
-
Andreas Haas authored
This CL updates the wasm spec tests. In addition it adds an assertNotEquals function to mjsunit.js, and it fixes the test harness to not call quit() because it causes a dead-lock in combination with async compilation. R=rossberg@chromium.org Change-Id: I50cf737993adb3e2bd27977efe7e20e304b89078 Reviewed-on: https://chromium-review.googlesource.com/558077Reviewed-by: Andreas Rossberg <rossberg@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#46366}
-
Igor Sheludko authored
...and cleanup definition of several builtins in %TypedArrayPrototype%. Bug: v8:6459, chromium:737877 Change-Id: Ic5832847476bf5a544ae0b0df5df0ed4edd3e44c Reviewed-on: https://chromium-review.googlesource.com/558076Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46365}
-
Michael Lippautz authored
Replace the second level visitation with a much simpler logic that just separately dispatches the special cases. All other cases can use a dispatch that just evacuates an object based on size. This is similar to the logic used in the mark-compact collector. The goal is to align behaviors as much as possible, highlighting and fixing performance issues in the different behaviors. This CL is mechanical as possible. A followup will clean up the naming scheme and dispatching. Bug: chromium:738368 Change-Id: Ia5a426c5ebb25230000b127580c300c97cff8b1b Reviewed-on: https://chromium-review.googlesource.com/558060 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46364}
-
Miran.Karic authored
The CL adds optimizations for AddPair, SubPair, ShlPair, ShrPair and SarPair macro instructions. BUG= Change-Id: I56460624adc0aa8ae135533ef4b99e0ed8360ccb Reviewed-on: https://chromium-review.googlesource.com/555513Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Commit-Queue: Miran Karić <Miran.Karic@imgtec.com> Cr-Commit-Position: refs/heads/master@{#46363}
-
Michael Lippautz authored
- Properly detect whether the args.gn config actually wants goma. - Read out cpu count dynamically. NOTRY=true Bug: Change-Id: I7a687e873ef0b009ab6eaada384378d23e1dbb1e Reviewed-on: https://chromium-review.googlesource.com/558085 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#46362}
-
Mathias Bynens authored
The `FAST_` prefix doesn’t make much sense — they’re all just different cases with their own optimizations. Packedness being implicit (e.g. `FAST_ELEMENTS` vs. `FAST_HOLEY_ELEMENTS`) is not ideal, either. This patch renames the FAST elements kinds as follows: - e.g. FAST_ELEMENTS => PACKED_ELEMENTS - e.g. FAST_HOLEY_ELEMENTS => HOLEY_ELEMENTS The following exceptions are left intact, for lack of a better name: - FAST_SLOPPY_ARGUMENTS_ELEMENTS - SLOW_SLOPPY_ARGUMENTS_ELEMENTS - FAST_STRING_WRAPPER_ELEMENTS - SLOW_STRING_WRAPPER_ELEMENTS This makes it easier to reason about elements kinds, and less confusing to explain how they’re used. R=jkummerow@chromium.org, cbruni@chromium.org BUG=v8:6548 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ie7c6bee85583c3d84b730f7aebbd70c1efa38af9 Reviewed-on: https://chromium-review.googlesource.com/556032Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Mathias Bynens <mathias@chromium.org> Cr-Commit-Position: refs/heads/master@{#46361}
-
Caitlin Potter authored
Allocates the Await success/failure closures, their context, and the two required JSPromise objects all at once in a single call, rather than performing multiple allocations throughout the function. Saves about 2kb of snapshot space on an x64.release build. Performance impact of this change has not been measured yet. BUG=v8:4483 R=ishell@chromium.org, jgruber@chromium.org Change-Id: I8d911cb91f5d0e00544ad3ba608aa170f6b2f704 Reviewed-on: https://chromium-review.googlesource.com/549999Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Caitlin Potter <caitp@igalia.com> Cr-Commit-Position: refs/heads/master@{#46360}
-
Dusan Simicic authored
Add support for MSA I5 instructions in mips32 and mips64 simulators. Bug: Change-Id: Ie1be499a1b3c686603348d895456b8f39d5c1002 Reviewed-on: https://chromium-review.googlesource.com/552554Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@imgtec.com> Cr-Commit-Position: refs/heads/master@{#46359}
-
jgruber authored
Catch prediction for optimized frames had two issues: Inlined frames were iterated from caller-to-callee (which could result in incorrect predictions if one frame predicted CAUGHT and another predicted PROMISE). When encountering a builtin frame, we'd unconditionally return its prediction (which is wrong if it predicted UNCAUGHT and another inlined frame predicted either CAUGHT or PROMISE). This CL fixes both issues and refactors the function to reduce nesting. BUG=v8:6536 Change-Id: I764a4ec033e4476bd840134b5eacfe0e08b3c1a4 Reviewed-on: https://chromium-review.googlesource.com/555519 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46358}
-
jgruber authored
V8's catch prediction mechanism tries to predict whether a thrown exception will be caught, just by looking at the current call stack. At the time when catch prediction was first introduced, only a few builtins (mostly related to Promise and Generator) could end up being fed into the catch prediction mechanism. This is no longer the case now that builtins are used in new ways, e.g. Array.p.forEach's continuation builtins. This CL removes the need to explicitly mark all builtins visible to the StackFrameIterator as CAUGHT/UNCAUGHT/PROMISE, and instead defaults to treating unmarked builtins as UNCAUGHT. BUG=v8:6536 Change-Id: Ibdc106a91b2b0ffb93099433077642cad02c71e2 Reviewed-on: https://chromium-review.googlesource.com/555518 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#46357}
-