Darius Mercadier
7cb0b5b8e9
[turboshaft] Maglev-to-ts: fix race with SharedFunctionInfo
...
flags2 can be set by the mainthread during a deopt request, while the
background thread tries to read it for the
function_context_independent_compiled bit.
This usually cannot happen because both Maglev and Turbofan read this
field on the main thread. However, in the Maglev->Turboshaft
translation, this is read in the background.
This CL fixes this by avoiding re-reading this field and instead using
the already computed specialize_to_function_context field of the
Turbofan OptimizedCompilationInfo.
Fixed: chromium:346358298
Change-Id: I13d80c30430e7953280a14b3a164879f92e919fe
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5621030
Reviewed-by: Olivier Flückiger <olivf@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94369}
2024-06-11 12:34:19 +00:00
Darius Mercadier
ead64ff60e
[maglev] Avoid creating Int32ToNumber(Int32Constant) nodes
...
Bug: v8:7700
Change-Id: Id952adbae33d120b8b9693452f8d045c27229a09
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5613374
Reviewed-by: Victor Gomes <victorgomes@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Victor Gomes <victorgomes@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94336}
2024-06-10 13:11:17 +00:00
Darius Mercadier
b4491b12e4
[wasm][turboshaft] Fix Store offset overflow in Int64Lowering
...
Fixed: chromium:344014332
Change-Id: I14e207546a4c7e7691e82d2f4da53caaa58cbfa1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5608453
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94334}
2024-06-10 11:29:45 +00:00
Darius Mercadier
261de81e48
[wasm][turboshaft] Fix --trace-turbo/--trace-turbo-graph
...
This has been broken since https://crrev.com/c/5570128 .
Bug: chromium:345393147
Change-Id: I07e6c6daf35f7be0f04788fa98a37ee680e4fb09
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5611200
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94330}
2024-06-10 10:12:17 +00:00
Darius Mercadier
0ce97c4e37
[turboshaft] Fix VariableReducer bug with loop phis
...
When a Variable is alive before a loop, then the VariableReducer has
to conservatively emit a PendingLoopPhi at the begining of the loop,
and change it into a Phi afterwards.
However, this was broken for variables that did not change in the
loop, leading to the initial PendingLoopPhi never being replaced by a
regular Phi.
Bug: chromium:42202729
Change-Id: Ib11859b957f940fcdb0278f6f2ab62a24b8beeac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5596548
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94301}
2024-06-06 19:22:36 +00:00
Darius Mercadier
73800db83a
[turboshaft] Fix VariableReducer bug with variables introduced in loops
...
The VariableReducer inserts PendingLoopPhis for non-loop-invariant
Variables that are valid before loops, and, when emitting the
backedge, it fixes the PendingLoopPhis that it had introduced before.
However, when a Variable is created inside of a loop, the Variable
reducer was trying to fix its PendingLoopPhi without realizing that it
has in fact none.
Bug: 42204525, 42202729
Change-Id: I5e26503bba797120eb33b547baee2df6fbcea640
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5580375
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94266}
2024-06-05 13:37:37 +00:00
Darius Mercadier
745f33c5a6
[turboshaft] Maglev-to-ts: support under-applied builtin calls
...
Bug: 42204525
Change-Id: I0f226e95f03c494b850c7be11e85c9d23d4f5d46
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5580374
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94265}
2024-06-05 13:36:33 +00:00
Darius Mercadier
7581043469
[turboshaft] Prepare support for lazy deopt on first throw
...
Since https://crrev.com/c/5516582 , Maglev lazy deopts the first time a
throw to a so-far unused catch block happens.
This makes graph smaller, and allows more optimizations (because
effects in the catch block then don't pollute the
analysis/optimizations, since the catch block is not even emitted).
This CL adds support for this mechanism in Turboshaft, but only
enables it for the Maglev->Turboshaft pipeline.
Bug: 42204525
Change-Id: I625eea718e56d7b13d5705f87ab5cff4fd97625e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5575030
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94264}
2024-06-05 13:35:29 +00:00
Darius Mercadier
06f7fe1c88
[turboshaft] Maglev-to-ts: fix bug with NaN in float64 comparisons
...
Bug: chromium:42204525
Change-Id: Icbd7b7b87e004572aabc7e387bf298aa6bc24c52
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5587513
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94246}
2024-06-04 17:08:45 +00:00
Darius Mercadier
36c63f3fa9
[turboshaft] Maglev-to-ts: support CheckValueEqualsFloat64
...
Bug: 42204525
Change-Id: I626dfc32b51b8efe8c005b112abc645ca81ff563
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5572953
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94214}
2024-06-03 15:00:23 +00:00
Darius Mercadier
6821776c12
[turboshaft] Maglev-to-ts: support CheckedHoleyFloat64ToFloat64
...
Bug: 42204525
Change-Id: I54d051bae0f8e93ff202bef402ee5020e03d8cfb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5569707
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94205}
2024-06-03 11:47:19 +00:00
Darius Mercadier
552fa43257
[turboshaft] Maglev-to-ts: support Float64Abs/Int32AbsWithOverflow
...
Bug: 42204525
Change-Id: I153e0b9e6223105a225155f706a52594022cfb00
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5573727
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94204}
2024-06-03 11:46:15 +00:00
Darius Mercadier
cefb75f62d
[turboshaft] Maglev-to-ts: support CheckDetectableCallable
...
Bug: 42204525
Change-Id: Ic4c8684b7cc5e44eff0b278c3956ad4660e99e0c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5572951
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94203}
2024-06-03 11:45:11 +00:00
Darius Mercadier
5229b69910
[turboshaft] Maglev-to-ts: support LoadNamedFromSuperGeneric
...
Bug: 42204525
Change-Id: I24bf29b7c9c84af47e130e0c572e4394adbb1e60
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5572950
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94202}
2024-06-03 11:44:06 +00:00
Darius Mercadier
96a4fc7967
[turboshaft] Maglev-to-ts: support CheckedSmiTagUint32
...
Bug: 42204525
Change-Id: Ib6d0b1441b1b8b5196218d3cf750be009fcd73d7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5569704
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94153}
2024-05-29 10:49:02 +00:00
Darius Mercadier
daa0201ade
[turboshaft] Maglev-to-ts: support TransitionElementsKind
...
Bug: 42204525
Change-Id: I646e203b783efeb50c597a523507cf7b0cad86b8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5569703
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94150}
2024-05-29 09:40:08 +00:00
Darius Mercadier
d4b2933dd0
[turboshaft] Maglev-to-ts: support CheckedTruncateFloat64ToUint32
...
Bug: 42204525
Change-Id: If700b781178aadd064ad75b86e90218f2724e4b4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5569136
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94103}
2024-05-27 11:27:03 +00:00
Darius Mercadier
bf046fed4f
[turboshaft] Maglev-to-ts: support CheckSymbol
...
Bug: 42204525
Change-Id: I566d4e8cea09af0d5ea25e1d4b7eb0cdadd380ae
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5569194
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94102}
2024-05-27 11:26:00 +00:00
Darius Mercadier
3819ebab77
[turboshaft] Maglev-to-ts: support CheckValueEqualsInt32
...
Bug: 42204525
Change-Id: I3e70b2d1f71b3ae9f0be433ba7f9291e600a5d8a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5569670
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94101}
2024-05-27 11:24:56 +00:00
Darius Mercadier
548814009c
[turboshaft] Maglev-to-ts: support ConstructWithSpread
...
Drive-by: cleanup translation of Construct.
Bug: 42204525
Change-Id: I38b4e0cb2f20579ccd2d4b05efe5215dc645b67e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5568811
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94100}
2024-05-27 11:23:53 +00:00
Darius Mercadier
432460cde1
[turboshaft] Maglev-to-ts: support (BranchIf)HoleyFloat64IsHole
...
Bug: 42204525
Change-Id: I3945435c85f5205ed93a57d7bb8d3ae01dfa2b56
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5570124
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94099}
2024-05-27 11:22:49 +00:00
Darius Mercadier
18b41b067d
[turboshaft] Maglev-to-ts: support LoadGlobal
...
Bug: 42204525
Change-Id: I64f88156df609eb04a72f5c0ed80876e7bf8b89b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5569190
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94098}
2024-05-27 11:21:46 +00:00
Darius Mercadier
0f719663da
[turboshaft] Maglev-to-ts: support Create{Object,RegExp,Array}Literal
...
Bug: 42204525
Change-Id: Ib850ed3a78c79e9ff522b9f015835bc00336feed
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5568810
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94089}
2024-05-25 14:31:50 +00:00
Darius Mercadier
df8b0c3afe
[turboshaft] Maglev-to-ts: support Float64ToHeapNumberForField
...
Bug: 42204525
Change-Id: I6d02628e95b1f8c55962d0116933d2d842826120
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5569189
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94077}
2024-05-24 12:37:43 +00:00
Darius Mercadier
9237fd2098
[turboshaft] Maglev-to-ts: support CheckTypedArrayNotDetached
...
Bug: 42204525
Change-Id: Ie47528dd3226522245a044ceb4f2657bfdde0363
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5568809
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94076}
2024-05-24 12:36:07 +00:00
Darius Mercadier
60bc78eff5
[turboshaft] Maglev-to-ts: DefineKeyedOwnGeneric/DefineNamedOwnGeneric
...
Bug: 42204525
Change-Id: I599eca9d6b9ed238bbccd47a787add0ba24a1462
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5563328
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94074}
2024-05-24 11:35:39 +00:00
Darius Mercadier
1ecc8c685e
[turboshaft] Maglev-to-ts: support AllocateElementsArray
...
Bug: 42204525
Change-Id: I565b0344a2638129dda8b23ac6377d0f6bd09d91
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5563326
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94073}
2024-05-24 11:24:38 +00:00
Darius Mercadier
b62f33c0c7
[turboshaft] Maglev-to-ts: support Array.forEach
...
Bug: 42204525
Change-Id: I488864be10491add8f6c9c7e0092c57059eb94be
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5562683
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94067}
2024-05-24 09:50:51 +00:00
Darius Mercadier
876f63ec40
[turboshaft] Maglev-to-ts: for-in loops and multi-return lazy deopts
...
Bug: 42204525
Change-Id: Id0df5d85bd7c16ea565d3266e5bf43daac6fe836
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5554239
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Victor Gomes <victorgomes@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94066}
2024-05-24 09:11:46 +00:00
Darius Mercadier
af0fd2de98
[turboshaft] Maglev-to-ts: disable Wasm test in some configurations
...
Bug: 42204525
Change-Id: Iec025dc7ed607f4c4d3426ec3386431a67913190
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5562485
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94043}
2024-05-23 08:16:55 +00:00
Darius Mercadier
e9a964ec85
[turboshaft] Maglev-to-ts: support ConvertReceiver
...
Bug: 42204525
Change-Id: I39ccc04a75d32d5b3082b2f0626e4b67c56f95ac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5555385
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94036}
2024-05-22 15:54:28 +00:00
Darius Mercadier
fa963c42cf
[turboshaft] Maglev-to-ts: support HasInPrototypeChain
...
Bug: 42204525
Change-Id: I3df69a5ef055f36849797e6ae75684500c2e5e8d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5554284
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94035}
2024-05-22 15:49:36 +00:00
Darius Mercadier
5b7009fddf
[turboshaft] Maglev-to-ts: support CallKnownAPIFunction
...
Bug: 42204525
Change-Id: I3b6fbb6cf06a08ca5c62adb4f71173d751160691
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5553794
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94034}
2024-05-22 14:47:43 +00:00
Darius Mercadier
2aec325ba3
[turboshaft] Disable forced unrolling for IF/ELSE in DEBUG builds
...
This is a temporary fix to unblock the lacro dcheck builds, which have
been failing for almost 10 days now, because Clang doesn't manage to
unroll some Turboshaft IF/ELSE loops.
(the more permanent fix will be to figure out why Clang doesn't unroll
the loop on this build, and tweak something so that it does)
Fixed: 339058547
Change-Id: I4549f43ad6fab7e94ae2e75e6de287e87a1415c1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5557061
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94022}
2024-05-22 09:11:14 +00:00
Darius Mercadier
0dafe51a6b
[turboshaft] V<>ify Turboshaft
...
Operations processed:
- ReduceCatchBlockBegin
- CheckEqualsInternalizedString
- StoreMessage
- LoadMessage
Bug: chromium:331100916
Change-Id: Ie3cfe55f0329954ae6bea81e485e4abf1737e4f5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5554770
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94011}
2024-05-21 14:45:42 +00:00
Darius Mercadier
0dc51a4efd
[turboshaft] Maglev-to-ts: support CheckedSmiTagFloat64
...
Bug: 42204525
Change-Id: Id9b152cd0896ffbe6d1365c86dc0a864ef47f0b6
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5538024
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94002}
2024-05-21 11:20:14 +00:00
Darius Mercadier
0fddf58548
[turboshaft] Maglev-to-ts: support ChangeUint32ToFloat64
...
Bug: 42204525
Change-Id: Idfc890e4a4724e539e25c35d57816bf968fe0cb8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5544145
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#94000}
2024-05-21 10:37:18 +00:00
Darius Mercadier
7ec53a91d2
[turboshaft] Maglev-to-ts: support CreateShallowObjectLiteral
...
Bug: 42204525
Change-Id: I7a498fc634562271fc99db1adb59072f7dd4564c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5544457
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93999}
2024-05-21 10:17:15 +00:00
Darius Mercadier
c0028d45a8
[turboshaft] Maglev-to-ts: support CreateClosure
...
Bug: 42204525
Change-Id: Ibbbf27de322ec7e2f8a6b56633f2a2f1918b4a7c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5537987
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93998}
2024-05-21 10:11:29 +00:00
Darius Mercadier
dee21f1d75
[turboshaft] Maglev-to-ts: support constructors
...
Bug: 42204525
Change-Id: I592fb7b1f6681b1b1bc131841cd2aa84e8503254
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5544142
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93996}
2024-05-21 09:59:30 +00:00
Darius Mercadier
6544396d88
[turboshaft] Maglev-to-ts: support CheckDerivedConstructResult
...
Bug: 42204525
Change-Id: I6d0ec80c41ab6a0396476b9b1dad8dae61efb9e8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5544138
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93949}
2024-05-16 13:45:24 +00:00
Darius Mercadier
33310aefa1
[turboshaft] Maglev-to-ts: support CheckInt32IsSmi
...
Bug: 42204525
Change-Id: I6cdec1910227ac2ec8fbf51f480962030e4bc5ff
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5538405
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93947}
2024-05-16 12:41:29 +00:00
Darius Mercadier
6a9b12b05f
[turboshaft] Maglev-to-ts: support ToName
...
Bug: 42204525
Change-Id: Ifb9f4fc49e5033d6fc62e08c56a46ce2faefec02
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5543822
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93945}
2024-05-16 10:14:45 +00:00
Darius Mercadier
205a43ed11
[turboshaft] Maglev-to-ts: support HandleNoHeapWritesInterrupt
...
Bug: 42204525
Change-Id: I91f4db7fb6248fa762de67453bf8e8ec8a96ae8e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5538397
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93944}
2024-05-16 10:00:23 +00:00
Darius Mercadier
b3cf38815d
[turboshaft] Maglev-to-ts: support CheckedUint32ToInt32
...
Bug: 42204525
Change-Id: Ia14cbf5fd02d13633eb7fc26fa50258fdc1c2345
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5538396
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93941}
2024-05-16 09:23:36 +00:00
Darius Mercadier
d29add53ad
[turboshaft] Maglev-to-ts: support DeleteProperty
...
Bug: 42204525
Change-Id: I921d6baf04d11178203a7dca3caeff21fd430f7e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5538395
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93940}
2024-05-16 09:22:33 +00:00
Darius Mercadier
087ab5d9ad
[turboshaft] Maglev-to-ts: support NumberToString
...
Bug: 42204525
Change-Id: I3ee264d927bf57b142848cc71967ea2f05deca53
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5541829
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93924}
2024-05-15 16:30:18 +00:00
Darius Mercadier
2c961cd702
[turboshaft] Maglev-to-ts: support ToString
...
Bug: 42204525
Change-Id: Id803ced76e2a11f856826202ce5aee30fbc5366d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5541891
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93923}
2024-05-15 15:48:31 +00:00
Darius Mercadier
76b47ec8aa
[turboshaft] Maglev-to-ts: support CheckNumber
...
Bug: 42204525
Change-Id: Ia789486881de23cad135ccabd3ccb07849ceddde
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5541888
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93915}
2024-05-15 11:16:28 +00:00
Darius Mercadier
66c754d2dd
[turboshaft] Fix Load Elimination bug when overwritting maps
...
So far, LateLoadElimination was assuming that maps would never change
after a AssumeMap. However, it can happen that a map is updated
in-place with a regular Store (typically, because of a transitioning
store).
Bug: 42202729
Change-Id: I31e453324645fb91dcf870db12d49f0de64d0ad8
Fixed: 340663085
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5537918
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93912}
2024-05-15 10:36:17 +00:00
Darius Mercadier
8c1da32794
[turboshaft] Maglev-to-ts: Support builtin continuation deopts
...
This CL also includes a reland of https://crrev.com/c/5526491 , which,
due to new Maglev optimizations, now also needs builtin continuation
deopts to work.
Bug: 42204525
Change-Id: Id88b52029fe8ccd8b31f8c8c5ec821697c77dbb2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5534930
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93897}
2024-05-14 15:25:46 +00:00
Darius Mercadier
f1ca356a07
[turboshaft] Maglev-to-ts: more support for CallKnownJSFunction
...
Two fixes around CallKnownJSFunction:
- CallKnownJSFunction can also be used to call builtins.
- in case of under-application, CallKnownJSFunction should set
missing arguments to undefined.
Drive-by:
- Add missing ConvertWord32ToJSBool in TestTypeOf
- Ignore the accumulator in ThrowingScope.
Bug: 42204525
Change-Id: Ie1d967727b3e4dc47934eb8f9b3e927761e11a74
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5526477
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93891}
2024-05-14 12:23:39 +00:00
Darius Mercadier
f50d654590
[turboshaft] Maglev-to-ts: support GetIterator
...
Bug: 42204525
Change-Id: I50170c52eae203da1635b1835da6ab21c1573863
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5526491
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93861}
2024-05-13 14:21:40 +00:00
Darius Mercadier
80246226d6
[turboshaft] Maglev-to-ts: support map migrations
...
Bug: 42204525
Change-Id: I47ab7469acc512f82e1846ec601cb2bdf6f5f5ea
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5528006
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93852}
2024-05-13 13:16:39 +00:00
Darius Mercadier
190b9f3ddd
[turboshaft] Maglev-to-ts: support transitions
...
Bug: 42204525
Change-Id: Iaa2433a123b767d23e692eac0846635b7077c941
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5528003
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93851}
2024-05-13 13:04:25 +00:00
Darius Mercadier
be66d6fd36
Reland "[turboshaft] Enable loop unrolling by default"
...
This is a reland of commit e2db93807c
Nothing is changing in this reland; the original CL was reverted by
mistake.
Original change's description:
> [turboshaft] Enable loop unrolling by default
>
> Bug: 42202729
> Change-Id: I3ce58c0aac7c3d85e7a5d18815cb44873767ecd0
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5526308
> Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
> Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
> Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
> Cr-Commit-Position: refs/heads/main@{#93818}
Bug: 42202729
Change-Id: Ie06ad470589e3ad2443a7a6274d42afbae092ec9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5526490
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93849}
2024-05-13 11:49:23 +00:00
Darius Mercadier
2f3ac92829
[turboshaft] V<>ify Turboshaft (Change/ChangeOrDeopt)
...
Operations processed:
- ChangeOp
- ChangeOrDeoptOp
Bug: chromium:331100916
Change-Id: I08376f53887510fd310f627e288b7e2fe16857df
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5522499
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93824}
2024-05-10 11:02:06 +00:00
Darius Mercadier
e2db93807c
[turboshaft] Enable loop unrolling by default
...
Bug: 42202729
Change-Id: I3ce58c0aac7c3d85e7a5d18815cb44873767ecd0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5526308
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93818}
2024-05-10 09:07:37 +00:00
Darius Mercadier
585f92b6cf
[turboshaft] Avoid overflow in loop unrolling approx iteration count
...
This could lead to thinking that a loop has only few iterations even
though it doesn't, which would allow to remove its stack check, which
would prevent interruptions in this loop.
Fixed: 339492379
Bug: 42202729
Change-Id: I1c3aa1cc6f6c6e99334840342c55d0cccc109072
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5526310
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93816}
2024-05-10 08:39:35 +00:00
Darius Mercadier
39e57bfdcf
[maglev] Fix unused exception handler printing bug
...
Exception handlers are not emitted when they are so-far unused. So, we
shouldn't try to print find the block corresponding to a kLazyDeopt
exception handler, since there is none.
Drive-by: fix bug in the Maglev->Turboshaft translation where we
didn't check if exception handlers were kLazyDeopt.
Bug: 40096293, 42204525
Change-Id: Idc2a6219436630e64e9b612dbdb62f0255c64a80
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5522224
Commit-Queue: Toon Verwaest <verwaest@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Toon Verwaest <verwaest@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93791}
2024-05-08 10:47:04 +00:00
Darius Mercadier
3ecb8552ef
[turboshaft] Enable late load elimination by default
...
Bug: 42202729
Change-Id: I0f65c7662c057fb599addf661ca888318aaefc61
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5522500
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93789}
2024-05-08 09:43:31 +00:00
Darius Mercadier
56ed1ceafd
[turboshaft] Create Parameter operations early in codegen tests
...
The register allocator doesn't like it when Parameters are not created
in the 1st block of the graph.
Bug: 339074793
Change-Id: Ic5a10decaa659f719784e6d7f9da194785c215e1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5522496
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93787}
2024-05-08 09:26:40 +00:00
Darius Mercadier
7f10d47a49
[turboshaft] Speed up test-compare-combine
...
These tests were a bit slow. One of them in particular
(CombineCompareTwoLogicInputs) had more than 11 millions iterations,
which in DEBUG mode (and in particular on simulator builds) was very
slow (with this CL, it only has 28000 iterations).
Drive-by: replace some OpIndex by V<>.
Change-Id: I0605225ab68a70947245bc1159f91fa10cce8d51
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5522497
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93784}
2024-05-08 08:26:23 +00:00
Darius Mercadier
6c0a15c4a8
[turboshaft] Maglev-to-ts: support ClampedUint8 typed arrays
...
Bug: 42204525
Change-Id: I608ca653e758b664325c5d456f734fbb56ffbde7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5521035
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93775}
2024-05-07 17:16:40 +00:00
Darius Mercadier
27739badb4
[compiler] Do not lower ArrayIteratorPrototypeNext for Float16 arrays
...
Bug: 42203953, 339134738
Change-Id: If45d33567ca1cd33e8453671760b62f6a176623a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5518763
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org >
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93765}
2024-05-07 12:42:32 +00:00
Darius Mercadier
9b42ae4718
[turboshaft] Remove stack checks of small loops
...
Bug: v8:12783
Change-Id: Id483ea695929a5a9758f957c1f9939bc1e8061f2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5467821
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93754}
2024-05-07 10:07:53 +00:00
Darius Mercadier
0c3acdded7
[turboshaft] Maglev-to-ts: support RestLength
...
Bug: chomium:42204525
Change-Id: I2ed9ef99092aa607ab0c4fe345fb240248ec9673
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5513448
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93702}
2024-05-03 13:38:25 +00:00
Darius Mercadier
a708f73f39
[turboshaft] Maglev-to-ts: support StoreGlobal
...
Bug: chomium:42204525
Change-Id: I648b125158bb66c6e46a7badb20c33646c7a1de8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5512709
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93699}
2024-05-03 13:00:27 +00:00
Darius Mercadier
d25ba5460c
[compiler] Check attributes when redefining existing property
...
Consider
function A() {
Object.defineProperty(this, "x",
{ writable: true, configurable: true,
enumerable: false, value: undefined });
}
class B extends A {
x = {};
}
When creating a B object, `x = {}` should trigger a map
reconfiguration, because `A` already created the property `x` with
attribute `enumerable = false`, but `x = {}` produces a property `x`
that is enumerable.
Both Turbofan and Maglev were ignorining this, and keeping the old
attributes when doing `x = {}`.
Bug: chromium:335310000
Change-Id: I980fad69e810828ed75568e97886b7db344255da
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5498496
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Leszek Swirski <leszeks@chromium.org >
Commit-Queue: Leszek Swirski <leszeks@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93655}
2024-04-30 15:02:02 +00:00
Darius Mercadier
e5af40c706
[turboshaft] Maglev-to-ts: support named load on smis and cst key load
...
Bug: chomium:42204525
Change-Id: I37a97d57f2cdd5898223d0610768411ebe17f191
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5494069
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93645}
2024-04-30 07:56:27 +00:00
Darius Mercadier
1efbe4a5d1
[turboshaft] V<>ify Turboshaft (ComparisonOp)
...
Operations processed:
- ComparisonOp
Bug: chromium:331100916
Change-Id: I3a841bcc82e88dfb250538559738677e1d10fcb4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5489780
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93616}
2024-04-26 13:56:18 +00:00
Darius Mercadier
79c7529e1e
[turboshaft] V<>ify Turboshaft (ObjectIs / Change)
...
Operations processed:
- ChangeOp
- ObjectIs
- ObjectIsNumericValue
Bug: chromium:331100916
Change-Id: Ice575015440f33de6676173511e47a0d15cbc266
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5490084
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93600}
2024-04-26 09:14:02 +00:00
Darius Mercadier
9ee056fdc1
[turboshaft] Maglev-to-ts: support Switch
...
Bug: chomium:42204525
Change-Id: Id46dce0d53ff5a64c82185a997a646c903a783f9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5490082
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93598}
2024-04-26 07:42:04 +00:00
Darius Mercadier
32187efd51
[turboshaft] Maglev-to-ts: support Int32NegateWithOverflow
...
Bug: chomium:42204525
Change-Id: I30ee74c793115a24fe2c492dada13dbcf684cf23
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5488984
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93597}
2024-04-26 07:37:05 +00:00
Darius Mercadier
c323f489d8
[turboshaft] Maglev-to-ts: support BranchIf/TestUndetectable
...
Bug: chomium:42204525
Change-Id: I67667d1248740116f2e0fd50cba545e9770f699a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5488981
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93596}
2024-04-26 07:35:41 +00:00
Darius Mercadier
5dd6ec67b1
[turboshaft] Maglev-to-ts: support generic calls
...
Drive-by: support UpdateJSArrayLength.
Bug: chomium:42204525
Change-Id: Iea9595fea5ba0f3ab10159dbbaa16f147415265f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5487524
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93579}
2024-04-25 12:49:25 +00:00
Darius Mercadier
872092c447
[turboshaft] Maglev-to-ts: support CallWithArrayLike/CallWithSpread
...
Bug: chomium:42204525
Change-Id: Ibdd8d3e76344d91bb462eec4a2a0e04144e44ea9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5481575
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93575}
2024-04-25 11:26:15 +00:00
Darius Mercadier
798d1e4133
[turboshaft] Maglev-to-ts: support inner functions
...
Bug: chomium:42204525
Change-Id: I8a9adbe7bb7e54c4d3a0ddb859e6d309c33fcb2c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5481649
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93559}
2024-04-24 13:08:29 +00:00
Darius Mercadier
5741dde0a0
[turboshaft] Maglev-to-ts: fix bug in Number equality
...
The "value" of HeapNumbers and Oddballs is at the same offset, so it's
tempting to handle them the same way, but we need
"undefined==undefined", which doesn't happen when looking at the
"value" of undefined, since it's NaN.
Bug: chomium:42204525
Change-Id: I796462db49c1cabebb50e70298ccf2319aaa3533
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5481729
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93558}
2024-04-24 13:06:51 +00:00
Darius Mercadier
6ca37e043f
[turboshaft] Maglev-to-ts: support const-tracking let
...
Bug: chomium:42204525
Change-Id: I7f27744085f023dcfe96b1efdde97a0a21372c4c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5481788
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93557}
2024-04-24 12:31:13 +00:00
Darius Mercadier
c7c7264e92
[turboshaft] Maglev-to-ts: support InlinedExtraArguments frame states
...
Bug: chomium:42204525
Change-Id: If743cc19230f4a346982af4a9e8d8a0c567a7213
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5472112
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93539}
2024-04-23 18:16:01 +00:00
Darius Mercadier
b17613e2d2
[turboshaft] Maglev-to-ts: support Load/SetNamedGeneric
...
Bug: v8:14581
Change-Id: I8e7d67527d89f1461f9fd79c0d732010225d67cc
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5472107
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93522}
2024-04-23 09:42:29 +00:00
Darius Mercadier
8eddcb9394
[turboshaft] Maglev-to-ts: add CatchBlockBegin in exception handlers
...
So far, we could only convert from Maglev exception handlers that had
multiple predecessors and didn't use the exception's value.
Bug: v8:14581
Change-Id: Ia4e33346d0e372117ce34b647d14e300b89f0455
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5471980
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93517}
2024-04-23 08:40:17 +00:00
Darius Mercadier
62adfade39
[turboshaft] Maglev-to-ts: fix test failure because of eager compilation
...
Fixed: chromium:336409983
Bug: chromium:42204525
Change-Id: Ie5117ceb2dfb3b76595680bfef44c1fd7c2e5098
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5472110
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93514}
2024-04-23 07:56:06 +00:00
Darius Mercadier
b1a0119c31
[turboshaft] Maglev-to-ts: support Construct
...
Bug: v8:14581
Change-Id: Id1fc1873098536ace7d9ef9fb3d5981f4bba2475
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5472103
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93507}
2024-04-22 17:47:53 +00:00
Darius Mercadier
bfe629dca9
[turboshaft] Disable FORCE_UNROLL_LOOP on x64 ChromeOS
...
Bug: chromium:332838433
Change-Id: Ie67b1db1900a753c262dad0315faed9f39058c57
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5467829
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org >
Commit-Queue: Nico Hartmann <nicohartmann@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93486}
2024-04-22 08:43:53 +00:00
Darius Mercadier
98a55969e8
[turboshaft] Maglev-to-ts: support Number->Int32 truncations
...
Bug: v8:14581
Change-Id: Id2a1cad0caf7a028668e3e7d7e5467bd789af69c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5463129
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93465}
2024-04-19 13:50:25 +00:00
Darius Mercadier
a276f84ecd
[turboshaft] V<>ify Turboshaft (select/switch)
...
Operations processed:
- SelectOp
- SwitchOp
Bug: chromium:331100916
Change-Id: I4883c5a00991c33a3c633366af4569928cdb1b3b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5464462
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93452}
2024-04-19 05:07:03 +00:00
Darius Mercadier
9b4377fcc6
[turboshaft] V<>ify Turboshaft
...
Operations processed:
- AssumeMap
- CheckMaps
- CompareMaps
- GenericBinop
- GenericUnop
- StaticAssert
Bug: chromium:331100916
Change-Id: I75fc3c6ab897b50661c00501fd9c633825b51cf3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5454405
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Manos Koukoutos <manoskouk@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93424}
2024-04-18 07:53:39 +00:00
Darius Mercadier
9709f92673
[turboshaft] V<>ify Turboshaft (bigint ops)
...
Operations processed:
- BigIntBinop
- BigIntComparison
Bug: chromium:331100916
Change-Id: Ic6bde3578278db4bdb8c1ea92ce821eff59400f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5461355
Reviewed-by: Andreas Haas <ahaas@chromium.org >
Commit-Queue: Andreas Haas <ahaas@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93408}
2024-04-17 09:27:14 +00:00
Darius Mercadier
e967ec0efa
[turboshaft] Invalidate fewer non-aliases in load elimination
...
In particular, DeoptimizeIf, TrapIf, Comparison and WordBinop don't
create new aliases.
Drive-by: avoid invalidating aliases on Return and Deoptimize to speed
up analysis time (since anyways, these are function terminators, and
so they have no successors that would rely on them updating correctly
the analysis state).
Bug: chromium:333195385, v8:12783
Change-Id: I63454bb1e856e134ea568542ad7568b811d7fefd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5457393
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93399}
2024-04-16 16:13:24 +00:00
Darius Mercadier
8fedc17fff
[turboshaft] Constant-fold CheckSmi(Allocate(...))
...
... since Allocate never returns Smis but always HeapObjects.
Bug: v8:12783
Change-Id: I7979af3054666a5b3f6968bafed9e2554b62ac66
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5454406
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org >
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93393}
2024-04-16 13:59:17 +00:00
Darius Mercadier
1e74392559
[turboshaft] Maglev-to-ts: support Array.push/pop
...
Bug: v8:14581
Change-Id: I24dbde8f1c0de0b455dfc0565f9f25b1221e8b6c
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5447253
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93386}
2024-04-16 12:25:49 +00:00
Darius Mercadier
ea9d609b48
[maglev] Decouple MaybeGrowFastElements and EnsureWritableFastElements
...
Inlining Array.prototype.push needs a MaybeGrowFastElements without a
EnsureWritableFastElements. So, this CL decouples
EnsureWritableFastElements and MaybeGrowFastElements, so that the
later can be used without the former.
Bug: v8:7700
Change-Id: Ib3e4d9a2210679910eb870572017385457d525b3
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5457391
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Leszek Swirski <leszeks@chromium.org >
Commit-Queue: Leszek Swirski <leszeks@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93384}
2024-04-16 10:43:55 +00:00
Darius Mercadier
e7445ba9f9
[turboshaft] Maglev-to-ts: perform interrupt checks in loops
...
We introduce a new JSLoopStackCheckOp operation in Turboshaft for
this rather than using the existing StackCheckOp, because JS loop
stack checks are significantly different from other stack checks:
- They have fewer effects (no write can happen during the interrupt)
- They have additional inputs (frame state and context)
- Their lowering is different (it doesn't check the current stack
pointer, but just a field on the isolate).
StackCheckOp was slightly refactored to make it clearer that it
does not handle JS loop stack checks.
Bug: v8:12783, v8:14581
Change-Id: I2820c4d015b218cc9665e792bda2352c99f5ee72
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5441116
Reviewed-by: Andreas Haas <ahaas@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93344}
2024-04-12 14:39:06 +00:00
Darius Mercadier
fa72cf3ccf
[turboshaft] Maglev-to-ts: print bytecode with --trace-turbo-graph
...
Maglev tracing (--print-maglev-graphs) also prints the bytecode, and
since the maglev graph is quite closely related to the bytecode (more
than Turbofan typically is), is nice to see the bytecode when
debugging the maglev->turboshaft translation.
Bug: v8:14581
Change-Id: I5546b98b8df72fc7e30849046bfe5e80a75053c5
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5447248
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93340}
2024-04-12 10:58:57 +00:00
Darius Mercadier
504ab14e13
[turboshaft] V<>ify Turboshaft some string operations
...
Operations processed:
- OsrValue
- NewConsString
- StringAt
- StringComparison
- StringConcat
- StringFromCodePointAt
- StringIndexOf
- StringLength
- StringSubstring
- StringToCaseIntl
Bug: chromium:331100916
Change-Id: I051a217eaa56ae50905a9aa1c6f32639e0e7ef21
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5445451
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Andreas Haas <ahaas@chromium.org >
Reviewed-by: Andreas Haas <ahaas@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93339}
2024-04-12 10:57:21 +00:00
Darius Mercadier
0ced45c972
[turboshaft] Maglev-to-ts: support OSR
...
Bug: v8:14581
Change-Id: I949bd26e6272f01cc7eb487d0ea163e432733487
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5445548
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93338}
2024-04-12 10:37:42 +00:00
Darius Mercadier
f81878b8cd
[maglev] Remove redundant call to EnsureSourcePositionsAvailable
...
MaglevCompilationJob::PrepareJobImpl already calls
EnsureSourcePositionsAvailable, so there is no need to do it from
MaglevCompilationInfo as well.
Bug: v8:7700
Change-Id: Ic64cd7b182da5ab1fc12364881387ea31f13dcaa
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5445449
Commit-Queue: Leszek Swirski <leszeks@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Reviewed-by: Leszek Swirski <leszeks@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93333}
2024-04-12 08:14:00 +00:00
Darius Mercadier
7eb5057e61
[turboshaft] V<>ify Turboshaft
...
Operations processed:
- Deoptimize
- DeoptimizeIf
- TrapIf
Bug: chromium:331100916
Change-Id: Ibccbab351d9a46b28da069cea144f9b87f6aea14
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5447003
Commit-Queue: Darius Mercadier <dmercadier@chromium.org >
Auto-Submit: Darius Mercadier <dmercadier@chromium.org >
Commit-Queue: Matthias Liedtke <mliedtke@chromium.org >
Reviewed-by: Matthias Liedtke <mliedtke@chromium.org >
Cr-Commit-Position: refs/heads/main@{#93314}
2024-04-11 10:22:46 +00:00