- 12 Feb, 2021 1 commit
-
-
Leszek Swirski authored
Sparkplug is a new baseline, non-optimising second-tier compiler, designed to fit in the compiler trade-off space between Ignition and TurboProp/TurboFan. Design doc: https://docs.google.com/document/d/13c-xXmFOMcpUQNqo66XWQt3u46TsBjXrHrh4c045l-A/edit?usp=sharing Bug: v8:11420 Change-Id: Ideb7270db3d6548eedd8337a3f596eb6f8fea6b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2667514 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#72686}
-
- 02 Dec, 2020 1 commit
-
-
Ross McIlroy authored
Unifies various operators for dynamic map checks with the naming scheme of DynamicCheckMaps (to be similar to CheckMaps. BUG=v8:10582 Change-Id: I8ac842f55fe31cdc7b84968d077017a86ddf4442 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567952 Auto-Submit: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#71559}
-
- 01 Dec, 2020 1 commit
-
-
Ross McIlroy authored
In order to reduce the codegen size of dynamic map checks, add the ability to have an eager with resume deopt point, which can call a given builitin to perform a more detailed check than can be done in codegen, and then either deoptimizes itself (as if the calling code had performed an eager deopt) or resumes execution in the calling code after the check. In addition, support for adding extra arguments to a deoptimization continuation is added to enable us to pass the necessary arguments to the DynamicMapChecks builtin. Finally, a trampoline is added to the DynamicMapChecks which saves the registers that might be clobbered by that builtin, to avoid having to save them in the generated code. This trampoline also performs the deoptimization based on the result of the DynamicMapChecks builtin. In order to ensure both the trampoline and DynamicMapChecks builtin have the same call interface, and to limit the number of registers that need saving in the trampoline, the DynamicMapChecks builtin is moved to be a CSA builtin with a custom CallInterfaceDescriptor, that calls an exported Torque macro that implements the actual functionality. All told, this changes the codegen for a monomorphic dynamic map check from: movl rbx,<expected_map> cmpl [<object>-0x1],rbx jnz <deferred_call> resume_point: ... deferred_call: <spill registers> movl rax,<slot> movq rbx,<object> movq rcx,<handler> movq r10,<DynamicMapChecks> call r10 cmpq rax,0x0 jz <restore_regs> cmpq rax,0x1 jz <deopt_point_1> cmpq rax,0x2 jz <deopt_point_2> int3l restore_regs: <restore_regs> jmp <resume_point> ... deopt_point_1: call Deoptimization_Eager deopt_point_2: call Deoptimization_Bailout To: movl rax,<slot> movl rcx,<expected_map> movq rdx,<handler> cmpl [<object>-0x1],rcx jnz <deopt_point> resume_point: ... deopt_point: call DynamicMapChecksTrampoline jmp <resume_point> BUG=v8:10582 Change-Id: Ica4927b9acc963b9b73dc62d9379a7815335650f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2560197 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#71545}
-
- 15 Oct, 2020 1 commit
-
-
Victor Gomes authored
- Shortcut return when argc < param_count - Simplify return code due to PopAndReturn invariant Change-Id: Ie41d559cdbe0ba2cc4fdbfbbb622b0aec8429f03 Bug: v8:10201 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2474777 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/master@{#70541}
-
- 30 Sep, 2020 1 commit
-
-
Victor Gomes authored
Change-Id: I33294dc5b93d5842a3a51779bfec30f20bf4f23f Bug: v8:10201 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2436345Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/master@{#70220}
-
- 27 Aug, 2020 1 commit
-
-
evih authored
Use a Foreign pointer for the signature in the generic JS-to-Wasm wrapper. Bug: v8:10701 Change-Id: I30d5894e8b8a48c258b7a6e003813c8403c1075e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2369178Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Eva Herencsárová <evih@google.com> Cr-Commit-Position: refs/heads/master@{#69580}
-
- 22 Oct, 2019 1 commit
-
-
Jakob Gruber authored
The natives blob was deprecated in V8 7.8. This CL removes all related functionality, including: - Build system support, i.e.: generation of natives_blob.bin and the v8_extra_library_files gn flag. - Related scripts (js2c.py, concatenate-files.py). - Related API functions (SetNativesDataBlob, InitializeExternalStartupData). - Natives bootstrapping logic. - The InternalArray type (previously exposed through natives). - Other natives-exposed builtins. - Inlining of these builtins. - The dedicated 'uncached external one byte string' type. Step 1 landed in https://crrev.com/c/1824944. Step 2 landed in https://crrev.com/c/1835536. Step 3 (this CL) removes these all functionality related to natives support in V8. Bug: v8:7624 Change-Id: Ice6c2662781efe8417231805276476d32bc5a625 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1844771 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Tamer Tas <tmrts@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#64446}
-
- 23 May, 2019 1 commit
-
-
Yang Guo authored
R=szuend@chromium.org Change-Id: I7d8eb6f26dd0cecd749a66cd2b240ff27cbba985 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621927 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#61767}
-
- 21 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 TBR=bmeurer@chromium.org,neis@chromium.org NOPRESUBMIT=true Change-Id: Ia1e49d1aac09c4ff9e05d58fab9d08dd71198878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621931Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61682}
-
- 14 Feb, 2019 1 commit
-
-
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}
-
- 19 Dec, 2018 3 commits
-
-
Mythri authored
Don't allocate feedback vectors and feedback metadata in lite mode. Also updates to skip tests that require feedback vectors. This is a reland of https://chromium-review.googlesource.com/c/v8/v8/+/1384087 after skipping the failing tests. Bug: v8:8394 Change-Id: I7766533b85a144e62996ceed8d542cdc534feeb5 Reviewed-on: https://chromium-review.googlesource.com/c/1384307Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#58363}
-
Clemens Hammacher authored
This reverts commit 62e86b88. Reason for revert: Fails on arm sim lite debug: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm%20-%20sim%20-%20lite%20-%20debug/1075 Original change's description: > Do not allocate feedback vectors and feedback metadata in lite mode > > Don't allocate feedback vectors and feedback metadata in lite mode. > Also updates to skip tests that require feedback vectors. > > Bug: v8:8394 > Change-Id: I22c64a32c44bb8f25fb09003d6e9fc5a04e84f8a > Reviewed-on: https://chromium-review.googlesource.com/c/1378173 > Commit-Queue: Mythri Alle <mythria@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58351} TBR=rmcilroy@chromium.org,yangguo@chromium.org,mlippautz@chromium.org,mythria@chromium.org Change-Id: I88fd37ea4e21aa2cc81eceb87ddb35c23224beae No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8394 Reviewed-on: https://chromium-review.googlesource.com/c/1384087Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58355}
-
Mythri authored
Don't allocate feedback vectors and feedback metadata in lite mode. Also updates to skip tests that require feedback vectors. Bug: v8:8394 Change-Id: I22c64a32c44bb8f25fb09003d6e9fc5a04e84f8a Reviewed-on: https://chromium-review.googlesource.com/c/1378173 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58351}
-
- 12 Dec, 2018 1 commit
-
-
peterwmwong authored
InternalPackedArray now only has one constructor variant that expects no arguments (Chrome's only usage of InternalPackedArray). As such, these TFC builtins are no longer used and were removed: - InternalArrayNoArgumentConstructor_Holey - InternalArraySingleArgumentConstructor_Packed - InternalArraySingleArgumentConstructor_Holey On x64.release, this reduces builtins size by ~1.2KB. Bug: v8:7624 Change-Id: I7316608dc02b1e09e9e414ee1aeb1fb08410c6f6 Reviewed-on: https://chromium-review.googlesource.com/c/1372772 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58193}
-
- 10 Dec, 2018 1 commit
-
-
Andreas Haas authored
When the --debug-code flag is turned on, we create code now which checks if the thread-in-wasm flag has the expected value. If not, we abort execution. R=clemensh@chromium.org Bug: v8:5277, v8:8554 Change-Id: I74c4e6a60b874b48f13ded9b5cee81f602e4c9fd Reviewed-on: https://chromium-review.googlesource.com/c/1370025Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#58127}
-
- 06 Nov, 2018 1 commit
-
-
Michael Starzinger authored
R=herhut@chromium.org Change-Id: I7e81d233211ba29d9c48accda63a365e31f51617 Reviewed-on: https://chromium-review.googlesource.com/c/1319582Reviewed-by: Stephan Herhut <herhut@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57278}
-
- 24 Aug, 2018 1 commit
-
-
Florian Sattler authored
This reduces the enum size to only take up one byte, hence decreasing class size. Bug: v8:7926 Change-Id: Ie50cfcd48541e44394814f375fd72f2b65722fdf Reviewed-on: https://chromium-review.googlesource.com/1186582 Commit-Queue: Florian Sattler <sattlerf@google.com> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55378}
-
- 24 Jul, 2018 1 commit
-
-
Clemens Hammacher authored
This is a reland of a462a785 Original change's description: > [turboassembler] Introduce hard-abort mode > > For checks and assertions (mostly for debug code, like stack alignment > or zero extension), we had two modes: Emit a call to the {Abort} > runtime function (the default), and emit a debug break (used for > testing, enabled via --trap-on-abort). > In wasm, where we cannot just call a runtime function because code must > be isolate independent, we always used the trap-on-abort behaviour. > This causes problems for our fuzzers, which do not catch SIGTRAP, and > hence do not detect debug code failures. > > This CL introduces a third mode ("hard abort"), which calls a C > function via {ExternalReference}. The C function still outputs the > abort reason, but does not print the stack trace. It then aborts via > "OS::Abort", just like the runtime function. > This will allow fuzzers to detect the crash and even find a nice error > message. > > Even though this looks like a lot of code churn, it is actually not. > Most added lines are new tests, and other changes are minimal. > > R=mstarzinger@chromium.org > > Bug: chromium:863799 > Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b > Reviewed-on: https://chromium-review.googlesource.com/1142163 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54592} Bug: chromium:863799 Change-Id: I7729a47b4823a982a8e201df36520aa2b6ef5326 Reviewed-on: https://chromium-review.googlesource.com/1146100Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54656}
-
- 20 Jul, 2018 4 commits
-
-
Sigurd Schneider authored
This reverts commit a462a785. Reason for revert: Breaks a TurboAssembler test: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm/7726 Original change's description: > [turboassembler] Introduce hard-abort mode > > For checks and assertions (mostly for debug code, like stack alignment > or zero extension), we had two modes: Emit a call to the {Abort} > runtime function (the default), and emit a debug break (used for > testing, enabled via --trap-on-abort). > In wasm, where we cannot just call a runtime function because code must > be isolate independent, we always used the trap-on-abort behaviour. > This causes problems for our fuzzers, which do not catch SIGTRAP, and > hence do not detect debug code failures. > > This CL introduces a third mode ("hard abort"), which calls a C > function via {ExternalReference}. The C function still outputs the > abort reason, but does not print the stack trace. It then aborts via > "OS::Abort", just like the runtime function. > This will allow fuzzers to detect the crash and even find a nice error > message. > > Even though this looks like a lot of code churn, it is actually not. > Most added lines are new tests, and other changes are minimal. > > R=mstarzinger@chromium.org > > Bug: chromium:863799 > Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b > Reviewed-on: https://chromium-review.googlesource.com/1142163 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54592} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: I60c011cfe262ccebbb9abf32699a9fe17e72a3c8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:863799 Reviewed-on: https://chromium-review.googlesource.com/1145431 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#54597}
-
Sigurd Schneider authored
This reverts commit 29379945. Reason for revert: Needed for other revert: https://chromium-review.googlesource.com/c/v8/v8/+/1145431 Original change's description: > [cleanup] Rename {kLastErrorMessage} to {kNumberOfReasons} > > The name {kLastErrorMessage} is misleading, as it's not actually the > index of the last message (or reason), but one more (i.e. number of > messages / reasons). Thus this renaming. > > R=mstarzinger@chromium.org > > Bug: v8:7754 > Change-Id: Id21edcecac84c0e6068423c6124ef2881116dc7c > Reviewed-on: https://chromium-review.googlesource.com/1145305 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54593} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: I2af83f4a2299e05ad9bcacfe69c0b483fd1488de No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7754 Reviewed-on: https://chromium-review.googlesource.com/1145520Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#54596}
-
Clemens Hammacher authored
The name {kLastErrorMessage} is misleading, as it's not actually the index of the last message (or reason), but one more (i.e. number of messages / reasons). Thus this renaming. R=mstarzinger@chromium.org Bug: v8:7754 Change-Id: Id21edcecac84c0e6068423c6124ef2881116dc7c Reviewed-on: https://chromium-review.googlesource.com/1145305 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54593}
-
Clemens Hammacher authored
For checks and assertions (mostly for debug code, like stack alignment or zero extension), we had two modes: Emit a call to the {Abort} runtime function (the default), and emit a debug break (used for testing, enabled via --trap-on-abort). In wasm, where we cannot just call a runtime function because code must be isolate independent, we always used the trap-on-abort behaviour. This causes problems for our fuzzers, which do not catch SIGTRAP, and hence do not detect debug code failures. This CL introduces a third mode ("hard abort"), which calls a C function via {ExternalReference}. The C function still outputs the abort reason, but does not print the stack trace. It then aborts via "OS::Abort", just like the runtime function. This will allow fuzzers to detect the crash and even find a nice error message. Even though this looks like a lot of code churn, it is actually not. Most added lines are new tests, and other changes are minimal. R=mstarzinger@chromium.org Bug: chromium:863799 Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b Reviewed-on: https://chromium-review.googlesource.com/1142163 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54592}
-
- 24 May, 2018 1 commit
-
-
Jaroslav Sevcik authored
Currently, we context allocate all parameters for generators. With this CL, we keep arguments on stack (unless they escape to inner closure) and copy them between the stack and the generator's register file on suspend/resume. This will save context allocation in most cases. Note: There is an asymmetry between suspend and resume. - Suspend copies arguments and registers to the generator. - Resume copies only the registers from the generator, the arguments are copied by the ResumeGenerator trampoline. Bug: v8:5164 Change-Id: I6333898c60abf461b1ab1b5c6d3dc7188fa95649 Reviewed-on: https://chromium-review.googlesource.com/1063712 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53327}
-
- 23 Mar, 2018 1 commit
-
-
Peter Marshall authored
Part of ongoing work to remove the construct_stub. For non-constructable functions, don't use the non-constructable stub, instead handle non-constructables explicitly in ConstructFunction. Bug: v8:7503 Change-Id: I24aa7c2d5e934d5e80cd96afaf005342773d57af Reviewed-on: https://chromium-review.googlesource.com/975961 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52185}
-
- 22 Mar, 2018 3 commits
-
-
Leszek Swirski authored
This is a reland of d8f564ea TBR=mstarzinger@chromium.org,yangguo@chromium.org,jgruber@chromium.org Original change's description: > Reland: Remove SFI code field > > Remove the SharedFunctionInfo code field, inferring the code object > from the function_data field instead. In some cases, the function_data > field can now hold a Code object (e.g. some WASM cases). > > (Reland of https://chromium-review.googlesource.com/952452) > > TBR=mstarzinger@chromium.org > > Bug: chromium:783853 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: I10ea5be7ceed1b51362a2fad9be7397624d69343 > Reviewed-on: https://chromium-review.googlesource.com/970649 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52136} Bug: chromium:783853 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I5187851b923e9a92f43daf8cb99e662786cbb839 Reviewed-on: https://chromium-review.googlesource.com/975942 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52159}
-
Leszek Swirski authored
This reverts commit d8f564ea. Reason for revert: Breaks mac asan (https://build.chromium.org/p/client.v8/builders/V8%20Mac64%20ASAN/builds/17067) Original change's description: > Reland: Remove SFI code field > > Remove the SharedFunctionInfo code field, inferring the code object > from the function_data field instead. In some cases, the function_data > field can now hold a Code object (e.g. some WASM cases). > > (Reland of https://chromium-review.googlesource.com/952452) > > TBR=mstarzinger@chromium.org > > Bug: chromium:783853 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: I10ea5be7ceed1b51362a2fad9be7397624d69343 > Reviewed-on: https://chromium-review.googlesource.com/970649 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52136} TBR=yangguo@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,leszeks@chromium.org Change-Id: I348ec7a9d837a7b068fd08312b77e87abf21be7b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:783853 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/975305Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52143}
-
Leszek Swirski authored
Remove the SharedFunctionInfo code field, inferring the code object from the function_data field instead. In some cases, the function_data field can now hold a Code object (e.g. some WASM cases). (Reland of https://chromium-review.googlesource.com/952452) TBR=mstarzinger@chromium.org Bug: chromium:783853 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I10ea5be7ceed1b51362a2fad9be7397624d69343 Reviewed-on: https://chromium-review.googlesource.com/970649 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52136}
-
- 20 Mar, 2018 2 commits
-
-
Leszek Swirski authored
This reverts commit 520b025f. Reason for revert: Breaks internal-snapshot build: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20internal%20snapshot/builds/14603 Original change's description: > Remove SFI code field > > Remove the SharedFunctionInfo code field, inferring the code object > from the function_data field instead. In some cases, the function_data > field can now hold a Code object (e.g. some WASM cases). > > Bug: chromium:783853 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: I1219a4d6aa5abaa9fee54dda883da7a3186e347a > Reviewed-on: https://chromium-review.googlesource.com/952452 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52064} TBR=yangguo@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,leszeks@chromium.org,bmeurer@chromium.org,verwaest@chromium.org Change-Id: Iaf464ed29ba4317bbbb255c1aec76fb65cddba84 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:783853 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/970647Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52066}
-
Leszek Swirski authored
Remove the SharedFunctionInfo code field, inferring the code object from the function_data field instead. In some cases, the function_data field can now hold a Code object (e.g. some WASM cases). Bug: chromium:783853 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I1219a4d6aa5abaa9fee54dda883da7a3186e347a Reviewed-on: https://chromium-review.googlesource.com/952452Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52064}
-
- 27 Feb, 2018 1 commit
-
-
Jaroslav Sevcik authored
Turbofan can only handle 64K control inputs for merges. Such large can only be created by functions with 64K jumps, so we limit the bytecode size to the minimum size of bytecode arrays with 64K jumps. Bug: chromium:815392, v8:7438 Change-Id: I674705e87e19ce451b40d5827c9fe3e6ec17293a Reviewed-on: https://chromium-review.googlesource.com/938421 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#51598}
-
- 02 Feb, 2018 1 commit
-
-
Michael Starzinger authored
This makes sure that {JSFunction} invocations always load the code start address into the fixed {kJavaScriptCallCodeStartRegister} register. This allows us to perform PC-relative operations more effective. For now this only applies to code with {kCallJSFunction} linkage. R=jarin@chromium.org Change-Id: I16a32184c07f5e90b05114dff7530acf46c175f1 Reviewed-on: https://chromium-review.googlesource.com/888700 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#51063}
-
- 29 Jan, 2018 1 commit
-
-
Leszek Swirski authored
Wide suspends have a "wide" (or "extra-wide") bytecode at their offset, rather than the suspend itself, so they were failing the return check. Bug: chromium:805765 Change-Id: Iabfc2a2167d09eda2f6885d9100287aadcd8fee9 Reviewed-on: https://chromium-review.googlesource.com/887082Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#50923}
-
- 18 Jan, 2018 1 commit
-
-
Martyn Capewell authored
Remove final csp instances, missed in the earlier patch due to being outside the arm64 tree. Bug: v8:6644 Change-Id: I2b5a2716568949740991c368b64c0a06105e4ff2 Reviewed-on: https://chromium-review.googlesource.com/874310Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> Cr-Commit-Position: refs/heads/master@{#50698}
-
- 04 Jan, 2018 1 commit
-
-
Sathya Gunasekaran authored
This patch breaks out bailout reasons into two enum classes. This helps save 3 bits on the SharedFunctionInfo as we don't have to track the abort reasons. Change-Id: Ic2e7e7e32b0fa31491f1c6f0003a61390d68fd97 Reviewed-on: https://chromium-review.googlesource.com/848244Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#50364}
-
- 25 Oct, 2017 1 commit
-
-
Jaroslav Sevcik authored
This reverts commit 37b4b2f1. Reason for revert: Likely breaking canary. Original change's description: > [turbofan] Prune control flow based on failed map checks and comparisons. > > This introduces unreachable state into load elimination. We mark state > as unreachable if we know statically that a map check would fail. > When processing effect phis, we disconnect unreachable state's > control from the effect phi's merge, and point it to RuntimeAbort. > The control input to the merge is then updated with Dead. Dead > code elimination prunes the merge, phis and effect phis. > > Bug: v8:6396 > Change-Id: I01874b576e548747a915c7b645b96ebaa6f6700d > Reviewed-on: https://chromium-review.googlesource.com/730754 > Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#48810} TBR=jarin@chromium.org,bmeurer@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:6396, chromium:777843 Change-Id: I6fac6f86e138f33756e688ec30424cb940690dae Reviewed-on: https://chromium-review.googlesource.com/737829Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#48918}
-
- 22 Oct, 2017 1 commit
-
-
Jaroslav Sevcik authored
This introduces unreachable state into load elimination. We mark state as unreachable if we know statically that a map check would fail. When processing effect phis, we disconnect unreachable state's control from the effect phi's merge, and point it to RuntimeAbort. The control input to the merge is then updated with Dead. Dead code elimination prunes the merge, phis and effect phis. Bug: v8:6396 Change-Id: I01874b576e548747a915c7b645b96ebaa6f6700d Reviewed-on: https://chromium-review.googlesource.com/730754 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48810}
-
- 19 Oct, 2017 2 commits
-
-
Jaroslav Sevcik authored
This reverts commit 71bcc1d9. Reason for revert: Regresses Octane/Box2D, among other things. Original change's description: > [turbofan] Load elimination prunes control flow based on instance type. > > Changes: > - introduce the notion of unreachable abstract states. > > - reconnect unreachables states to runtime abort in effect phis (so that > the merged states are not polluted by unreachable branches while > preserving SSA). > > - mark states with failed map checks, unreachable map guars as unreachable. > > - add instance type to AbstractMaps, only invalidate instance type on > mismatched effect merges. > > > This results in 2-3% improvement on ARES/ML steady state. > > Bug: v8:6396 > Change-Id: I35b0d4482fa400ba7ee9a754f8ef1b2663ebc7dc > Reviewed-on: https://chromium-review.googlesource.com/727761 > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#48742} TBR=jarin@chromium.org,bmeurer@chromium.org Change-Id: I6302b37dbf5ea781c64815ef1900681531ad7d71 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6396 Reviewed-on: https://chromium-review.googlesource.com/728440Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#48763}
-
Jaroslav Sevcik authored
Changes: - introduce the notion of unreachable abstract states. - reconnect unreachables states to runtime abort in effect phis (so that the merged states are not polluted by unreachable branches while preserving SSA). - mark states with failed map checks, unreachable map guars as unreachable. - add instance type to AbstractMaps, only invalidate instance type on mismatched effect merges. This results in 2-3% improvement on ARES/ML steady state. Bug: v8:6396 Change-Id: I35b0d4482fa400ba7ee9a754f8ef1b2663ebc7dc Reviewed-on: https://chromium-review.googlesource.com/727761Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#48742}
-
- 13 Oct, 2017 2 commits
-
-
Toon Verwaest authored
Bug: v8:6921 Change-Id: I9e42d0a5e7ce7fdda1d00468a82d35b973200e2c Reviewed-on: https://chromium-review.googlesource.com/718697Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#48545}
-
Toon Verwaest authored
Bug: v8:6921 Change-Id: I651b54a061a1ea401bb345569b96763daef0abe4 Reviewed-on: https://chromium-review.googlesource.com/707238 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#48520}
-