| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[turboshaft][tsa] Implement BytecodeHandlerAssembler in Turboshaft And port BitwiseNot_WithFeedback builtin and BitwiseNot bytecode handler to TSA. A number of drive by changes: - Implement a FeedbackCollectorReducer to handle feedback collection - Separate Turboshaft's builtin compilation into separate files (turboshaft/builtin-compiler.*). - Rename and slightly extend Variables (Var, ScopedVar). - Add a number of include exceptions to temporarily allow includes into compiler directories until we have a properly defined new structure for stuff that is shared between builtins and TurboFan. Bug: chromium:348031042 Change-Id: Ia1e23f5aa8e660002cd98e2b72d719171c6dfcdd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5691733 Reviewed-by: Matthias Liedtke <mliedtke@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#96025} | 1 年前 | |
buganizer: fix component IDs in DIR_METADATA This only matches the old monorail components. Bug: 341800538 Change-Id: Id74fbdb3b9be0c858b77af84966c6c37adf78c5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6025833 Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Paul Semel <paulsemel@chromium.org> Commit-Queue: Paul Semel <paulsemel@chromium.org> Cr-Commit-Position: refs/heads/main@{#97252} | 1 年前 | |
Update OWNERS files Overall: - Remove adamk - Remove syg test/test262/OWNERS: - Add olivf - Add rezvan third_party/v8/codegen/OWNERS: - Add gdeepti Change-Id: I0d72f60050a688ad5ec46ae4733c98ec323c9539 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6695598 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Olivier Flückiger <olivf@chromium.org> Cr-Commit-Position: refs/heads/main@{#101239} | 11 个月前 | |
[parser] Adding ConditionalChain Expression to handle long ternary operations Expressions of the form a_0 ? b_0 : a_1 ? b_1 : .... : a_n ? b_n : c that codify long if else assignations seem to be common in some generated instances like code splitting in webpack (see bug). However, parsing these expressions result in a n-deep expression tree: ? : / \ (a_0, b_0) ? : / \ (a_1, b_1) ... ... \ ? : / \ (a_n, b_n) c Traversing this tree during compilation can cause a stack overflow when n is large. Instead, we can now build a conditional chain node in the parse tree of the form conditional chain ? : / | \ \ / | \ \ / | \ \ / | ... \ \ (a_0, b_0) (a_1, b_1) (a_n, b_n) c The bytecode compiler can now iterate through the child expressions rather than recursing. Bug: v8:13887 Change-Id: I94109bbf418801073cd76b53ad9c920147e9af5e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5177855 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Emmanuel Romero Ruiz <emromero@microsoft.com> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#91964} | 2 年前 | |
[for-of-performance] Add IC slots to feedback vector This CL adds three slots (one call slot and 2 load slots) to the feedback vector to fasten the ForOf loop on ArrayIterators. Bug: 408061015 Change-Id: I51e1dca0601edf8570132bab04123a4515e08807 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7008254 Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@chromium.org> Cr-Commit-Position: refs/heads/main@{#103993} | 7 个月前 | |
[for-of-performance] Add IC slots to feedback vector This CL adds three slots (one call slot and 2 load slots) to the feedback vector to fasten the ForOf loop on ArrayIterators. Bug: 408061015 Change-Id: I51e1dca0601edf8570132bab04123a4515e08807 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7008254 Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@chromium.org> Cr-Commit-Position: refs/heads/main@{#103993} | 7 个月前 | |
[interpreter] Improve bytecode disassembler output Pass the constant pool to the bytecode decoder, so that constants can be printed as part of the bytecode itself. Also improve printing of the new split index types. Change-Id: Ia65149765b03a8d2665810b1d377e5b497600d15 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7209311 Commit-Queue: Patrick Thier <pthier@chromium.org> Reviewed-by: Patrick Thier <pthier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104020} | 7 个月前 | |
[interpreter] Improve bytecode disassembler output Pass the constant pool to the bytecode decoder, so that constants can be printed as part of the bytecode itself. Also improve printing of the new split index types. Change-Id: Ia65149765b03a8d2665810b1d377e5b497600d15 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7209311 Commit-Queue: Patrick Thier <pthier@chromium.org> Reviewed-by: Patrick Thier <pthier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104020} | 7 个月前 | |
[sandbox] Harden BytecodeArrayIterator and OSR This CL adds some defense-in-depth hardening to ensure that we cannot accidentally compile invalid bytecode if the OSR offset is wrong (which could for example happen if the bytecode of a JSFunction is swapped). In particular, it: * Adds hardening to BytecodeArrayIterator to guarantee that the current offset is always valid. * Adds some CHECKs into the compiler pipelines to ensure that in the case of OSR, the offset represents a valid OSR entrypoint. Bug: 40931165 Change-Id: Id79a8765f1e657607d0a4e9e32eb20837fa2e299 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6048838 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#97399} | 1 年前 | |
[compiler] Change liveness to use a flat array Bytecode liveness needs a mapping from offset to liveness. This was previously a hashmap with a very weak hash (the identity function) and both inserts and lookups showed up as a non-trivial costs during compilation. Now, replace the hashmap with a simple flat array of liveness, indexed by offset, pre-sized to the size of the bytecode. This will have a lot of empty entries, but will have much better runtime performance and probably ends up not much less memory efficient as a hashmap if the hashmap has to resize inside the Zone, and is likely negligible compared to the other compilation memory overheads. Change-Id: Id21375bfcbf0d53b5ed9c41f30cdf7fde66ee699 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3455802 Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#79049} | 4 年前 | |
[ignition] Split bytecode index operand types This refactoring replaces the generic kIdx bytecode operand type with more specialized types: kConstantPoolIndex, kFeedbackSlot, kContextSlot, kCoverageSlot, and kAbortReason. Change-Id: I15f86a05f649e3941e5f543d77eba375aa91580c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7208946 Reviewed-by: Patrick Thier <pthier@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104014} | 7 个月前 | |
Reland^2 "Embedding feedback in BytecodeArray for StrictEqual" This is a reland of commit e295f1f18da01c386eda73f535fb67a56c004d88 Original change's description: > Reland "Embedding feedback in BytecodeArray for StrictEqual" > > This is a reland of commit f0fed41e48b1966e3e565ae278d018da538ef123 > > Original change's description: > > Embedding feedback in BytecodeArray for StrictEqual > > > > This CL removes the feedback vector slot for StrictEqual and stores its feedback values directly in the BytecodeArray. Optimized compilers will now access the type feedback from the BytecodeArray. > > > > Before: > > 75 04 00 TestEqualStrict a1, [0] > > > > After: > > 75 04 00 00 TestEqualStrict a1, #0 > > > > This change saves moemory by reducing FeedbackVector size, and is part of the Sparkplug+ optimization effort. > > > > Bug: chromium:429351411 > > Change-Id: I24390811c12755b0a19beaefe2b0319d75ceaf6c > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6986847 > > Reviewed-by: Xu, Hao A <hao.a.xu@intel.com> > > Commit-Queue: Wei, Yuheng <yuheng.wei@intel.com> > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#103656} > > Bug: chromium:429351411 > Change-Id: I77286b0e9c65f8a9e257a2125adab7f68fe09aec > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7148333 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Commit-Queue: Wei, Yuheng <yuheng.wei@intel.com> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#103800} Bug: chromium:429351411 Change-Id: I5020c9dffbed90ff207520728b13cf0dbcfb5903 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7197099 Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Wei, Yuheng <yuheng.wei@intel.com> Cr-Commit-Position: refs/heads/main@{#103962} | 7 个月前 | |
[interpreter] Improve bytecode disassembler output Pass the constant pool to the bytecode decoder, so that constants can be printed as part of the bytecode itself. Also improve printing of the new split index types. Change-Id: Ia65149765b03a8d2665810b1d377e5b497600d15 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7209311 Commit-Queue: Patrick Thier <pthier@chromium.org> Reviewed-by: Patrick Thier <pthier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104020} | 7 个月前 | |
[interpreter] Improve bytecode disassembler output Pass the constant pool to the bytecode decoder, so that constants can be printed as part of the bytecode itself. Also improve printing of the new split index types. Change-Id: Ia65149765b03a8d2665810b1d377e5b497600d15 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7209311 Commit-Queue: Patrick Thier <pthier@chromium.org> Reviewed-by: Patrick Thier <pthier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104020} | 7 个月前 | |
[flag] Remove --always-turbofan Bug: 431974094 Change-Id: Ia86d64cf626db0977299f8ec105f86ee4f385e7c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6781181 Reviewed-by: Marja Hölttä <marja@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#101612} | 11 个月前 | |
[flag] Remove --always-turbofan Bug: 431974094 Change-Id: Ia86d64cf626db0977299f8ec105f86ee4f385e7c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6781181 Reviewed-by: Marja Hölttä <marja@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#101612} | 11 个月前 | |
TicketNo:DTS2026040312077;DTS2026040207037;DTS2026040207036;DTS2026040135724;DTS2026040135722;DTS2026032818442;DTS2026032530470;DTS2026032530464;DTS2026031327981;DTS2026031222703;DTS2026031222694;DTS2026031222686;DTS2026031222671;DTS2026031222662;DTS2026031222654 Description:【CVE-2026-4450】【487746373】【490642836】【CVE-2026-4457】【488803413】[CVE-2026-4461][490558172][489159859][481749436][491191100][492077213][496629079][472181383][480442279][481295170][485784597][474402856][483220222] Team:v8 Feature or Bugfix:Bugfix Binary Source:No PrivateCode(Yes/No):No Change-Id: Iae84c8fcc36a25b1936ec0997008368f70096cd6 Reviewed-by: y00500721 Approved-by: w00518651 Merged-on: https://open.codehub.huawei.com/OpenSourceCenter_CR/openharmony-tpc/chromium_v8/-/change_requests/534 Merged-by: public pjenkins Signed-off-by: Marja Hölttä <marja@chromium.org> | 1 个月前 | |
Reland^2 "Embedding feedback in BytecodeArray for StrictEqual" This is a reland of commit e295f1f18da01c386eda73f535fb67a56c004d88 Original change's description: > Reland "Embedding feedback in BytecodeArray for StrictEqual" > > This is a reland of commit f0fed41e48b1966e3e565ae278d018da538ef123 > > Original change's description: > > Embedding feedback in BytecodeArray for StrictEqual > > > > This CL removes the feedback vector slot for StrictEqual and stores its feedback values directly in the BytecodeArray. Optimized compilers will now access the type feedback from the BytecodeArray. > > > > Before: > > 75 04 00 TestEqualStrict a1, [0] > > > > After: > > 75 04 00 00 TestEqualStrict a1, #0 > > > > This change saves moemory by reducing FeedbackVector size, and is part of the Sparkplug+ optimization effort. > > > > Bug: chromium:429351411 > > Change-Id: I24390811c12755b0a19beaefe2b0319d75ceaf6c > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6986847 > > Reviewed-by: Xu, Hao A <hao.a.xu@intel.com> > > Commit-Queue: Wei, Yuheng <yuheng.wei@intel.com> > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#103656} > > Bug: chromium:429351411 > Change-Id: I77286b0e9c65f8a9e257a2125adab7f68fe09aec > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7148333 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Commit-Queue: Wei, Yuheng <yuheng.wei@intel.com> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#103800} Bug: chromium:429351411 Change-Id: I5020c9dffbed90ff207520728b13cf0dbcfb5903 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7197099 Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Wei, Yuheng <yuheng.wei@intel.com> Cr-Commit-Position: refs/heads/main@{#103962} | 7 个月前 | |
[ignition] Store operand scale for SwitchOnGeneratorState Store the operand scale for SwitchOnGeneratorState in the BytecodeJumpTable rather than re-determining it from prefix bytecodes -- the bytecode offset stored in the jump table is already after the prefix so we can't recover the prefix from it. Fixed: 460838377 Change-Id: I4bb567c35d27e5a0e5f9b8dec19c9ed2d3af7e0d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7160575 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#103744} | 7 个月前 | |
Move more relevant files to src/objects TBR=bmeurer@chromium.org,leszeks@chromium.org Bug: v8:9247 Change-Id: I8d14d0192ea8c705f8274e8e61a162531826edb6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624220 Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#61769} | 6 年前 | |
[cleanup] Remove DISALLOW_COPY_AND_ASSIGN in interpreter/ Bug: v8:11074 Change-Id: I181af917c141fb327213ae6303057f1bb87f4ac4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2524418 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71064} | 5 年前 | |
Remove some unused includes (4) Mostly src/codegen, src/compiler, src/interpreter, src/libplatform. Drive-by: Remove some unreachable code. Bug: v8:13006 Change-Id: I1a9467f7e42531c545f660d35416c388e8ef9d3c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3749193 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#81613} | 3 年前 | |
[turboshaft][tsa] Implement BytecodeHandlerAssembler in Turboshaft And port BitwiseNot_WithFeedback builtin and BitwiseNot bytecode handler to TSA. A number of drive by changes: - Implement a FeedbackCollectorReducer to handle feedback collection - Separate Turboshaft's builtin compilation into separate files (turboshaft/builtin-compiler.*). - Rename and slightly extend Variables (Var, ScopedVar). - Add a number of include exceptions to temporarily allow includes into compiler directories until we have a properly defined new structure for stuff that is shared between builtins and TurboFan. Bug: chromium:348031042 Change-Id: Ia1e23f5aa8e660002cd98e2b72d719171c6dfcdd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5691733 Reviewed-by: Matthias Liedtke <mliedtke@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#96025} | 1 年前 | |
[interpreter] Distinguish writes and clobbers of the accumulator Some bytecodes clobber the accumulator to avoid the additional cost of unnecessarily extending its lifetime across calls. These were previously defined as "writing" the accumulator, where the value of that write was indeterminate. If any of these paths lazy deopt, however, we don't actually want (or need) to restore a valid accumulator value for such calls. Instead, add a enum value noting that a bytecode _kills_ the accumulator, writing to it with an indeterminate value that should not be used or preserved. Liveness analysis DCHECKs that the accumulator is dead in such cases. Change-Id: I28e55813b2bc85e5cf3b6d82fda3fa30048180af Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4307249 Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Darius Mercadier <dmercadier@chromium.org> Cr-Commit-Position: refs/heads/main@{#86229} | 3 年前 | |
[ignition] Split bytecode index operand types This refactoring replaces the generic kIdx bytecode operand type with more specialized types: kConstantPoolIndex, kFeedbackSlot, kContextSlot, kCoverageSlot, and kAbortReason. Change-Id: I15f86a05f649e3941e5f543d77eba375aa91580c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7208946 Reviewed-by: Patrick Thier <pthier@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104014} | 7 个月前 | |
Remove some unused includes (4) Mostly src/codegen, src/compiler, src/interpreter, src/libplatform. Drive-by: Remove some unreachable code. Bug: v8:13006 Change-Id: I1a9467f7e42531c545f660d35416c388e8ef9d3c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3749193 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#81613} | 3 年前 | |
[cleanup] Remove dead code under src/interpreter/ Dead code identified by looking at the coverage report. Change-Id: Ie18f88b5c6cb581898ab367c343a67ec814b44a7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5648992 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/main@{#94635} | 1 年前 | |
[for-of-performance] Handle Async ArrayIterators and a bug fix For now, we redirect Async ArrayIterators to the slow path. This CL, also fix the bug of calling return() on iterator if the next() method throws. Bug: 408061015 Change-Id: Ibc65f170de98325a7411473fc752f9247885f8bc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6907269 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@chromium.org> Cr-Commit-Position: refs/heads/main@{#102363} | 9 个月前 | |
[interpreter] Make Registers more constexpr Move the more trivial Register operations (like getters, parameter index and fixed registers) to the header, and to be constexpr. Also, remove unused Register::AreContiguous Change-Id: I63e2219b5c8f933f4f036439ae5c22b1f7cb6d60 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4594634 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#88122} | 3 年前 | |
[cleanup] Replace some usages of base version with std version #2 This CL includes replacing some usages of base version with std version. For example, base::Optional with std::optional, base::nullopt with std::nullopt, etc. Bug: chromium:355676041, chromium:355003178 Change-Id: I87334a37c5d791725e47ba191de7b12eb6ba5af5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5757258 Reviewed-by: Shu-yu Guo <syg@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Ho Cheung <hocheung@chromium.org> Cr-Commit-Position: refs/heads/main@{#95484} | 1 年前 | |
Remove some unused includes (4) Mostly src/codegen, src/compiler, src/interpreter, src/libplatform. Drive-by: Remove some unreachable code. Bug: v8:13006 Change-Id: I1a9467f7e42531c545f660d35416c388e8ef9d3c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3749193 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#81613} | 3 年前 | |
Add a is_breakable flag to PositionTableEntry It will be used by the bytecode generator to mark source positions that are not supposed to be breakable by the debugger. This doesn't use the flag yet, that will be done as a follow up to mark mark “iterator.next” calls in for-of bytecode as non-breakable. See go/chrome-devtools:non-breakable-positions-proposal Bug: 407773675 Change-Id: I50103aea6a2954cc34ced4d81fb657b885421093 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6438994 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Commit-Queue: Andres Olivares <andoli@chromium.org> Cr-Commit-Position: refs/heads/main@{#99754} | 1 年前 | |
[interpreter] Add a lookup table for operand offsets Looking up an operand by index previously required iterating over operands, and adding together their sizes. Add a per-bytecode, per-operand, per-scale lookup table which encodes each operand's offset directly, avoiding the need for this iteration. Change-Id: I732aa71a5be8aa1a3a0fb5d09b89b43c14972470 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5496955 Reviewed-by: Olivier Flückiger <olivf@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Olivier Flückiger <olivf@chromium.org> Cr-Commit-Position: refs/heads/main@{#93635} | 2 年前 | |
Reland "[contexts] Unify context accessors after ContextCells" This is a reland of commit d2ab66c2a942893b9f6d7628ff8892e1d6a607b3 Changes from original: - The test inspector/debugger/set-breakpoint-after-gc relies on precise garbage collection and may fail if conservative stack scanning is used. We call GC multiple times to ensure the weak reference hold by the script is eventually collected. - Allow reading a ContextCell when printing debug stack frame. Original change's description: > [contexts] Unify context accessors after ContextCells > > The introduction of ContextCells removed the need for special handling > for ScriptContext (which previously used a side table for > let/const tracking and mutable numbers). > > This change refactors the context access logic: > - Internal get/set accessors are now protected to the Context class. > - External access should use the new functions: > - Get/Set: A safe (though potentially slower) > function for accessing elements in any context. > - GetNoCell/SetNoCell: A faster function that verifies the > element being accessed is not a ContextCell. > > Additionally, related bytecode operations and optimizer functions have > been renamed for consistency with these changes. > > Bug: 408128754 > > Change-Id: I785281ab6f13b0ae65578eb5d2f0a5750457ab5e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6450582 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Victor Gomes <victorgomes@chromium.org> > Cr-Commit-Position: refs/heads/main@{#99844} Bug: 408128754, 40789559 Change-Id: I78a3a99a4f364ed78965fbed56a084d38382d2fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6479814 Reviewed-by: Igor Sheludko <ishell@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#99865} | 1 年前 | |
[ignition] Split bytecode index operand types This refactoring replaces the generic kIdx bytecode operand type with more specialized types: kConstantPoolIndex, kFeedbackSlot, kContextSlot, kCoverageSlot, and kAbortReason. Change-Id: I15f86a05f649e3941e5f543d77eba375aa91580c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7208946 Reviewed-by: Patrick Thier <pthier@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104014} | 7 个月前 | |
[ignition] Trim jump tables for generators Make it impossible to emit uninitialized jump table entries by trimming the generator jump table and otherwise making uninitialized jump table Smi emission unreachable. Bug: 460166688 Change-Id: I0a802559a2c2751c108afe5edd37cb551c4aab21 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7150848 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#103702} | 7 个月前 | |
[handles] Migrate out-of-stack handles, part 3 This CL explicitly marks out-of-stack handles as IndirectHandle<T>. In particular, it revises: 1. Classes that may be allocated off-stack, containing handles: - ArrayLiteralBoilerplateBuilder - AstConsString - AstRawString - CodeSerializer::OffThreadDeserializeData - ConstantArrayBuilder::Entry - CrossHeapRememberedSet - Debug - Deserializer::UnresolvedForwardRef - FunctionLiteral - ObjectLiteralBoilerplateBuilder - PropertyDescriptor - Scope - compiler::FeedbackSource - compiler::turboshaft::ConstantOp - compiler::turboshaft::TransitionAndStoreArrayElementOp - maglev::GetIterator - wasm::test_wasm_shared_engine::_::MockCompilationResolver - wasm::test_wasm_shared_engine::_::MockInstantiationResolver 2. Classes containing vectors or maps/sets of handles: - Deserializer - LocalBlocklistsCollector - NativeRegExpMacroAssembler - UniqueNameHandleSet - compiler::JSHeapBroker - compiler::JSNativeContextSpecialization 3. Class Arguments::ChangeValueScope, which now contains a direct handle. 4. Global, persistent and root handles, which are indirect. 5. Some vectors of handles in tests. 6. The CL also fixes a bug in the helper functions for creating indirect handles. Bug: 372390038 Change-Id: I7ef913950d4d2d81ca35d5cabd5b26b20a43ee2a Cq-Include-Trybots: luci.v8.try:v8_linux64_css_dbg Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5957092 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#96825} | 1 年前 | |
[ignition] Trim jump tables for generators Make it impossible to emit uninitialized jump table entries by trimming the generator jump table and otherwise making uninitialized jump table Smi emission unreachable. Bug: 460166688 Change-Id: I0a802559a2c2751c108afe5edd37cb551c4aab21 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7150848 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#103702} | 7 个月前 | |
[cleanup] Remove dead code under src/interpreter/ Dead code identified by looking at the coverage report. Change-Id: Ie18f88b5c6cb581898ab367c343a67ec814b44a7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5648992 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/main@{#94635} | 1 年前 | |
[handles] Migration to direct handles, part 13 This CL migrates a large number of handles to direct handles. The changes are only relevant for builds with v8_enable_direct_handle=true. Affected source directories: api, ast, builtins, codegen, compiler, debug, deoptimizer, execution, heap, ic, init, interpreter, json, maglev, objects, parsing, regexp, runtime, snapshot, strings, temporal, wasm, and in tests. Bug: 42203211 Change-Id: Icb4238ee9082865dae47dce025e529a1c3fdfc48 Cq-Include-Trybots: luci.v8.try:v8_linux64_css_dbg Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6189992 Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98283} | 1 年前 | |
[handles] Migration to direct handles, part 13 This CL migrates a large number of handles to direct handles. The changes are only relevant for builds with v8_enable_direct_handle=true. Affected source directories: api, ast, builtins, codegen, compiler, debug, deoptimizer, execution, heap, ic, init, interpreter, json, maglev, objects, parsing, regexp, runtime, snapshot, strings, temporal, wasm, and in tests. Bug: 42203211 Change-Id: Icb4238ee9082865dae47dce025e529a1c3fdfc48 Cq-Include-Trybots: luci.v8.try:v8_linux64_css_dbg Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6189992 Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98283} | 1 年前 | |
[ignition] Split bytecode index operand types This refactoring replaces the generic kIdx bytecode operand type with more specialized types: kConstantPoolIndex, kFeedbackSlot, kContextSlot, kCoverageSlot, and kAbortReason. Change-Id: I15f86a05f649e3941e5f543d77eba375aa91580c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7208946 Reviewed-by: Patrick Thier <pthier@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104014} | 7 个月前 | |
[ignition] Split bytecode index operand types This refactoring replaces the generic kIdx bytecode operand type with more specialized types: kConstantPoolIndex, kFeedbackSlot, kContextSlot, kCoverageSlot, and kAbortReason. Change-Id: I15f86a05f649e3941e5f543d77eba375aa91580c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7208946 Reviewed-by: Patrick Thier <pthier@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104014} | 7 个月前 | |
[ignition] Split bytecode index operand types This refactoring replaces the generic kIdx bytecode operand type with more specialized types: kConstantPoolIndex, kFeedbackSlot, kContextSlot, kCoverageSlot, and kAbortReason. Change-Id: I15f86a05f649e3941e5f543d77eba375aa91580c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7208946 Reviewed-by: Patrick Thier <pthier@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104014} | 7 个月前 | |
[tsa] Add concurrent builtin compilation for TSA-based builtins Drive-by: Rename some of the builtin macros and functions to be less confusing and more consistent (e.g. the Turboshaft version of TFJ is no longer TSJ but TFJ_TSA). Bug: 348031042 Change-Id: I866a9e724b29b2bd52800e7957d8b127cd915bb4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6781182 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#101687} | 11 个月前 | |
[ignition] Split bytecode index operand types This refactoring replaces the generic kIdx bytecode operand type with more specialized types: kConstantPoolIndex, kFeedbackSlot, kContextSlot, kCoverageSlot, and kAbortReason. Change-Id: I15f86a05f649e3941e5f543d77eba375aa91580c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7208946 Reviewed-by: Patrick Thier <pthier@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#104014} | 7 个月前 | |
[tsa] Add concurrent builtin compilation for TSA-based builtins Drive-by: Rename some of the builtin macros and functions to be less confusing and more consistent (e.g. the Turboshaft version of TFJ is no longer TSJ but TFJ_TSA). Bug: 348031042 Change-Id: I866a9e724b29b2bd52800e7957d8b127cd915bb4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6781182 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#101687} | 11 个月前 | |
[torque] Emit TNode<Union<...>> for Union types ... and propagate this throughought the CSA code, predominantly transitively propagating JSAny. To make this easier, there is additional support for: * Compatibility between torque definitions of types via Unions and C++ definitions of some types (e.g. handling MaybeObject which is a single type in C++ and a Union in torque). We will want to align these more closely in the future. * A new Union::Without helper to remove types from a Union (e.g. after a Smi check). Bug: 42202654 Change-Id: I85f4b007d071d912966e4f00571058e79a3fd70f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6269398 Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#98722} | 1 年前 | |
[csa] move TNode to separate header This enables using TNode types without including code-assembler.h, which is useful when generating CallInterfaceDescriptors. As a drive-by, this moves TNode from v8::internal::compiler to v8::internal. It's only used outside of the compiler anyway. Change-Id: I3d938c22366a3570315041683094f77b0d1096a2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1798425 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#63721} | 6 年前 | |
[cleanup] Remove return after UNREACHABLE Change-Id: I20ed35a7fb5104a9cc66bb54fa8966589c43d7f9 Reviewed-on: https://chromium-review.googlesource.com/507287 Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45458} | 8 年前 | |
Remove handled_hint, do all catch prediction in isolate.cc For async functions/generators, we now check the handler table at the generator location when walking the promise tree during debugging. This allows us to centralize all catch prediction code in isolate.cc, deleting it from lots of other locations where it is on a more critical path, and remove the handled_hint flag from promises. Bug: None Change-Id: Icfada30c9326dd75195965e11d771bf905ff7e20 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5465508 Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Eric Leese <leese@chromium.org> Cr-Commit-Position: refs/heads/main@{#93497} | 2 年前 | |
2026.03.30 arkweb_144代码蓝黄同步 Signed-off-by: jiujiaoxiaogula <sujiahao10@huawei.com> Change-Id: I00194d339064f999dedfc211cd5af5501cbed0fb | 3 个月前 | |
[tsa] Add concurrent builtin compilation for TSA-based builtins Drive-by: Rename some of the builtin macros and functions to be less confusing and more consistent (e.g. the Turboshaft version of TFJ is no longer TSJ but TFJ_TSA). Bug: 348031042 Change-Id: I866a9e724b29b2bd52800e7957d8b127cd915bb4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6781182 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#101687} | 11 个月前 | |
Reduce stack memory consumption in BytecodeGenerator Using a SmallVector with 64 stack-allocated entries is not great for functions that can be used in deep recursions, so this patch replaces that with a ZoneVector. By allocating any backing store only when it's actually needed, and presizing that initial backing store when that happens, this should have similar performance while using a lot less stack space, allowing us to compile more deeply nested expressions. For the highly artificial example of a function full of nested empty blocks function f() {{{{{...}}}}}, this increases the max nesting level from around 670 to around 2600. With more aggressive inlining in official builds, it can have similar effects on patterns that don't even call VisitStatements() recursively. Bug: 429332174 Change-Id: Id11e15ba0fd9bc39efa68bf83e1181fe0e7274a7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7180480 Reviewed-by: Raphael Herouart <rherouart@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#103870} | 7 个月前 | |
Reduce stack memory consumption in BytecodeGenerator Using a SmallVector with 64 stack-allocated entries is not great for functions that can be used in deep recursions, so this patch replaces that with a ZoneVector. By allocating any backing store only when it's actually needed, and presizing that initial backing store when that happens, this should have similar performance while using a lot less stack space, allowing us to compile more deeply nested expressions. For the highly artificial example of a function full of nested empty blocks function f() {{{{{...}}}}}, this increases the max nesting level from around 670 to around 2600. With more aggressive inlining in official builds, it can have similar effects on patterns that don't even call VisitStatements() recursively. Bug: 429332174 Change-Id: Id11e15ba0fd9bc39efa68bf83e1181fe0e7274a7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7180480 Reviewed-by: Raphael Herouart <rherouart@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#103870} | 7 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 2 年前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 1 年前 | ||
| 4 年前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 11 个月前 | ||
| 11 个月前 | ||
| 1 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 6 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 7 个月前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 1 年前 | ||
| 7 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 11 个月前 | ||
| 7 个月前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 6 年前 | ||
| 8 年前 | ||
| 2 年前 | ||
| 3 个月前 | ||
| 11 个月前 | ||
| 7 个月前 | ||
| 7 个月前 |