// TODO(jgruber): Could we use the standard path below instead?
I'm curious about this one. We already manually build inline allocs to handle mutable HN fields in the graph builder, but haven't checked yet how all the pieces fit together here.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
if (object->object_type() == vobj::ObjectType::kHeapNumber) {
Can we check the map for HN and ConsString here instead of the type?
// TODO(jgruber): Could we use the standard path below instead?
I'm curious about this one. We already manually build inline allocs to handle mutable HN fields in the graph builder, but haven't checked yet how all the pieces fit together here.
These are 2 different things. It depends if the object was elided or escaped. If we did emit the first one (and did not remove it, since we remove it later), the object is escaped, this will never be called.
Otherwise if the object was elided and we deopt, we need to re-materialize the object, this will ensure that.
kHeapNumber,
I thought we would be able to get rid of these... :/
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Auto-Submit | +1 |
if (object->object_type() == vobj::ObjectType::kHeapNumber) {
Can we check the map for HN and ConsString here instead of the type?
ConsString: no, the map may be non-constant. For HN, yes but IMO there is little benefit as long as we still take custom paths for materialization.
// TODO(jgruber): Could we use the standard path below instead?
Victor GomesI'm curious about this one. We already manually build inline allocs to handle mutable HN fields in the graph builder, but haven't checked yet how all the pieces fit together here.
These are 2 different things. It depends if the object was elided or escaped. If we did emit the first one (and did not remove it, since we remove it later), the object is escaped, this will never be called.
Otherwise if the object was elided and we deopt, we need to re-materialize the object, this will ensure that.
Got it. The question remains if we can use the standard path, and it looks like "probably yes" if we tweak Float64Constant reification. But I'd like to look at that separately after FDA and HN have landed.
kHeapNumber,
I thought we would be able to get rid of these... :/
Yeah it's unfortunate. With some effort we can unify a bit more, but as long as some types have special deopt handling we'll always have to distinguish between them.
On the upside, it's now clear where behavior diverges, instead of HN/CS/FDA being completely custom.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Code-Review | +1 |
if (object->object_type() == vobj::ObjectType::kHeapNumber) {
Jakob LinkeCan we check the map for HN and ConsString here instead of the type?
ConsString: no, the map may be non-constant. For HN, yes but IMO there is little benefit as long as we still take custom paths for materialization.
Acknowledged
// TODO(jgruber): Could we use the standard path below instead?
Victor GomesI'm curious about this one. We already manually build inline allocs to handle mutable HN fields in the graph builder, but haven't checked yet how all the pieces fit together here.
Jakob LinkeThese are 2 different things. It depends if the object was elided or escaped. If we did emit the first one (and did not remove it, since we remove it later), the object is escaped, this will never be called.
Otherwise if the object was elided and we deopt, we need to re-materialize the object, this will ensure that.
Got it. The question remains if we can use the standard path, and it looks like "probably yes" if we tweak Float64Constant reification. But I'd like to look at that separately after FDA and HN have landed.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
3 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted one.
[maglev] Port HeapNumber to the new VirtualObject model
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
PTAL. This is just a rebased version of https://chromium-review.googlesource.com/c/v8/v8/+/6975984.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Code-Review | +1 |
ForEachSlotIterationMode mode = ForEachSlotIterationMode::kDefault) {
I wonder if all iterations should be kForDeopt iterations.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Commit-Queue | +2 |
Thanks!
ForEachSlotIterationMode mode = ForEachSlotIterationMode::kDefault) {
I wonder if all iterations should be kForDeopt iterations.
Usually it does make sense to visit all slots. Examples: clearing all slots in the ctor, and building stores for the InlinedAllocation.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[maglev] Port HeapNumber to the new VirtualObject model
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |