- 29 Jul, 2019 10 commits
-
-
Thibaud Michaud authored
Prefer using the wasm engine's allocator, as the isolate may not be available during asynchronous compilation. Bug: v8:9554 Change-Id: Iee3777efb62d18de6b2a64fa7a71d4ef4c6b3a92 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1722559 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62955}
-
Michael Starzinger authored
R=clemensh@chromium.org BUG=v8:9396 Change-Id: Ic1c49aed8110b982ca793ba5ee94d5135619c2fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1722567Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62954}
-
Michael Starzinger authored
This makes function objects constructed via the {WebAssembly.Function} constructor callable directly from JavaScript (not just from within WebAssembly modules). Semantics are as if the function performed the transition JS-to-Wasm and then Wasm-to-JS in sequence. R=clemensh@chromium.org TEST=mjsunit/wasm/type-reflection BUG=v8:7742 Change-Id: Ic7dcf36ccfda1b473f2541e49419f4d2ee38bc2c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1720809 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#62953}
-
Clemens Hammacher authored
The preprocessor of MSVC works differently for empty __VA_ARGS__. Another hack is needed to make this compile in both MSVC and clang. R=tebbi@chromium.org Bug: v8:9555 Change-Id: Ie8f2e1ed302730419dae95e49ab0cca35a4a8131 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1720669Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#62952}
-
Georg Neis authored
Change-Id: I7dbc632ea3eff419d6670519f7005382e2cadce4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1720815 Auto-Submit: Georg Neis <neis@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62951}
-
Darius Mercadier authored
Bug: v8:9329 Change-Id: Id92ab58179a5b5765560f22beefef842055d7e28 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1715461 Commit-Queue: Darius Mercadier <dmercadier@google.com> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#62950}
-
Thibaud Michaud authored
In export wrapper compilation, the isolate was used to get enabled features. This prevents asynchronous compilation, so this is replaced with an enabled_features argument passed from the main thread. R=mstarzinger@chromium.org Bug: v8:9554 Change-Id: Iab8a090841170dc235273dda58997cde716ee13f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1722554Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#62949}
-
Jakob Gruber authored
Prior to this CL, the regexp fast path check is stricter than it needs to be. For example, adding any arbitrary property on the regexp prototype would move the execution of all regexp builtins in the same context onto the slow path. This actually happens in the real world: popular web frameworks commonly monkey-patch builtin prototypes to add functionality. The intent of this CL is to widen the fast path for regexp builtins s.t. modifications of the prototype that do not conflict with our requirements stay on the fast path. This is done by extending the current fast path check with an additional step. If checking the prototype map identity or relevant prototype property constness fails, we now compare the actual value of all relevant properties against the expected value. If these match, the prototype can be considered fast. The new step as described in the previous paragraph is part of the permissive fast path check (BranchIfFastRegExp_Permissive). The strict variant (BranchIfFastRegExp_Strict) is also still required by a few spots. We should refactor these to also allow the permissive check in follow-up work. Bug: v8:5577,chromium:977382 Change-Id: I69b2244e68ccfbd00edf17fc326aa4b5f5d089fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1706056 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#62948}
-
Michael Achenbach authored
This enables the recipe to set FORCE_MAC_TOOLCHAIN and decide if hermetic or system xcode is used. TBR=tmrts@chromium.org Bug: chromium:986701 Change-Id: I2c1ba75d5d62e493bd9dc7a5ec5f7e40465d8f98 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1722557Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#62947}
-
Thibaud Michaud authored
In export wrappers generated code, load the undefined value from the wasm instance rather than from the isolate. With asynchronous compilation, the isolate may not be available. R=mstarzinger@chromium.org Bug: v8:9554 Change-Id: Ic448bda82c2125fc9c9f8715bce26870308715d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1722556Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#62946}
-
- 27 Jul, 2019 1 commit
-
-
Ng Zhi An authored
Bug: v8:8460 Change-Id: Ia9ffb214738fca17fc36a4323d5e6c4d82a36f2a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1719036 Auto-Submit: Zhi An Ng <zhin@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#62945}
-
- 26 Jul, 2019 15 commits
-
-
Ng Zhi An authored
Bug: v8:9557 Change-Id: Iff790b82a362b3919a63485011745dcb7d2061c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1721203 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#62944}
-
Andrew Comminos authored
Implements ProfilerCodeObserver, a class to track the generation and movement of code on the heap for the lifetime of each CpuProfiler. When sampling is inactive, logged code is committed directly to the CodeMap. During profiling, ProfilerCodeObserver redirects these events onto the profiling thread for later dispatch. Bug: v8:9151 Change-Id: Ib5b152446d2a3838e1b00a80253fc4fbd2f6e8c3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1604143Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Andrew Comminos <acomminos@fb.com> Cr-Commit-Position: refs/heads/master@{#62943}
-
Seth Brenith authored
This change updates the RegExp bytecode generator to emit checks for larger eats_at_least values when they are available, so we can fail to match earlier in some cases. Bug: v8:9305 Change-Id: I96740531e142ff8dced41c49b774845b07df6ae6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1709768 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#62942}
-
Santiago Aboy Solanes authored
In some cases, we end up with a ChangeCompressedPointerToTaggedPointer next to a CheckedTaggedToTaggedPointer. In this case, the checked one is not needed since we are sure we are dealing with a pointer (and not a Smi). This doesn't get resolved in the simplfied lowering phase due to having a Phi[Tagged] in the middle of those two nodes. Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:7703 Change-Id: Ia4a44b36423c2242d5c663f9b93b09924190fe8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1709426 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#62941}
-
Santiago Aboy Solanes authored
If we are sure that we are dealing with a Compressed value, we can check for sminess in 32 bits. Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:7703 Change-Id: Icf77d8bcd1decfd392b4887241a9b559f11814c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1718146Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#62940}
-
Georg Schmid authored
This CL removes the built-in reference type in favor of a Torque-implemented generic struct, i.e., internal::Reference<T>. It also adds various infrastructure for getting and creating new generic struct instances, as well as matching against them. R=tebbi@chromium.org Change-Id: I1e3d6afe355a0603fa9c3ad789c6b8a97d1b3c26 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1718148 Commit-Queue: Georg Schmid <gsps@google.com> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62939}
-
Santiago Aboy Solanes authored
The propagation of tenuring from outer allocations to inner allocations was blocked in pointer compression since we now had Compress nodes between AllocateRaw and StoreField. This was causing issues in GC. It popped up in the Octane2.1/Splay benchmark, where we had big regressions. This CL updates the memory optimizer so that it can use the Compress nodes as bridges and can perform the optimization successfully. Note that the Compress nodes only appear on the value input of the StoreField. Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:7703, v8:9519 Change-Id: I6b0cc67955c6cc696e8c426b85c87a1794098ed0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1714650Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#62938}
-
Maya Lekova authored
This reverts commit a0728e86. Reason for revert: Times out on Windows & debug builds - https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20nosnap%20-%20shared/34484 Original change's description: > [d8] Remove maximum workers limitation > > This CL refactors the lifetime management of the v8::Worker C++ object > and in the process lifts the 100 maximum worker limitation. To do this, > it uses a Managed<v8::Worker> heap object and attaches the managed to > the API worker object. > > R=mstarzinger@chromium.org > BUG=v8:9524 > > Change-Id: I279b7aeb6645a87f9108ee6f572105739721cef4 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1715453 > Commit-Queue: Ben Titzer <titzer@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62932} TBR=mstarzinger@chromium.org,titzer@chromium.org,clemensh@chromium.org Change-Id: I3a27937cba13b5413390f49268a107c184515153 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9524 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1720590Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#62937}
-
Dan Elphick authored
Use the position of commas in arrow expressions to mark the initializer position of any parameters that might have been set in the preceding parameter. To enable this, this makes variable_list_ in ExpressionParsingScope a ScopedList<pair<VariableProxy*, int>> and changes ScopedList::at to return references so its elements can be modified in place. This fixes a source of bytecode mismatches when collecting source positions lazily and is a second attempt at fixing this after https://chromium-review.googlesource.com/c/v8/v8/+/1683267 introduced problems due to destructuring. Bug: chromium:980422, chromium:981701, v8:8510 Change-Id: I948f89f34fb75d7463a13183e363f7f96ad09d13 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1710671Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#62936}
-
Ulan Degenbaev authored
This reverts commit 1320c917. Reason for revert: The code in SFI is also flushed by the serializer with FunctionCodeHandling::kClear, so this fix does not work with --no_flush_bytecode. Original change's description: > [snapshot] Fix clearing of feedback vector in serializer (follow-up 2) > > Bug: v8:7857 > Change-Id: I3940ae2830adb6c572e079551b7bba7d84462afd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1715444 > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62881} TBR=ulan@chromium.org,rmcilroy@chromium.org,yangguo@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7857 Change-Id: If85fe29b2cdf6523ee53895628da38d942d45c2b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1719190Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#62935}
-
Mythri A authored
This is short-term fix for flaky failures on GC fuzzer. The closures g1 and g2 have the same SFI and pending optimzed table treats them as a single entry. This cl, adds %PrepareFunctionForOptimize after one of them is optimized. Bug: v8:9556 Change-Id: I1fd72da1baa5de2f7650e080f9b6d04b69dd6a16 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1719188Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#62934}
-
David Carlier authored
using file descriptor's free approach instead. Change-Id: I9baa3d471b4ed6f624985a5b6325648ef7875596 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1710665Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#62933}
-
Ben L. Titzer authored
This CL refactors the lifetime management of the v8::Worker C++ object and in the process lifts the 100 maximum worker limitation. To do this, it uses a Managed<v8::Worker> heap object and attaches the managed to the API worker object. R=mstarzinger@chromium.org BUG=v8:9524 Change-Id: I279b7aeb6645a87f9108ee6f572105739721cef4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1715453 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62932}
-
Michael Achenbach authored
TBR=tmrts@chromium.org Bug: chromium:986701 Change-Id: I86cf6c73dfdb4c76eaad530bd22da385a834655b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1714653Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#62931}
-
Georg Neis authored
... mostly by turning them into pointer arguments. After this CL, all remaining non-const reference arguments in the compiler directory are in the backend. Bug: v8:9429 Change-Id: I6a546da0fe93179e1a0b12296632591cbf209808 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1719185Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#62930}
-
- 25 Jul, 2019 14 commits
-
-
Ng Zhi An authored
Bug: v8:8460 Change-Id: I70bdd71909fd103f3cc537d3184d2f7225cf8cfa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1719034 Auto-Submit: Zhi An Ng <zhin@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#62929}
-
Ng Zhi An authored
Bug: v8:8460 Change-Id: Ic92efbcb7c64184c237d0fb00c3c7aa75323a3e9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1717662 Auto-Submit: Zhi An Ng <zhin@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#62928}
-
Zhi An Ng authored
This reverts commit 801930f5. Reason for revert: blink layout tests failure https://bugs.chromium.org/p/v8/issues/detail?id=9554 Original change's description: > Reland "[wasm] Compile JS to WASM wrappers asynchronously" > > Original CL had an issue with builtins being accessed through the > isolate after the isolate died. See: > https://ci.chromium.org/p/v8/builders/try.triggered/v8_win64_rel_ng_triggered/b8907837534672203296 > > Initial upload is the original CL and the following patch sets will > attempt to fix it. > > Original CL: > > > [wasm] Compile JS to WASM wrappers asynchronously > > > > R=mstarzinger@chromium.org, ahaas@chromium.org > > > > Bug: v8:9231 > > Change-Id: I9e18073bbe25bf8c9c5f9ace102316e6209d0459 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1669699 > > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > > Reviewed-by: Andreas Haas <ahaas@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#62672} > > R=mstarzinger@chromium.org, ahaas@chromium.org > > Bug: v8:9231 > Change-Id: I1b01d5d2b9f728d6f6a90fe9b642f5ba3bf686eb > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708485 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62918} TBR=mstarzinger@chromium.org,thibaudm@chromium.org Change-Id: I3a6829692614c44bacb764ef02723e61a3d61763 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9231 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1719231Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#62927}
-
Zhi An Ng authored
This reverts commit 425fa3ae. Reason for revert: test failure https://bugs.chromium.org/p/v8/issues/detail?id=9554 reverting the root cause has merge conflicts due to changes in same file Original change's description: > [wasm] Simplify module creation > > This includes WasmEngine::NewNativeModule() and WasmModuleObject::New(). > The intent is to make the various ways of creating a module (sync, > async, deserialize, import) more similar. > > After this change, a NativeModule will always be created before a > WasmModuleObject. This will make it easier to look up a cached > NativeModule given its wire bytes. > > The following changes are made: > > * Use WasmCodeManager::EstimateNativeModuleCodeSize() to find the code > size estimate by default. A different code size estimate is only used in > tests. > * Change CompileJsToWasmWrappers() to allocate a new FixedArray instead of > assuming the array was created with the correct size. This simplifies > WasmModuleObject::New(), and matches what CompileToNativeModule() > does. > * Remove the WasmModuleObject::New() constructor that creates a > NativeModule. This case was only used in DeserializeNativeModule() and > in test code. > > Change-Id: I6bdfc425057f92de11abbbf702d052d40aa8267d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1717497 > Commit-Queue: Ben Smith <binji@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62925} TBR=binji@chromium.org,ahaas@chromium.org,clemensh@chromium.org Change-Id: I8dcad7ddcd4601f657b6263bf22009907284fce3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1719230Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#62926}
-
Ben Smith authored
This includes WasmEngine::NewNativeModule() and WasmModuleObject::New(). The intent is to make the various ways of creating a module (sync, async, deserialize, import) more similar. After this change, a NativeModule will always be created before a WasmModuleObject. This will make it easier to look up a cached NativeModule given its wire bytes. The following changes are made: * Use WasmCodeManager::EstimateNativeModuleCodeSize() to find the code size estimate by default. A different code size estimate is only used in tests. * Change CompileJsToWasmWrappers() to allocate a new FixedArray instead of assuming the array was created with the correct size. This simplifies WasmModuleObject::New(), and matches what CompileToNativeModule() does. * Remove the WasmModuleObject::New() constructor that creates a NativeModule. This case was only used in DeserializeNativeModule() and in test code. Change-Id: I6bdfc425057f92de11abbbf702d052d40aa8267d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1717497 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#62925}
-
Ng Zhi An authored
Bug: v8:8460 Change-Id: I913406a4079c766432a56d059a6cb9861fd469bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1703993Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#62924}
-
Bill Ticehurst authored
Bug: v8:9118 Change-Id: I2271a158226a12f69a7efdfcb6c4faccccf98d15 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1715090 Commit-Queue: Bill Ticehurst <billti@microsoft.com> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#62923}
-
Ng Zhi An authored
Bug: v8:8460 Change-Id: Ia9b2360c414abedfd9690e97b555c4e9b19fa1b4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708451Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#62922}
-
Leszek Swirski authored
Data in the viewer has to be in the same order as the labels. Change-Id: I2e64fb30ebc0e3585c7b9d364553cb6a5ec1f3cb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1718159 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#62921}
-
Georg Neis authored
- Move SerializePrototype out of DependOnStablePrototypes into ComputePropertyAccessInfo. - Brokerize JSNativeContextSpecialization::InferHasInPrototypeChain. - Brokerize JSNativeContextSpecialization::ReduceJSOrdinaryHasInstance (modulo the call to ReduceJSInstanceOf). - Brokerize JSNativeContextSpecialization::ReduceJSHasInPrototypeChain. - Serialize for JSCallReducer::ReduceObjectPrototypeIsPrototypeOf. - Serialize for JSNativeContextSpecialization::ReduceJSInstanceOf. This is still incomplete. Bug: v8:7790 Change-Id: Ic56eab5ddd8d725a13d2980e5b55db53ae82e822 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1709408 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#62920}
-
Seth Brenith authored
The motivating example is JetStream 2's UniPoker test, which tests whether a sorted string of Unicode playing cards contains a five-card straight using a regular expression. In the top-level generated loop for this RegExp, we see this loop exit condition: 00000350000C2067 27 83fffe cmpl rdi,0xfe 00000350000C206A 2a 0f8da8e40000 jge 00000350000D0518 <+0xe4d8> Meaning if the current position is pointing at the very last (16-bit) character, then we exit the loop. Otherwise we go on and try to find various matches starting at the current position. However, we can see in the original expression that any possible match is at least 10 characters (5 astral-plane Unicode values), so we're wasting a lot of time attempting to find matches in cases where we're too close to the end of the string for any match to succeed. This example might be a bit contrived, but I expect that an improvement in this bounds check would help a larger family of regular expressions, where the minimum match length is large relative to the string being matched and we don't meet the other necessary criteria for fast Boyer- Moore lookahead. To get the desired bounds check in this case, this patch does the following: 1. Compute accurate EatsAtLeast values for every node during the analysis phase. This could end up doing more work than the current implementation, but analysis already has to touch every node, so it seems like a cache-friendly time to compute these values. In some cases, this might be less total work than the current implementation, because the current implementation might recompute the same node multiple times. 2. When emitting a quick check, use the EatsAtLeast value from the predecessor ChoiceNode for the bounds check. This improves the UniPoker score on my machine by about 4%, because it cuts the time spent checking for straights roughly in half, and checking for straights originally accounted for about 8% of the total time. Bug: v8:9305 Change-Id: I110b190c2578f73b2263259d5aa5750e921b01be Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1702125 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#62919}
-
Thibaud Michaud authored
Original CL had an issue with builtins being accessed through the isolate after the isolate died. See: https://ci.chromium.org/p/v8/builders/try.triggered/v8_win64_rel_ng_triggered/b8907837534672203296 Initial upload is the original CL and the following patch sets will attempt to fix it. Original CL: > [wasm] Compile JS to WASM wrappers asynchronously > > R=mstarzinger@chromium.org, ahaas@chromium.org > > Bug: v8:9231 > Change-Id: I9e18073bbe25bf8c9c5f9ace102316e6209d0459 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1669699 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62672} R=mstarzinger@chromium.org, ahaas@chromium.org Bug: v8:9231 Change-Id: I1b01d5d2b9f728d6f6a90fe9b642f5ba3bf686eb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708485 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62918}
-
Santiago Aboy Solanes authored
Avoids unnecessary compression and decompression nodes since we are going to be able to check for smis without needing to decompress and re-compress. It was doing a CheckedInt32ToTaggedSigned -> ChangeTaggedSignedToCompressedSigned combo, where we could just do CheckedInt32ToCompressedSigned. Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:7703 Change-Id: I0bbbbb5bd4744c49840c84b2fcb775fe6b603de0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1714878 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#62917}
-
Tobias Tebbi authored
Bug: v8:7793 Change-Id: I36daa0ef26cc7c274c64cfdba7e3a196677a7bc4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1718156Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62916}
-