- 08 Jul, 2022 3 commits
-
-
Leszek Swirski authored
Add a concept of "register snapshots" which snapshot the end-state of the register allocation for a node (i.e. the state of the register allocation when the node's code completes). These can be requested by nodes, so that they know which registers need to be kept alive by the node, and which of those are tagged. Nodes can then use this information to temporarily spill registers across a deferred call, without requiring the register allocator to spill them unconditionally on the non-deferred path. The maglev safepoint table has support for these additional spilled registers. Bug: v8:7700 Change-Id: Id0052b5da86dd263f9019b1433fe5994a472a5b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3751203 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#81614}
-
Leszek Swirski authored
Merging register values can encounter constants, which are loadable but don't have spill slots. Add support for these (in practice this is the same behaviour, we're just fixing a DCHECK). Bug: v8:7700 Change-Id: I9ab8ba1fc3a3a64fe16668bb317ad02f878f5849 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3749579 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@{#81611}
-
Leszek Swirski authored
Having interrupt budget updates be part of register allocation caused various difficulties around gap moves for temporaries vs. gap moves for phis. This patch splits them off into a separate node which is separately allocated, and adds invariant checks that phi-updating nodes don't do any other tricky register allocation. Bug: v8:7700 Change-Id: I5a454fe4c5a5adff08d5a327ee34fbb43cda97ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3751196Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#81604}
-
- 07 Jul, 2022 1 commit
-
-
Toon Verwaest authored
To implement this, this cl introduces explicit check smi/heapobject nodes that we use for the value (and also separate from CheckMaps now). This will allow us to remove duplicate checks later. The performance of StoreField itself isn't vastly better due to fixed register requirements though. Bug: v8:7700 Change-Id: I98caa290c88be64f41154fd232bde98fb46ce497 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3747870 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#81576}
-
- 01 Jul, 2022 1 commit
-
-
Leszek Swirski authored
Make the normal CheckMaps non-calling, and add a new CheckMapsWithMigration which still does the deferred call. Eventually we'll want to also not mark this as calling, but keeping the two separate is cleaner anyway. Bug: v8:7700 Change-Id: Ideb2fcef147ab45d4a10bbdde9a85a55fbd56947 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3740725Reviewed-by:
Igor Sheludko <ishell@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#81499}
-
- 30 Jun, 2022 1 commit
-
-
Leszek Swirski authored
We need this to expand the max input count to be big enough for our biggest calls (and to add more bits to the op properties). Bug: v8:7700 Change-Id: I6d63cf39b3079c3c85a32f208ce925ae795ef5a7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3734811 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@{#81461}
-
- 29 Jun, 2022 1 commit
-
-
Leszek Swirski authored
Centralise constant visiting into the graph visitor, and adapt graph printing to print both the labeller node id, and the node numbering node id. Bug: v8:7700 Change-Id: I1af8f97e546f7113ac5655522f9206f207a0ae97 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3732932Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#81431}
-
- 24 Jun, 2022 2 commits
-
-
Shu-yu Guo authored
This reverts commit c4301c04. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/42568/overview Original change's description: > [maglev] Add internalized string compare fast-path > > - Rename TryBuildCompareOperationBranch to TryBuildCompareOperation > - Add CheckedInternalizedString conversion Node that checks for string > inputs and extracts internalised Strings from ThinStrings > - Add BranchIfReferenceCompare Node > - Add runtime functions to create internalised and thin Strings > - Add deopt check to test/mjsunit/maglev/int32-branch.js > > Bug: v8:7700 > Change-Id: I0073c24fad9e3231c985153cd27b0b8fe6ee56f0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3664498 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Cr-Commit-Position: refs/heads/main@{#81361} Bug: v8:7700 Change-Id: Id4e18f42a5b1f0d6909b0a017ae8e289ae8c8614 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3723520 Owners-Override: Shu-yu Guo <syg@chromium.org> Auto-Submit: Shu-yu Guo <syg@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#81363}
-
Camillo authored
- Rename TryBuildCompareOperationBranch to TryBuildCompareOperation - Add CheckedInternalizedString conversion Node that checks for string inputs and extracts internalised Strings from ThinStrings - Add BranchIfReferenceCompare Node - Add runtime functions to create internalised and thin Strings - Add deopt check to test/mjsunit/maglev/int32-branch.js Bug: v8:7700 Change-Id: I0073c24fad9e3231c985153cd27b0b8fe6ee56f0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3664498Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#81361}
-
- 21 Jun, 2022 1 commit
-
-
Toon Verwaest authored
When picking an arbitrary register for an input, prefer picking a register that's already used as input. If there's no such register, block the newly picked register. Bug: v8:7700 Change-Id: I5926ae33482aa615060fef3500c1d2d6079090a4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3716476 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#81276}
-
- 20 Jun, 2022 1 commit
-
-
Toon Verwaest authored
* Move fixed temporary allocation before arbitrary input allocation, so that fixed temporaries don't accidentally clobber the arbitrary input register. Now the input allocation will pick a different register. * For the above, make temporary allocation 'block' the register with a sentinel value, rather than marking it free, so that the subsequent input allocation knows not to use those registers (including spilling into them). * Similarly, move arbitrary input allocation after phi resolution when allocating control nodes, since phis may have fixed requirements. * Allow deopts to spill their inputs if they are not in registers and not yet loadable. This is done during the equivalent of input allocation for deopts. * Allow there to be multiple targets for a single source during gap move collection / cycle detection. There can still only be a single source per target, therefore there can only be one cycle for each connected component -- this is DCHECKed. * Make register validation more complete -- also walk the entire graph, and check whether value nodes' result register states match the current register allocator state. * Add much more printing to --trace-maglev-regalloc because these bugs ain't easy to debug. Bug: v8:7700 Change-Id: Id98259c2920d772ce168bf27497162e78b136f9f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3714235 Auto-Submit: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#81252}
-
- 15 Jun, 2022 2 commits
-
-
Toon Verwaest authored
This moves constant nodes to separate data structures on the graph so they can be looked up there. Graph processors walk the constants before walking other nodes. Bug: v8:7700 Change-Id: Id4bec2c2a26011dcacf3355fe17d821451f79397 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3706625 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#81195}
-
Leszek Swirski authored
We may want to access their deopt checkpoint to create a tagged value during merging. Bug: v8:7700 Change-Id: I0f81e3ea5e871b775e1509044fa1d1f7bb70db4e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3706617 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#81174}
-
- 14 Jun, 2022 2 commits
-
-
Leszek Swirski authored
Bug: v8:7700 Change-Id: I1f552587403bdec439c611d56d6bf4c54508a76f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3702802Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#81156}
-
Leszek Swirski authored
Bug: v8:7700 Change-Id: If242def89e2ce1e7a8da3619fb514e457d83c5ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3702442Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#81147}
-
- 13 Jun, 2022 1 commit
-
-
Leszek Swirski authored
This should help us with various DCHECKs, maybe even with actual branches. Bug: v8:7700 Change-Id: I6317635b59ba9ed1ee1146f6da31abf7eb099c75 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3700072 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#81115}
-
- 25 May, 2022 1 commit
-
-
Leszek Swirski authored
Add a generic DefineNamedOwn node for DefineNamedOwnProperty, and a monomorphic fast path identical to SetNamedProperty for simple field stores. Bug: v8:7700 Change-Id: I35ff9d54be8bb8e437865e4d1ba38eb726034e24 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3663084 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@{#80736}
-
- 24 May, 2022 1 commit
-
-
Leszek Swirski authored
Same pattern as Int32 compare ops. Bug: v8:7700 Change-Id: Ia090cb97d6c5c99c6aa719ec5db1a2a8e2156472 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3663340Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80723}
-
- 23 May, 2022 3 commits
-
-
Leszek Swirski authored
Add an implementation of BranchIfInt32Compare, which is emitted whenever a compare op is immediately followed by a branch. Bug: v8:7700 Change-Id: I2c56d9de199bac8de33b33201f8614aee8e9894e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647693Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80694}
-
Leszek Swirski authored
Add an implementation of compare ops which, like binary ops, speculatively reads integers (but still returns a tagged true/false value). Bug: v8:7700 Change-Id: I38f0ba99f8f7af30c89d0b987e28483c9610463f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3657440 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#80692}
-
Leszek Swirski authored
Deopt InputLocation next_use fields are not initialised, so if a deopt is the last use of a node we won't release it. Fix this by initialising the input location array. Also add a DCHECK to verify that register assignments match what registers a node thinks it's in. Bug: v8:7700 Change-Id: I4003a027489cf8eeef7c4e60fa64f72cebd2c4e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3657438Reviewed-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@{#80690}
-
- 20 May, 2022 1 commit
-
-
Leszek Swirski authored
Add Int32/Float64 nodes for: * Subtract * Multiply * Divide and additionally Int32 nodes for * BitwiseOr/And/Xor * ShiftLeft/Right/RightLogical The latter ones don't have Float64 equivalents since they're implicitly Int32 operations. In the future we'll add support for Number feedback by adding Float64-to-Int32 conversions and using the Int32 nodes. The divide node does an Int32 division and deopts if there's a remainder to the division -- we may want to make it output a Float64 instead if we think that's more likely in real-world code. There's also no peephole optimisations for constant operations, which would generate much better code, especially for shifts. Bug: v8:7700 Change-Id: Ief1d24b46557cf4d2b7929ed50956df7b0d25992 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3652301 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#80670}
-
- 16 May, 2022 1 commit
-
-
Toon Verwaest authored
Bug: v8:7700 Change-Id: If4a9293649a15816504d2a9544484b67aa2b2fa1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644791 Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#80539}
-
- 13 May, 2022 2 commits
-
-
Toon Verwaest authored
This avoids unnecessary spill moves and reduces register pressure. Bug: v8:7700 Change-Id: I3f2c35f2b6c0a3e64408b40d59696d924af8a9b4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647365Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#80527}
-
Clemens Backes authored
Now that we require C++17 support, we can just use the standard static_assert without message, instead of our STATIC_ASSERT macro. R=leszeks@chromium.org Bug: v8:12425 Change-Id: I1d4e39c310b533bcd3a4af33d027827e6c083afe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647353Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80524}
-
- 06 May, 2022 1 commit
-
-
Jakob Linke authored
Added IR members: For updating the interrupt budget: Jump, JumpLoop, Return and JumpFromInlined apply a delta to the interrupt budget. For OSR: JumpLoop needs its loop depth and the feedback slot (where cached OSR code lives). This CL also adds code to maintain the interrupt budget in ML code. Future tasks are documented in TODOs. Bug: v8:7700 Change-Id: I240dc3ea76a1e60fda45e1d39b0b5f57dd9c566b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610423 Auto-Submit: Jakob Linke <jgruber@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#80393}
-
- 29 Apr, 2022 2 commits
-
-
Victor Gomes authored
Bug: v8:7700 Change-Id: Ia76a091e013aa7649da132c113fcefef06534f3b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3616511 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80278}
-
Victor Gomes authored
Similar approach as Call (from RegisterList). Bug: v8:7700 Change-Id: Ifc94e2bf53f40a8f556d30d85c2354f8d3a2af1b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3616502 Auto-Submit: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80275}
-
- 28 Apr, 2022 3 commits
-
-
Leszek Swirski authored
StoreField wasn't emitting a write barrier after performing the store, leading to the usual set of hard-to-debug issues. Now it does. The write barrier requires some of its registers to be in fixed locations, and others to be clobberable. Thsi patch extends the temporaries mechanism to allow requesting a specific temporary, in this case for the slot address scratch register. Bug: v8:7700 Change-Id: I506856071e0f44feafb98c2685ef1b3362b0e41e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3613388 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#80263}
-
Victor Gomes authored
We should just call the builtin while we don't have inlined allocations. Bug: v8:7700 Change-Id: I6da605cc756b0f44fb1366e90e6c0dac60ae9beb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3613326 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#80261}
-
Victor Gomes authored
- Supports Float64 Add for SmiAdd bytecode - Adds a Float64Constant and ChangeInt32ToFloat64 nodes - Converts floats to tagged in Phi node inputs - Fixes spill double representation - Fixes materialisation during a deopt of a double in the stack Bug: v8:7700 Change-Id: I9217a64313b4bd5d0015f935c23771ecf9a2c7ca Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610426 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80255}
-
- 27 Apr, 2022 2 commits
-
-
Leszek Swirski authored
Bug: v8:7700 Change-Id: I44b5fd2172522034bfe9566ab314dc93e05b2e80 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610425 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#80225}
-
Leszek Swirski authored
Add an unboxing double field load node, and fix a couple of locations where it might be used enough to pass tests. Bug: v8:7700 Change-Id: Ic134484e87a4fa363cbd8a3de667ac8e8116d502 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610623Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80221}
-
- 26 Apr, 2022 1 commit
-
-
Victor Gomes authored
- For simplicity we call a builtin when allocating a number. - Elision of boxing/unboxing nodes will be done in a followup CL. Bug: v8:7700 Change-Id: Iec4422d84c6597d3369ab512a1662adb0f077c98 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3602514Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#80178}
-
- 25 Apr, 2022 3 commits
-
-
Leszek Swirski authored
Correct use the lazy deopt's deopt index in safepoints, instead of the index in the translation array. Bug: v8:7700 Change-Id: I4a99ceb8bb54f2fba5bee0e6ddd6629b44439ce1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3605609 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#80157}
-
Victor Gomes authored
This assumes that Phi nodes never point to untagged values and TemporaryRegisters are always general registers. Bug: v8:7700 Change-Id: I74a6c43ff9f1ba87dd258e90a193f683d666b8ec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3598883Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#80144}
-
Victor Gomes authored
We need to use MachineRepresentation to properly distinguish the types in compiler::UnallocatedOperand. Bug: v8:7700 Change-Id: I4273512a00290bb85b09aeb3788643e346be03f7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3602515Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#80140}
-
- 22 Apr, 2022 2 commits
-
-
Leszek Swirski authored
Removes the full Smi handler from LoadField, leaving just the offset. All other handler-based decisions (inline vs out-of-line, tagged vs. double) should be done at graph building time and as separate IR nodes. Bug: v8:7700 Change-Id: I55ba49edba5ef5628d5f30fc6ba60c8774e2ef9c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3602510Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80120}
-
Victor Gomes authored
Fixes https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20gcov%20coverage/29098/overview and https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20gcc%20-%20debug%20builder/1389/overview Bug: v8:7700 Change-Id: I90717b9644b75cef28656893d37aa57e5f03e2fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599478 Auto-Submit: Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#80109}
-
- 21 Apr, 2022 1 commit
-
-
Leszek Swirski authored
Fixes the iteration after emitting an unconditional deopt to kill all Jumps along the way, not just ones preceeding a merge point. This fixes several issues: a) That Jump may be to a not yet created merge point, in which case we were getting a nullptr deref. b) Not-yet created merge points would not be detected as merge points, so we'd skip over them and miss killing the control node before them. c) We weren't reducing predecessor counts, so even after fixing the nullptr deref above, merge states created later would have the wrong predecessor count. Now, we check bytecode targets (including fallthrough for non-returning bytecodes) on for every bytecode, and skip over both not-yet created merges, and loop merges that have no predecessors other than the loop jump itself. As part of this, the dead predecessor merging is changed; instead of setting the predecessor to nullptr, we drop the predecessor count by one, and trim any Phis' input counts. Bug: v8:7700 Change-Id: I904c82df7c5dd44d7637e07f6750b35e7e219284 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599470Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80083}
-