- 15 Feb, 2019 17 commits
-
-
Tobias Tebbi authored
To address previously observed regressions, this CL also introduces unchecked FixedArray accessors and uses them to access collections. Bug: v8:8029 Change-Id: I6bcd8db2b89b29b7acb3b8431ec5405b737bcef2 Reviewed-on: https://chromium-review.googlesource.com/c/1473033 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#59631}
-
Sigurd Schneider authored
This allows removing some v8.h includes in blink, and replacing them by forward declarations. Change-Id: I3f55669f551e29038918f54a26a0ab032ffb252a Bug: v8:8788 Reviewed-on: https://chromium-review.googlesource.com/c/1475394Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59630}
-
Farazmand authored
Port a4b19dcc Original Commit Message: This switches from copying entire runtime stubs into each module to only having small jump table slots in each module that act as a trampoline to the actual embedded builtin representing the runtime stub. This reduces the memory footprint of modules. R=mstarzinger@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, miladfar@ca.ibm.com BUG= LOG=N Change-Id: Ibbe5fdf4d926b45582748ae8b15eb316107409dc Reviewed-on: https://chromium-review.googlesource.com/c/1470455Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#59629}
-
Toon Verwaest authored
Escaped contextual keywords are simply valid identifiers if they do not occur in the context where they are a keyword. Escape sequences of the form \uNNNN or \u{NNNNNN} must be consumed as part of the identifier. If such escaped contextual keywords do occur in a context where they are a keyword, they are a syntax error. In that case we manually check locally whether they are escaped. Bug: v8:6543, v8:6541 Change-Id: I7e1557963883e722310b9078d7d7636ec94aa603 Reviewed-on: https://chromium-review.googlesource.com/c/1473293Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59628}
-
Peter Marshall authored
Also drive-by cleanup the TestMemoryAllocatorScope class so that it takes ownership of the old allocator while it holds onto it, and so that the MemoryAllocator for testing is constructed inside the scope rather than passed into it. This means users don't need to explicitly call TearDown() and delete the allocator as the scope does it for them. Change-Id: Id7da3c074618a376d2edfe3385bb185ba8287cea Reviewed-on: https://chromium-review.googlesource.com/c/1392194 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#59627}
-
Leszek Swirski authored
In addition to the previous change enabling forced FunctionDeclaration allocation when block code coverage is enabled, enable it now for all (non-best-effort) code coverage by reading off the coverage mode from the isolate (rather than relying on the presence of a source range map). Bug: chromium:927464 Change-Id: I26f86c9fbebc0df52d5cdeff3ca1095215a6d912 Reviewed-on: https://chromium-review.googlesource.com/c/1456041 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59626}
-
Tobias Tebbi authored
This changes the behavior of overload resolution to not consider if the call happens in a branching context (i.e., with implicit True and False labels from a conditional operator or statement). That way, it is not possible to get different behavior accidentially by using an operator in the wrong context. Instead, there will be a compile error because the call happened in a non-branching context, or because it is ambiguous without this information. The test doesn't perfectly fit the issue (impossible until we have negative tests), but instead tests that equality on HeapNumber's works in boolean contexts, which is something Peter fixed already in https://crrev.com/c/1432596. Bug: v8:8737 v8:7793 Change-Id: I08a3801891587aac705dc93b1c65b0c6cf164107 Reviewed-on: https://chromium-review.googlesource.com/c/1456093Reviewed-by: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Daniel Clifford <danno@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#59625}
-
Benedikt Meurer authored
This refactors the ThreadLocalTop into separate header and implementation files, and moves it from the Isolate to the IsolateData (with some tweaks to make the layout of the class predictable). This has the advantage that all external references referring to addresses in the ThreadLocalTop (like js_entry_sp, c_function, c_entry_fp, etc.) need only a single memory access to reach them. For example the CallApiCallback can now use ``` mov %rbp,0x8e40(%r13) mov %rsi,0x8de0(%r13) mov %rbx,0x8e50(%r13) ``` to setup the information about context, frame pointer, and C++ function pointer in the ThreadLocalTop instead of the previously generated code ``` mov 0x2e28(%r13),%r10 mov %rbp,(%r10) mov 0x2e38(%r13),%r10 mov %rsi,(%r10) mov 0x2e30(%r13),%r10 mov %rbx,(%r10) ``` which always had to load the scratch register %r10 with the actual address first. This has interesting performance impact. On the test case mentioned in v8:8820 (with the `d8` patch applied), the performance goes from ``` console.timeEnd: fnMono, 2290.012000 console.timeEnd: fnCall, 2604.954000 ``` to ``` console.timeEnd: fnMono, 2062.743000 console.timeEnd: fnCall, 2477.556000 ``` which is a pretty solid **10%** improvement for the monomorphic API accessor case, and a **5%** improvement for calling into the API accessor instead. But there might as well be other places besides API callback calls that will benefit from this change, which I haven't tested explicitly. Although this change is supposed to be as minimal as possible without any functional effects, some changes were necessary/logical. Eventually we should reconsider changing the layout and the types for the fields in the ThreadLocalTop to be more consistent with the other IsolateData entities. But this can be done in separate follow-up CLs, as this will be quite a bit of churn on the code base, depending on how we do that exactly, and is orthogonal to this optimization. Bug: v8:8820, v8:8848, chromium:913553 Change-Id: I4732c8e60231f0312eb7767358c48bae0338220d Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Reviewed-on: https://chromium-review.googlesource.com/c/1474230Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59624}
-
Michael Achenbach authored
TBR=sergiyb@chromium.org NOTRY=true Change-Id: I95b677f5f1d0d3de815ad8d1d56301b1dcbbcd52 Reviewed-on: https://chromium-review.googlesource.com/c/1475391Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#59623}
-
Michael Achenbach authored
This also cleans up some OWNERS files. NOTRY=true Change-Id: Ic49ecee02bb3e339dc4c0de4ba69f00c36c076aa Reviewed-on: https://chromium-review.googlesource.com/c/1475470Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#59622}
-
Jaroslav Sevcik authored
This allows updates to SLOW_STRING_WRAPPER_ELEMENTS elements kind for non-extensible map (so far only dictionary elements and typed-array elements were allowed). Bug: chromium:932101 Change-Id: Id532684aa94f908eb14f3451aa823f282342668b Reviewed-on: https://chromium-review.googlesource.com/c/1475390Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#59621}
-
Igor Sheludko authored
Bug: v8:8477, v8:8834 Change-Id: If613bc4a32cdce68d9bcf747bf0bf528e3c2a90c Reviewed-on: https://chromium-review.googlesource.com/c/1473290Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59620}
-
Igor Sheludko authored
Bug: v8:8477, v8:8834 Change-Id: I5ff2df3988cde5f806cecc9e40259ba02f6265d2 Reviewed-on: https://chromium-review.googlesource.com/c/1473291Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59619}
-
Jaroslav Sevcik authored
If StoreIC stores into a kConst field, only take the slow path if the value is different from the current value. This recovers the ObjectAssign regression in crbug.com/930680. Bug: v8:8361, chromium:930680 Change-Id: Ie27d15d624b07ab1dcb58b244a46b87eec34bd0f Reviewed-on: https://chromium-review.googlesource.com/c/1470134 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59618}
-
Jakob Kummerow authored
This takes heap-inl.h out of the "Giant Include Cluster". Naturally, that means adding a bunch of explicit includes in a bunch of places that relied on transitively including them before. As of this patch, no header file outside src/heap/ includes heap-inl.h. Bug: v8:8562,v8:8499 Change-Id: I65fa763f90e66afc30d105b9277792721f05a6d4 Reviewed-on: https://chromium-review.googlesource.com/c/1459659 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59617}
-
Jaroslav Sevcik authored
... as opposed to prototype maps only. This recovers the JSTests/ObjectLiteralSpread/ObjectSpreadAndOverwrite regression. Bug: chromium:930680, v8:8361 Change-Id: I71510f0ac76b19d16aaf3249a5cf533adf425a20 Reviewed-on: https://chromium-review.googlesource.com/c/1472632Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#59616}
-
Frank Tang authored
$ python -u tools/run_perf.py --binary-override-path out/x64.release/d8 --filter "JSTests/Strings/StringToLocaleCase" test/js-perf-test/JSTests.json INFO >>> Running suite: JSTests/Strings/StringToLocaleCase INFO >>> Stdout (#1): StringToLocaleUpperCaseTR-Strings(Score): 622 StringToLocaleLowerCaseTR-Strings(Score): 728 StringToLocaleUpperCase-Strings(Score): 1129 StringToLocaleLowerCase-Strings(Score): 1548 Bug: v8:8839 Change-Id: I35e20c84614e99cb84ae51c175ac6b1cd53ad3a6 Reviewed-on: https://chromium-review.googlesource.com/c/1469327 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#59615}
-
- 14 Feb, 2019 23 commits
-
-
Andrey Kosyakov authored
... to revision c40253f87c475880d1bdad4a90cf21c38dadf4ac Also, preseve binary protocol when restoring session. Bug: chromium:929862 Change-Id: Icb1cb04b42ca7238b46e2978337b36e32398665f Reviewed-on: https://chromium-review.googlesource.com/c/1474556 Commit-Queue: Andrey Kosyakov <caseq@chromium.org> Commit-Queue: Pavel Feldman <pfeldman@chromium.org> Reviewed-by: Pavel Feldman <pfeldman@chromium.org> Cr-Commit-Position: refs/heads/master@{#59614}
-
Hannu Trey authored
Add an enum argument to DateTimeConfigurationChangeNotification to control whether or not to redetect the host time zone. The default value kSkip doesn't cause redetecting so that callers do not need to change if they want the current behavior (e.g. Chromium). Note that the host time zone detection does not work when v8 is run inside a sandbox as in Chromium so that Chromium detects the host time zone outside the sandbox before calling DateTimeConfigurationChangeNotification. OTOH, other v8 embedders may find it more convenient for v8 to do the host time zone detection on their behalf. In that case, they can call the function with the new argument set to value kRedetect. Test: With PHP+V8Js on linux, execute: php -r ' putenv("TZ=Europe/Helsinki"); $v8 = new V8Js(); $v8->executeString("print((new Date(0)).toString()+\"\\n\");"); putenv("TZ=America/New_York"); $v8->executeString("print((new Date(0)).toString()+\"\\n\");");' Result before modification: Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time) Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time) Result after modification: Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time) Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time) Result after V8JS is modified to use value kRedetect when calling Thu Jan 01 1970 02:00:00 GMT+0200 (Eastern European Standard Time) Wed Dec 31 1969 19:00:00 GMT-0500 (Eastern Standard Time) DateTimeConfigurationChangeNotification: Change-Id: I005192dd42669a94f606a49baa9eafad3475b9fd Reviewed-on: https://chromium-review.googlesource.com/c/1449637Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jungshik Shin <jshin@chromium.org> Commit-Queue: Jungshik Shin <jshin@chromium.org> Cr-Commit-Position: refs/heads/master@{#59613}
-
Frank Tang authored
$ python -u tools/run_perf.py --binary-override-path out/x64.release/d8 --filter "JSTests/Strings/StringNormalize" test/js-perf-test/JSTests.json INFO >>> Running suite: JSTests/Strings/StringNormalize INFO >>> Stdout (#1): StringNormalize-Strings(Score): 4014 StringNormalizeNFD-Strings(Score): 742 StringNormalizeNFKC-Strings(Score): 3066 StringNormalizeNFKD-Strings(Score): 739 Bug: v8:8844 Change-Id: Ic941bafa82cead9cd0110ad7ac46e528d481189b Reviewed-on: https://chromium-review.googlesource.com/c/1470964 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#59612}
-
Frank Tang authored
Part 2 after part 1 removed flags from all tests. Bug: v8:8705 Change-Id: Id2e299cc574228548460a562496d7905b834dc6b Reviewed-on: https://chromium-review.googlesource.com/c/1461800 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#59611}
-
Benedikt Meurer authored
The V8 Extras API provides `resolvePromise()` and `rejectPromise()` functions that bypass the safety net of the resolve/reject closures that you get from using the Promise constructor. So it's the responsibility of the user to make sure that the promises are still pending. This adds release mode checking and hard aborts to make sure we catch misuse of these APIs early. This also turns the DCHECK's in the C++ implementation into actual CHECK's to make sure we crash hard if the invariants are violated. Bug: chromium:931949, chromium:931640 Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Change-Id: I98a6f424d2a3cfbb608fed21036caff6e2510ec3 Reviewed-on: https://chromium-review.googlesource.com/c/1472291Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59610}
-
Johannes Henkel authored
This is a tweaked version of the script that I just added to Chromium: https://cs.chromium.org/chromium/src/third_party/inspector_protocol/roll.py Change-Id: I21566f2472c20ecfd713996974c0833b7988a122 Reviewed-on: https://chromium-review.googlesource.com/c/1469376Reviewed-by: Pavel Feldman <pfeldman@chromium.org> Commit-Queue: Johannes Henkel <johannes@chromium.org> Cr-Commit-Position: refs/heads/master@{#59609}
-
Michael Achenbach authored
This reverts commit a6b95a6a. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Clusterfuzz%20Win64%20ASAN%20-%20release%20builder/6984 Original change's description: > Reland "[build] disable C++ optimization for mksnapshot code." > > This is a reland of cee2f772 > > Original change's description: > > [build] disable C++ optimization for mksnapshot code. > > > > By disabling C++ optimizations for code that's only run in mksnapshot, > > that is, CSA and Torque-generated code, we can save compile time. > > I observed up to 2x improvements of compile time for some files, > > while the mksnapshot time did not increase significantly. > > > > Bug: v8:7629 > > Change-Id: I96be2966611b2471b68023e0dd9e351d94f0013c > > Reviewed-on: https://chromium-review.googlesource.com/c/1460941 > > Reviewed-by: Yang Guo <yangguo@chromium.org> > > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#59585} > > Bug: v8:7629 > Change-Id: I8330f93173ab3d7b400e15ea4935bbe8256b250f > Reviewed-on: https://chromium-review.googlesource.com/c/1473292 > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59606} TBR=yangguo@chromium.org,sigurds@chromium.org,tebbi@chromium.org Change-Id: Ifdad207913a1814580c3055e57c6bfc2c6a53ae6 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7629 Reviewed-on: https://chromium-review.googlesource.com/c/1473294Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#59608}
-
Alexei Filippov authored
Change-Id: I4f7c80f89ad4d023f96a9113ebb6628df44fb61c Reviewed-on: https://chromium-review.googlesource.com/c/1469325Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#59607}
-
Tobias Tebbi authored
This is a reland of cee2f772 Original change's description: > [build] disable C++ optimization for mksnapshot code. > > By disabling C++ optimizations for code that's only run in mksnapshot, > that is, CSA and Torque-generated code, we can save compile time. > I observed up to 2x improvements of compile time for some files, > while the mksnapshot time did not increase significantly. > > Bug: v8:7629 > Change-Id: I96be2966611b2471b68023e0dd9e351d94f0013c > Reviewed-on: https://chromium-review.googlesource.com/c/1460941 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59585} Bug: v8:7629 Change-Id: I8330f93173ab3d7b400e15ea4935bbe8256b250f Reviewed-on: https://chromium-review.googlesource.com/c/1473292 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59606}
-
Clemens Hammacher authored
This removes another two macros and introduces a templatized function instead. Note that there is only one instantiation per input length, not per input. R=titzer@chromium.org Bug: v8:8562 Change-Id: I47ad274e68d26b962cbd582e90995d30b1d09d39 Reviewed-on: https://chromium-review.googlesource.com/c/1460938 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59605}
-
Clemens Hammacher authored
In the wasm streaming decoder error position test, do also check the error messages generated. This revealed messages that were not quite fitting and some that were formatted differently than the majority. R=ahaas@chromium.org Bug: v8:8814 Change-Id: If157f1083a104413bf14797ac56e756baac98c17 Reviewed-on: https://chromium-review.googlesource.com/c/1463780 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59604}
-
Sigurd Schneider authored
Change-Id: Ic60f74a60480ea4a74e039c5c87e8c1995e60453 Bug: v8:8834 Reviewed-on: https://chromium-review.googlesource.com/c/1473032Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59603}
-
Igor Sheludko authored
Bug: v8:8477, v8:8834 Change-Id: I9213cca077a2758b87a6cb95bcb01d0186c32098 Reviewed-on: https://chromium-review.googlesource.com/c/1472633Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#59602}
-
Michael Starzinger authored
R=tebbi@chromium.org BUG=chromium:931536 Change-Id: I3a6dbabec7a84f55d6aa85934dca37af55390552 Reviewed-on: https://chromium-review.googlesource.com/c/1473034Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59601}
-
Toon Verwaest authored
This is already blocked when PRIVATE_NAME is parsed anyway, and we simply need to make sure that we don't continue. So marking the prop_info->kind as kNotSet will do what you want via the unexpected path rather than through the main hot path. Bug: v8:8808 Change-Id: I93beb80a89cf764cd79d6c3ec3a5fc763a98c4d6 Reviewed-on: https://chromium-review.googlesource.com/c/1472635Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59600}
-
Alexander Timokhin authored
HeapNumbers and MutableHeapNumber requires alignment for their double value field but for now this field can be misaligned on 32-bit platforms. According to code in Heap::GetFillToAlign() function, kDoubleUnaligned doesn't actually mean "unaligned" but "aligned to half of double". This CL fixes this misalignment. Change-Id: I9b9c58d580bb287e7dad44bc96cd6b4593707b5e Reviewed-on: https://chromium-review.googlesource.com/c/1470113 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#59599}
-
Benedikt Meurer authored
When calling into API callbacks from TurboFan optimized, we can currently only take a fast-path when TurboFan is able to find some information about the receiver in the graph, or when the API callback specifies that it neither requires an access check (aka "accepts any receiver") nor an interface check (aka "compatible receiver check"). This change introduces a new CallFunctionTemplate builtin that sits in front of the CallApiCallback builtin and does both the access as well as the interface check as necessary (and raises appropriate exceptions). This way TurboFan can still call into the API callback via the fast-path even without ahead knowledge about the receiver, which is significantly faster than the generic call machinery for API callbacks. On the test case from the Angular team[1], the interesting metrics improve from DOM_mono: 0.273 ms DOM_mega: 0.571 ms DOM_call: 0.649 ms to DOM_mono: 0.264 ms DOM_mega: 0.572 ms DOM_call: 0.368 ms so the DOM_call is only about **1.4 times slower** than the DOM_mono and about **1.5 times faster** than the DOM_mega case (compared to **2.4 times slower**). Execution time in the DOM_call was reduced by around **~45%**. Currently this new code path is limited to TurboFan optimized code, but the idea is to eventually migrate the API calls from baseline to also use the new CSA functionality, but there are lot's of subleties to take into account, so starting with small changes to get coverage for the basic building blocks. [1]: https://mhevery.github.io/perf-tests/DOM-megamorphic.html Bug: v8:8820 Change-Id: Ie1029cf182ce05a6e519fd9a9d4fa825db8adb4c Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Reviewed-on: https://chromium-review.googlesource.com/c/1470129 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59598}
-
Michael Starzinger authored
This is a reland of 74951850 Original change's description: > [wasm] Fix two jump table offset parameters. > > R=jgruber@chromium.org > > Change-Id: I5b40819b1a746f16b7b18aac1bba65d83a7e3483 > Reviewed-on: https://chromium-review.googlesource.com/c/1470127 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59560} Change-Id: I70b814f81bfd0c13e09a2641871da2d4ec5a308d Reviewed-on: https://chromium-review.googlesource.com/c/1470111Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59597}
-
Michael Achenbach authored
The builders were originally allowed higher cycle time, as fast responses weren't necessary. They should, however, never fail due to expiring tasks. This has happened more often lately, hence they should run with normal CI priority. The impact is very small as they run very infrequently. NOTRY=true Bug: chromium:930255 Change-Id: Id9d4eb70322862cf98b9ae4e313e5c0b002b5bd1 Reviewed-on: https://chromium-review.googlesource.com/c/1466303 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Sergiy Belozorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#59596}
-
Dan Elphick authored
If enable_omit_source_positions is true (defaults to false), source position tables are not generated when compiling bytecode. They will then be regenerated when exceptions are thrown. This adds a new function Compiler::CollectSourcePositions which given a SharedFunctionInfo with bytecode but no source position table re-parses and regenerates the bytecode but this time with source positions collection enabled. Note this will reparse all inner functions that have previously been compiled since the preparse data is no longer available. With the flag enabled there still 18 test failures mostly related to debugging. v8: 8510 Change-Id: I46dff9818d8a89c901ba8ae8df94dcaca83aa658 Reviewed-on: https://chromium-review.googlesource.com/c/1385165 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59595}
-
Yang Guo authored
R=leszeks@chromium.org Change-Id: Ib66b36884be7dd1283eb0375cfaf94a5b503f162 Reviewed-on: https://chromium-review.googlesource.com/c/1470110Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#59594}
-
Georg Neis authored
Change-Id: I616841c626fc95a6015014e308cbd653e95ede19 Reviewed-on: https://chromium-review.googlesource.com/c/1472671Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59593}
-
Georg Neis authored
... such that the feedback maps can evenentually be processed in the serialization phase. Bug: v8:7790 Change-Id: Ic033e88646a1b161710b1ca2028ef10f49d23cfd Reviewed-on: https://chromium-review.googlesource.com/c/1472293Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59592}
-