- 30 Apr, 2019 4 commits
-
-
Georg Neis authored
Instead provide an abstraction that makes it hard to forget dealing with unreliable maps. This also fixes a deopt loop in Function.prototype.bind and one in Array.prototype.reduce. Bug: v8:9137 Change-Id: If6a51182c8693a62e9fb6d302cec19b4d48e25cb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1578501 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61106}
-
Frederik Gossen authored
Ignore the error type in {assertThrows} only if it was not passed as an argument. If users do not care about the error type they can user the generic type {Error}. Before this change, an undefined error type would simply be ignored. A simple typo could therefore disable the error type assertion without being recognized. Change-Id: I9becfd0bf14dcaa511854e65ff94f94481cc79b0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585855 Commit-Queue: Frederik Gossen <frgossen@google.com> Reviewed-by: Mathias Bynens <mathias@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61105}
-
Mike Stanton authored
Failure addressed by not exposing the new test to the jitless environment. (jgruber@ on TBR). New enum RelocInfo::COMPRESSED_EMBEDDED_OBJECT created to support compressed pointers in generated code. Enum name EMBEDDED_OBJECT changed to FULL_EMBEDDED_OBJECT. RelocInfo::[set_]target_object() abstract away the difference between FULL_EMBEDDED_OBJECT and COMPRESSED_EMBEDDED_OBJECT. Compressed embedded objects can only be created at this time on x64 with pointer compression turned on. Arm64 constant pools don't support compressed objects at this time. NOPRESUBMIT=true Bug: v8:7703 TBR: jgruber@chromium.org Change-Id: Ifff53b041bab09b4b8c3e16085e5df4aa2b99f4f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588461Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#61104}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/c185a34..4087d63 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/d235eb2..5b26b37 Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/6837707..e49aed3 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/396602c..210f1dc TBR=machenbach@chromium.org,hablich@chromium.org,sergiyb@chromium.org Change-Id: I7844de2802808ecbcc98c5ca80ebe8b0613b4395 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588730Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#61103}
-
- 29 Apr, 2019 36 commits
-
-
Milad Farazmand authored
Port 4b0f9c85 Original Commit Message: Our {Vector} template provides both {start} and {begin} methods. They return exactly the same value. Since the {begin} method is needed for iteration, and is also what standard containers provide, this CL switches all uses of the {start} method to use {begin} instead. Patchset 1 was auto-generated by using this clang AST matcher: callExpr( callee( cxxMethodDecl( hasName("start"), ofClass(hasName("v8::internal::Vector"))) ), argumentCountIs(0)) Patchset 2 was created by running clang-format. Patchset 3 then removes the now unused {Vector::start} method. R=clemensh@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I119532691af31a3db1107c47de8b6f0c84697b5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588226Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#61102}
-
Jakob Kummerow authored
Similar issue as crbug.com/933103, so the fix follows the same pattern too. No regression test, because it will OOM anyway. Bug: chromium:957015 Change-Id: Ic5b67d84aa1c44609e6c96485974af9ecab2ed0e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585854 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#61101}
-
Benedikt Meurer authored
This adds a new %_CopyDataProperties intrinsic, that reuses most of the existing machinery that we already have in place for Object.assign() and computed property names in object literals. This speeds up the general case for object spread (where the spread is not the first item in an object literal) and brings it on par with Object.assign() at least - in most cases it's significantly faster than Object.assign(). In the test case [1] referenced from the bug, the performance goes from objectSpreadLast: 3624 ms. objectAssignLast: 1938 ms. to objectSpreadLast: 646 ms. objectAssignLast: 1944 ms. which corresponds to a **5-6x performance boost**, making object spread faster than Object.assign() in general. Drive-by-fix: This refactors the Object.assign() fast-path in a way that it can be reused appropriately for object spread, and adds another new builtin SetDataProperties, which does the core of the Object.assign() work. We can teach TurboFan to inline Object.assign() based on the new SetDataProperties builtin at some later point to further optimize Object.assign(). [1]: https://gist.github.com/bmeurer/0dae4a6b0e23f43d5a22d7c91476b6c0 Bug: v8:9167 Change-Id: I57bea7a8781c4a1e8ff3d394873c3cd4c5d73834 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587376Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61100}
-
Suraj Sharma authored
Converted JSGlobalObject, JSIteratorResult, JSLocale, JSDateTimeFormat, JSListFormat, JSNumberFormat, JSPluralRules, JSRelativeTimeFormat, JSSegmenter, JSAsyncFromSyncIterator to torque. Bug: v8:8952 Change-Id: Id912197054727815b481b2c683b93473bfcbd0c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1574491Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Suraj Sharma <surshar@microsoft.com> Cr-Commit-Position: refs/heads/master@{#61099}
-
Maciej Goszczycki authored
It was once widely used throughout v8 but now there is no need for it anymore. Bug: v8:9183 Change-Id: Id766987d468383cf459414eb5edfdee71b83a60b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585839 Commit-Queue: Maciej Goszczycki <goszczycki@google.com> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#61098}
-
Michael Lippautz authored
Change-Id: I55e8e42b88c8df1f75ff05f22b39d69e9dc586ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588457 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#61097}
-
Maciej Goszczycki authored
Switch all uses of NewCode and TryNewCode to CodeBuilder and remove these methods. NewCode and TryNewCode use a large number of default parameters, which makes it difficult to use and add any new ones. Large chunks of code were also duplicated across TryNewCode and NewCode. The previous CL (https://chromium-review.googlesource.com/c/v8/v8/+/1585736) added a new CodeBuilder class which allows much simpler building of Code objects. Bug: v8:9183 Change-Id: I9f6884f35a3284cbd40746376f0f27e36f9051b5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585737 Commit-Queue: Maciej Goszczycki <goszczycki@google.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#61096}
-
Sergiy Belozorov authored
This is needed to allow deriving timeout and near_timeout runnables on the recipe side and drop corresponding fields in the output. We also remove some unused code that was removed in previous refactoring CLs. R=tmrts@chromium.org No-Try: true No-Tree-Checks: true Bug: chromium:841700 Change-Id: Ib7cec9baceff994fb9b32be09ba4a4079ebff2c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588417 Commit-Queue: Sergiy Belozorov <sergiyb@chromium.org> Reviewed-by: Tamer Tas <tmrts@chromium.org> Cr-Commit-Position: refs/heads/master@{#61095}
-
Igor Sheludko authored
... to a separate file. Bug: v8:9183 Change-Id: I87f98ed0fec84eb32403c3447bec7be50a79261d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588095Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#61094}
-
Igor Sheludko authored
... where the other set of similar macros live. Bug: v8:9183 Change-Id: I114237a90c45205417b6d3fb0d939542c5c4fc76 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588096Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#61093}
-
Clemens Hammacher authored
The {Vector} class does not use it any more. External uses should be converted to {size_t} instead of {int}. This CL removes the function from vector.h and updates all users to either use {size_t}, or cast to {int} explicitly. In tests, no further checks are needed if the string is a constant. R=mstarzinger@chromium.org Bug: v8:9183 Change-Id: I60f99302504c74d8a7c79b147ca01d8ba61b6879 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587393Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61092}
-
Igor Sheludko authored
1) HAS_[STRONG|WEAK]_HEAP_OBJECT_TAG macros are to be used for checking raw representations of tagged values (Address or Tagged_t) 2) HasWeakHeapObjectTag(Object) function is for overzealous checking of Object tags Bug: v8:9183 Tbr: jgruber@chromium.org Change-Id: Iaa456dbcb21f43a8df0d9ca706c0fc3b2ede075d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588455 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#61091}
-
Santiago Aboy Solanes authored
See https://cs.chromium.org/chromium/src/v8/src/code-stub-assembler.h?l=244 for the implementation. Change-Id: I848e86aa69aaa9ceef9fff8b62ad947b0f67b781 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588235 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Auto-Submit: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61090}
-
Clemens Hammacher authored
This makes the gc-stress bots set the '--stress-wasm-code-gc' flag. Note that this also implicitly enables wasm code gc on these bots. R=mstarzinger@chromium.org, machenbach@chromium.org Cq-Include-Trybots: luci.v8.try:v8_linux_gc_stress_dbg Cq-Include-Trybots: luci.v8.try:v8_mac64_gc_stress_dbg Bug: v8:8217 Change-Id: Idc4fb996f50632d5621200e138f3ddc572ed9b05 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585721 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#61089}
-
Georg Neis authored
Also const-ify and refactor a few things in BytecodeAnalysis. Change-Id: Ibd261bb67d8c035b1f818e9114d09db08737000d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587384 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61088}
-
Ross McIlroy authored
This reverts commit b5da9fcb. Reason for revert: Breaks pointer compression bot: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20pointer%20compression/3098 Original change's description: > [ptr-compr] New RelocInfo for compressed pointers. > > New enum RelocInfo::COMPRESSED_EMBEDDED_OBJECT created to support > compressed pointers in generated code. Enum name EMBEDDED_OBJECT > changed to FULL_EMBEDDED_OBJECT. > > RelocInfo::[set_]target_object() abstract away the difference between > FULL_EMBEDDED_OBJECT and COMPRESSED_EMBEDDED_OBJECT. > > Compressed embedded objects can only be created at this time on > x64 with pointer compression turned on. Arm64 constant pools don't > support compressed objects at this time. > > Bug: v8:7703 > Change-Id: I03bfd84effa33c65cf9bcefa5df680ab7eace9dd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547661 > Commit-Queue: Michael Stanton <mvstanton@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#61076} TBR=ulan@chromium.org,mvstanton@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,ishell@chromium.org Change-Id: I262b2b98315fa987c5a66b1050dc726563ccdb2d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7703 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1588135Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#61087}
-
Clemens Hammacher authored
The method is only called from module-compiler.cc, hence we can call it on {CompilationStateImpl} directly and do not need to expose it. R=mstarzinger@chromium.org CC=frgossen@google.com Change-Id: I72dcd7b109cfdb0b3fd78be635c482289c69dd9e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587389Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61086}
-
Ross McIlroy authored
BUG=v8:8801 Change-Id: Id5ef6219ba2dca2be0603dd0d45e7b27136836e9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587391Reviewed-by: Mythri Alle <mythria@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#61085}
-
Clemens Hammacher authored
{TurbofanWasmCompilationUnit} does not store any data except for a pointer back to the {WasmCompilationUnit}, and has a single method only. Thus remove it, and replace it by a static function. This saves one field per compilation unit. R=mstarzinger@chromium.org Change-Id: I2bcb9246c65e6971aa747488ea631886ca3bc037 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587388 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61084}
-
Clemens Hammacher authored
{InterpreterCompilationUnit} does not store any data except for a pointer back to the {WasmCompilationUnit}, and has a single method only. Thus remove it, and replace it by a static function. This saves one field per compilation unit. We can probably also remove {TurbofanWasmCompilationUnit} in a similar way, which I will do in a follow-up CL. R=mstarzinger@chromium.org Change-Id: I8fc2e18366757573499fd57f909ec8222c27be38 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587387 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61083}
-
Clemens Hammacher authored
This fixes an msan compile error after https://crrev.com/c/1587381. TBR=jkummerow@chromium.org No-Try: true No-Tree-Checks: true Bug: v8:9183 Change-Id: I50c5fc2ddb698a6441896ec393bce62eee7afdc9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587390Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61082}
-
Clemens Hammacher authored
Our {Vector} template provides both {start} and {begin} methods. They return exactly the same value. Since the {begin} method is needed for iteration, and is also what standard containers provide, this CL switches all uses of the {start} method to use {begin} instead. Patchset 1 was auto-generated by using this clang AST matcher: callExpr( callee( cxxMethodDecl( hasName("start"), ofClass(hasName("v8::internal::Vector"))) ), argumentCountIs(0)) Patchset 2 was created by running clang-format. Patchset 3 then removes the now unused {Vector::start} method. R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,yangguo@chromium.org,verwaest@chromium.org Bug: v8:9183 Change-Id: Id9f01c92870872556e2bb3f6d5667463b0e3e5c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587381Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61081}
-
Clemens Hammacher authored
{LiftoffCompilationUnit} does not store any data, and has a single method only. Thus remove it, and replace it by a static function. This saves one field per compilation unit. We can probably also remove {TurbofanWasmCompilationUnit} and {InterpreterCompilationUnit} in a similar way, which I will do in follow-up CLs. R=mstarzinger@chromium.org Change-Id: I5e1a7d4245fd8bce4862cc83c96f9dac8e0c635e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587386Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61080}
-
Maciej Goszczycki authored
CodeBuilder allows much simpler building of Code objects. The current approach uses a large number of default parameters, which makes it difficult to use and add any new ones. Large chunks of code are also duplicated across TryNewCode and NewCode. The follow up CL completely removes these methods. Bug: v8:9183 Change-Id: I6e988fd00bb89b871346100fe56dd01a9bd46073 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585736Reviewed-by: Dan Elphick <delphick@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Maciej Goszczycki <goszczycki@google.com> Cr-Commit-Position: refs/heads/master@{#61079}
-
Joey Gouly authored
This is a reland of 7a2651cb x18 is not allocatable nor callee-saved in v8, so stop comparing the before/after value in tests. Presumably the Nexus failure was due to printf on that platform clobbering x18. This can be reproduced locally by modifying `CorruptAllCallerSavedCPURegister` to also corrupt x18. CQ_INCLUDE_TRYBOTS=luci.v8.try:v8_android_arm64_n5x_rel_ng Original change's description: > [arm64] Cleanup TODO around handling of x18 > > Use `padreg` instead of x18 to maintain alignment in the CPURegList. > > Also clean up some comments and tidy up RequiredStackSizeForCallerSaved > and PushCallerSaved. > > Change-Id: I80a780e5649e69a1746c43f37c2d1d875120c7a0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1581609 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> > Cr-Commit-Position: refs/heads/master@{#60987} Change-Id: I7c023a4706a98bcb9aa5acd37016a6d01e3979a6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1583762Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> Cr-Commit-Position: refs/heads/master@{#61078}
-
Frederik Gossen authored
Allow for a third compilation strategy that compiles baseline code lazily but initiates top tier compilation immediately. The strategy aims at reducing startup time. Bug: v8:9003 Change-Id: Ifd2060b25386c5221a45f6038c3849afeb956e69 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1571620Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Frederik Gossen <frgossen@google.com> Cr-Commit-Position: refs/heads/master@{#61077}
-
Mike Stanton authored
New enum RelocInfo::COMPRESSED_EMBEDDED_OBJECT created to support compressed pointers in generated code. Enum name EMBEDDED_OBJECT changed to FULL_EMBEDDED_OBJECT. RelocInfo::[set_]target_object() abstract away the difference between FULL_EMBEDDED_OBJECT and COMPRESSED_EMBEDDED_OBJECT. Compressed embedded objects can only be created at this time on x64 with pointer compression turned on. Arm64 constant pools don't support compressed objects at this time. Bug: v8:7703 Change-Id: I03bfd84effa33c65cf9bcefa5df680ab7eace9dd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547661 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#61076}
-
Clemens Hammacher authored
This adds a flag to print a message on important GC events, like triggering a GC, reporting live code per isolate, and finally deleting dead code. This helps debugging issues with wasm code gc. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: I901199bc19b2a8718728a9e4918c30e295e0e92a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585842 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61075}
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I76f9f5dd8c4faef3e33dde96c7bb7f81448d8e79 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585848Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61074}
-
Clemens Hammacher authored
One fundamental assumption of the wasm code GC is that code becomes "potentially dead" at most once; if the ref counts drops to zero later, it should be freed for real. In the current implementation, it happens that code becomes potentially dead, then becomes dead for real (it's removed from the set of potentially dead code), and then we remove the last reference. At that point, we re-add the code to the potentially dead code, considering it for garbage collection again. This can lead to an endless loop. This CL fixes that by remembering which code was already detected as dead, and does not consider this code for another GC. This requires freeing code via the {WasmEngine} such that the set of dead code can be cleaned up. R=mstarzinger@chromium.org Bug: v8:8217 Change-Id: If6a95a7918db2ad82edfad5447c536593243db7d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585845Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61073}
-
Georg Neis authored
- Rename (and negate) "stack_check" to the more descriptive "skip_first_stack_check". - Pass call frequency by value rather than mutable(!) reference. - Embed some things directly into BytecodeGraphBuilder, instead of stack-allocating them and then storing a pointer. - Don't pass things to OsrIteratorState that it can already access via the graph builder parameter. Change-Id: Id852df1ce521a6eefb6047cf76a0882a4c6e95b3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587375 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61072}
-
Dan Elphick authored
Remove Isolate versions of Value::ToNumber/ToString/ToObject/ToInteger/ToInt32 and Context versions of ToBoolean and BooleanValue (which could never throw anyway). Bug: v8:7279, v8:9183 Change-Id: Ib144f8894a2b37c44216ba2d0cb298e8f0c72a3e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585735Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#61071}
-
Sigurd Schneider authored
This CL removes the flag '--turbo-preprocess-ranges' and enables it by default. If FLAG_turbo_control_flow_aware_allocation is set, --turbo-preprocess-ranges is disabled and control flow aware allocation is enabled instead. Bug: v8:9088 Change-Id: I81d56f15efc8f765e317aa828d27f415f8b7fd40 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585725 Auto-Submit: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#61070}
-
Simon Zünd authored
This CL removes a build script that was used to create ANTLR visitors for Torque parsing. As Torque rolls its own parser now, this script can safely be removed. R=tebbi@chromium.org Bug: v8:9183 Change-Id: Id56ee590d79e5c849ac111e8825cd3733cd55d90 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587379Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#61069}
-
Georg Neis authored
All we really need to expose is a single function that builds the graph. This change drastically simplifies the header file. Change-Id: If185687b8220bdd253f967be9ab2ea3b088e5423 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585856Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#61068}
-
Sigurd Schneider authored
This CL fixes an issue where a comment was not highlighted correctly after a class definition. Bug: v8:7793 Notry: true Change-Id: I378a1373c8f4a6c8d48c4bb2ee4a4c3b39b2341f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1585733Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Auto-Submit: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61067}
-